From 2b929b7acfc102c7385310952a8d82a2ef3c6280 Mon Sep 17 00:00:00 2001 From: Matt Graham Date: Wed, 2 Nov 2016 03:07:42 +0000 Subject: [PATCH] Adding second coursework handout. --- courseworks/coursework_2.md | 148 +++++++++++++ courseworks/coursework_2.pdf | Bin 0 -> 87970 bytes courseworks/coursework_2.tex | 396 +++++++++++++++++++++++++++++++++++ courseworks/cw2_hdr.tex | 11 + 4 files changed, 555 insertions(+) create mode 100644 courseworks/coursework_2.md create mode 100644 courseworks/coursework_2.pdf create mode 100644 courseworks/coursework_2.tex create mode 100644 courseworks/cw2_hdr.tex diff --git a/courseworks/coursework_2.md b/courseworks/coursework_2.md new file mode 100644 index 0000000..8c62406 --- /dev/null +++ b/courseworks/coursework_2.md @@ -0,0 +1,148 @@ +# Machine Learning Practical: Coursework 2 + +**Release date: Wednesday 2nd November 2016** +**Due date: 16:00 Thursday 24th November 2016** + +## Introduction + +The aim of this coursework is to use a selection of the techniques covered in the course so far to train accurate multi-layer networks for MNIST classification. It is intended to assess your ability to design, implement and run a set of experiments to answer specific research questions about the models and methods covered in the course. + +You should choose **three** different topics to research. Our recommendation is to choose one simpler question and two which require more in-depth implementations and/or experiments. + +Examples of what might consititute a simpler question include + + * How effective are early stopping methods at reducing overfitting? + * Does combining L1 and L2 regularisation offer any advantage over using either individually? + * How does training and validation set performance vary with the number of model layers? + * How does the choice of the non-linear transformation used between affine layers (e.g. logistic sigmoid, hyperbolic tangent, rectified linear) affect training set performance? + * Does applying a whitening preprocessing to the input images help increase the rate at which we can improve training set performance? + +Similarly some ideas of more complex topics you could investigate are (there are various questions you could pose on these topics - we leave choosing appropriate ones up to you) + + * data augmentation (beyond the random rotations covered in lab 5), + * models with convolutional layers (lectures 7 and 8), + * models with 'skip connections' between layers (such as residual networks / deep residual learning, mentioned at the end of lecture 8) + * batch normalisation (lecture 6). + +You are welcome to come up with and investigate your own ideas, these are just meant as a starting point. + +**Note that it is in your interest to start running the experiments for this coursework as early as possible. Some of the experiments may take significant compute time.** + +## Mechanics + +**Marks:** This assignment will be assessed out of 100 marks and forms 25% of your final grade for the course. + +**Academic conduct:** Assessed work is subject to University regulations on academic conduct: + + +**Late submissions:** The School of Informatics policy is that late coursework normally gets a mark of zero. See for exceptions to this rule. Any requests for extensions should go to the Informatics Teaching Office (ITO), either directly or via your Personal Tutor. + +## Report + +The main component of your coursework submission, on which you will be assessed, will be a report. This should follow a typical experimental report structure, in particular covering the following for each of the three topics investigated + + * a clear statement of the research question being investigated, + * a description of the methods used and algorithms implemented, + * a motivation for each experiment completed (e.g. initial pilot runs, further investigation of observations from previous experiments) + * quantitative results for the experiments you carried out including relevant graphs, + * discussion of the results of your experiments and any conclusions you have drawn. + +The report should be submitted in PDF. You are welcome to use what ever document preparation tool you prefer working with to write the report providing it can produce a PDF output and can meet the required presentation standards for the report. + +Of the total 100 marks for the coursework, 20 marks have been allocated for the quality of presentation and clarity of the report. A good report, will clear, precise, and concise. It will contain enough information for someone else to reproduce your work (with the exception that you do not have to include the values to which the parameters were randomly initialised). + +You will need to include experimental results plotted as graphs in the report. You are advised (but not required) to use `matplotlib` to produce these plots, and you may reuse code plotting (and other) code given in the lab notebooks as a starting point. + +Each plot should have all axes labelled and if multiple plots are included on the same set of axes a legend should be included to make clear what each line represents. Within the report all figures should be numbered (and you should use these numbers to refer to the figures in the main text) and have a descriptive caption stating what they show. + +Ideally all figures should be included in your report file as [vector graphics](https://en.wikipedia.org/wiki/Vector_graphics) rather than [raster files](https://en.wikipedia.org/wiki/Raster_graphics) as this will make sure all detail in the plot is visible. Matplotlib supports saving high quality figures in a wide range of common image formats using the [`savefig`](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.savefig) function. **You should use `savefig` rather than copying the screen-resolution raster images outputted in the notebook.** + +Figures saved as a PDF file using `fig.savefig('file-name.pdf')` can be included as graphics in [LaTeX](https://en.wikibooks.org/wiki/LaTeX/Importing_Graphics) compiled with `pdflatex` and in Apple Pages and [Microsoft Word](https://support.office.com/en-us/article/Add-a-PDF-to-your-Office-file-74819342-8f00-4ab4-bcbe-0f3df15ab0dc) documents. If you are using Libre/OpenOffice you should use Scalable Vector Format plots instead using `fig.savefig('file-name.svg')`. If the document editor you are using for the report does not support including either PDF or SVG graphics you can instead output high-resolution raster images using `fig.savefig('file-name.png', dpi=200)` however note these files will generally be larger than either SVG or PDF formatted graphics. + +If you make use of any any books, articles, web pages or other resources you should appropriately cite these in your report. You do not need to cite material from the course lecture slides or lab notebooks. + +## Code + +You should run all of the experiments for the coursework inside the Conda environment [you set up in the first lab](https://github.com/CSTR-Edinburgh/mlpractical/blob/mlp2016-7/master/environment-set-up.md). + +A branch `mlp2016-7/coursework2` intended to be a starting point for your code for the second coursework is available on the course [Github repository](https://github.com/CSTR-Edinburgh/mlpractical/) on a branch `mlp2016-7/coursework2`. To create a local working copy of this branch in your local repository you need to do the following. + + 1. Make sure all modified files on the branch you are currently on have been committed ([see details here](https://github.com/CSTR-Edinburgh/mlpractical/blob/mlp2016-7/master/getting-started-in-a-lab.md) if you are unsure how to do this). + 2. Fetch changes to the upstream `origin` repository by running + ``` + git fetch origin + ``` + 3. Checkout a new local branch from the fetched branch using + ``` + git checkout -b coursework2 origin/mlp2016-7/coursework2 + ``` + +You will now have a new branch `coursework2` in your local repository. + +The only additional code in this branch beyond that already released with the sixth lab notebook is: + + * A notebook `Convolutional layer tests` which includes a skeleton class definition for a convolutional layer and associated test functions to check the implementations of the layer `fprop`, `bprop` and `grads_wrt_params` methods. This is provided as a starting point for those who decide to experiment with convolutional models - those who choose to investigate other topics may not need to use this notebook. + * A new `ReshapeLayer` class in the `mlp.layers` module. When included in a a multiple layer model, this allows the output of the previous layer to be reshaped before being forward propagated to the next layer. + +## Submission + +Your coursework submission should be done electronically using the [`submit`](http://computing.help.inf.ed.ac.uk/submit) command available on DICE machines. + +Your submission should include + + * your completed course report as a PDF file, + * the notebook (`.ipynb`) file(s) you use to run the experiments in + * and your local version of the `mlp` package including any changes you make to the modules (`.py` files). + +Please do NOT include a copy of the other files in your `mlpractical` directory as including the data files and lab notebooks makes the submission files unnecessarily large. + +There is no need to hand in a paper copy of the report, since the pdf will be included in your submission. + +You should EITHER (1) package all of these files into a single archive file using [`tar`](http://linuxcommand.org/man_pages/tar1.html) or [`zip`](http://linuxcommand.org/man_pages/zip1.html), e.g. + +``` +tar -zcf coursework2.tar.gz notebooks/Coursework_2.ipynb mlp/*.py reports/coursework2.pdf +``` + +and then submit this archive using + +``` +submit mlp 2 coursework2.tar.gz +``` + +OR (2) copy all of the files to a single directory `coursework2` directory, e.g. + +``` +mkdir coursework2 +cp notebooks/Coursework_2.ipynb mlp/*.py reports/coursework2.pdf coursework2 +``` + +and then submit this directory using + +``` +submit mlp 2 coursework2 +``` + +The `submit` command will prompt you with the details of the submission including the name of the files / directories you are submitting and the name of the course and exercise you are submitting for and ask you to check if these details are correct. You should check these carefully and reply `y` to submit if you are sure the files are correct and `n` otherwise. + +You can amend an existing submission by rerunning the `submit` command any time up to the deadline. It is therefore a good idea (particularly if this is your first time using the DICE submit mechanism) to do an initial run of the `submit` command early on and then rerun the command if you make any further updates to your submisison rather than leaving submission to the last minute. + +## Backing up your work + +It is **strongly recommended** you use some method for backing up your work. Those working in their AFS homespace on DICE will have their work automatically backed up as part of the [routine backup](http://computing.help.inf.ed.ac.uk/backups-and-mirrors) of all user homespaces. If you are working on a personal computer you should have your own backup method in place (e.g. saving additional copies to an external drive, syncing to a cloud service or pushing commits to your local Git repository to a private repository on Github). **Loss of work through failure to back up [does not consitute a good reason for late submission](http://tinyurl.com/edinflate)**. + +You may *additionally* wish to keep your coursework under version control in your local Git repository on the `coursework2` branch. This does not need to be limited to the coursework notebook and `mlp` Python modules - you can also add your report document to the repository. + +If you make regular commits of your work on the coursework this will allow you to better keep track of the changes you have made and if necessary revert to previous versions of files and/or restore accidentally deleted work. This is not however required and you should note that keeping your work under version control is a distinct issue from backing up to guard against hard drive failure. If you are working on a personal computer you should still keep an additional back up of your work as described above. + +## Marking Scheme + +* Experiment 1 (20 marks). Marks awarded for experimental hypothesis / motivation, completeness of implementation, experimental methodology, experimental results, discussion and conclusions. + +* Experiment 2 (25 marks). Marks awarded for experimental hypothesis / motivation, completeness of implementation, experimental methodology, experimental results, discussion and conclusions. Weighted by difficulty of task. + +* Experiment 3 (25 marks). Marks awarded for experimental hypothesis / motivation, completeness of implementation, experimental methodology, experimental results, discussion and conclusions. Weighted by difficulty of task. + +* Presentation and clarity of report (20 marks). Marks awarded for overall structure, clear and concise presentation, providing enough information to enable work to be reproduced, clear and concise presentation of results, informative discussion and conclusions. + +* Additional Excellence (10 marks). Marks awarded for significant personal insight, creativity, originality, and/or extra depth and academic maturity. diff --git a/courseworks/coursework_2.pdf b/courseworks/coursework_2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ae044dc0695460c53b1c47f19957ab12e875685a GIT binary patch literal 87970 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 W32X?D*Fh98li|3GjN*zCxc?6d24s-{ literal 0 HcmV?d00001 diff --git a/courseworks/coursework_2.tex b/courseworks/coursework_2.tex new file mode 100644 index 0000000..ceb6257 --- /dev/null +++ b/courseworks/coursework_2.tex @@ -0,0 +1,396 @@ +\documentclass[11pt,]{article} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage{amssymb,amsmath} +\usepackage{ifxetex,ifluatex} +\usepackage{fixltx2e} % provides \textsubscript +% use upquote if available, for straight quotes in verbatim environments +\IfFileExists{upquote.sty}{\usepackage{upquote}}{} +\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex + \usepackage[utf8]{inputenc} +\else % if luatex or xelatex + \ifxetex + \usepackage{mathspec} + \usepackage{xltxtra,xunicode} + \else + \usepackage{fontspec} + \fi + \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase} + \newcommand{\euro}{€} +\fi +% use microtype if available +\IfFileExists{microtype.sty}{\usepackage{microtype}}{} +\ifxetex + \usepackage[setpagesize=false, % page size defined by xetex + unicode=false, % unicode breaks when used with xetex + xetex]{hyperref} +\else + \usepackage[unicode=true]{hyperref} +\fi +\hypersetup{breaklinks=true, + bookmarks=true, + pdfauthor={}, + pdftitle={}, + colorlinks=true, + citecolor=blue, + urlcolor=blue, + linkcolor=magenta, + pdfborder={0 0 0}} +\urlstyle{same} % don't use monospace font for urls +\setlength{\parindent}{0pt} +\setlength{\parskip}{6pt plus 2pt minus 1pt} +\setlength{\emergencystretch}{3em} % prevent overfull lines +\setcounter{secnumdepth}{0} +\usepackage{txfonts} +\usepackage{microtype} + +\usepackage[a4paper,body={170mm,250mm},top=25mm,left=25mm]{geometry} +\usepackage[sf,bf,small]{titlesec} +\usepackage{fancyhdr} + +\pagestyle{fancy} +\lhead{\sffamily MLP Coursework 2} +\rhead{\sffamily Due: 24 November 2016} +\cfoot{\sffamily \thepage} + +\author{} +\date{} + +\begin{document} + +\section{Machine Learning Practical: Coursework +2}\label{machine-learning-practical-coursework-2} + +\textbf{Release date: Wednesday 2nd November 2016}\\\textbf{Due date: +16:00 Thursday 24th November 2016} + +\subsection{Introduction}\label{introduction} + +The aim of this coursework is to use a selection of the techniques +covered in the course so far to train accurate multi-layer networks for +MNIST classification. It is intended to assess your ability to design, +implement and run a set of experiments to answer specific research +questions about the models and methods covered in the course. + +You should choose \textbf{three} different topics to research. Our +recommendation is to choose one simpler question and two which require +more in-depth implementations and/or experiments. + +Examples of what might consititute a simpler question include + +\begin{itemize} +\itemsep1pt\parskip0pt\parsep0pt +\item + How effective are early stopping methods at reducing overfitting? +\item + Does combining L1 and L2 regularisation offer any advantage over using + either individually? +\item + How does training and validation set performance vary with the number + of model layers? +\item + How does the choice of the non-linear transformation used between + affine layers (e.g.~logistic sigmoid, hyperbolic tangent, rectified + linear) affect training set performance? +\item + Does applying a whitening preprocessing to the input images help + increase the rate at which we can improve training set performance? +\end{itemize} + +Similarly some ideas of more complex topics you could investigate are +(there are various questions you could pose on these topics - we leave +choosing appropriate ones up to you) + +\begin{itemize} +\itemsep1pt\parskip0pt\parsep0pt +\item + data augmentation (beyond the random rotations covered in lab 5), +\item + models with convolutional layers (lectures 7 and 8), +\item + models with `skip connections' between layers (such as residual + networks / deep residual learning, mentioned at the end of lecture 8) +\item + batch normalisation (lecture 6). +\end{itemize} + +You are welcome to come up with and investigate your own ideas, these +are just meant as a starting point. + +\textbf{Note that it is in your interest to start running the +experiments for this coursework as early as possible. Some of the +experiments may take significant compute time.} + +\subsection{Mechanics}\label{mechanics} + +\textbf{Marks:} This assignment will be assessed out of 100 marks and +forms 25\% of your final grade for the course. + +\textbf{Academic conduct:} Assessed work is subject to University +regulations on academic +conduct:\\\url{http://web.inf.ed.ac.uk/infweb/admin/policies/academic-misconduct} + +\textbf{Late submissions:} The School of Informatics policy is that late +coursework normally gets a mark of zero. See +{\small\url{http://web.inf.ed.ac.uk/infweb/student-services/ito/admin/coursework-projects/late-coursework-extension-requests}} +for exceptions to this rule. Any requests for extensions should go to +the Informatics Teaching Office (ITO), either directly or via your +Personal Tutor. + +\subsection{Report}\label{report} + +The main component of your coursework submission, on which you will be +assessed, will be a report. This should follow a typical experimental +report structure, in particular covering the following for each of the +three topics investigated + +\begin{itemize} +\itemsep1pt\parskip0pt\parsep0pt +\item + a clear statement of the research question being investigated, +\item + a description of the methods used and algorithms implemented, +\item + a motivation for each experiment completed (e.g.~initial pilot runs, + further investigation of observations from previous experiments) +\item + quantitative results for the experiments you carried out including + relevant graphs, +\item + discussion of the results of your experiments and any conclusions you + have drawn. +\end{itemize} + +The report should be submitted in PDF. You are welcome to use what ever +document preparation tool you prefer working with to write the report +providing it can produce a PDF output and can meet the required +presentation standards for the report. + +Of the total 100 marks for the coursework, 20 marks have been allocated +for the quality of presentation and clarity of the report. A good +report, will clear, precise, and concise. It will contain enough +information for someone else to reproduce your work (with the exception +that you do not have to include the values to which the parameters were +randomly initialised). + +You will need to include experimental results plotted as graphs in the +report. You are advised (but not required) to use \texttt{matplotlib} to +produce these plots, and you may reuse code plotting (and other) code +given in the lab notebooks as a starting point. + +Each plot should have all axes labelled and if multiple plots are +included on the same set of axes a legend should be included to make +clear what each line represents. Within the report all figures should be +numbered (and you should use these numbers to refer to the figures in +the main text) and have a descriptive caption stating what they show. + +Ideally all figures should be included in your report file as +\href{https://en.wikipedia.org/wiki/Vector_graphics}{vector graphics} +rather than \href{https://en.wikipedia.org/wiki/Raster_graphics}{raster +files} as this will make sure all detail in the plot is visible. +Matplotlib supports saving high quality figures in a wide range of +common image formats using the +\href{http://matplotlib.org/api/pyplot_api.html\#matplotlib.pyplot.savefig}{\texttt{savefig}} +function. \textbf{You should use \texttt{savefig} rather than copying +the screen-resolution raster images outputted in the notebook.} + +Figures saved as a PDF file using \texttt{fig.savefig('file-name.pdf')} +can be included as graphics in +\href{https://en.wikibooks.org/wiki/LaTeX/Importing_Graphics}{LaTeX} +compiled with \texttt{pdflatex} and in Apple Pages and +\href{https://support.office.com/en-us/article/Add-a-PDF-to-your-Office-file-74819342-8f00-4ab4-bcbe-0f3df15ab0dc}{Microsoft +Word} documents. If you are using Libre/OpenOffice you should use +Scalable Vector Format plots instead using +\texttt{fig.savefig('file-name.svg')}. If the document editor you are +using for the report does not support including either PDF or SVG +graphics you can instead output high-resolution raster images using +\texttt{fig.savefig('file-name.png', dpi=200)} however note these files +will generally be larger than either SVG or PDF formatted graphics. + +If you make use of any any books, articles, web pages or other resources +you should appropriately cite these in your report. You do not need to +cite material from the course lecture slides or lab notebooks. + +\subsection{Code}\label{code} + +You should run all of the experiments for the coursework inside the +Conda environment +\href{https://github.com/CSTR-Edinburgh/mlpractical/blob/mlp2016-7/master/environment-set-up.md}{you +set up in the first lab}. + +A branch \texttt{mlp2016-7/coursework2} intended to be a starting point +for your code for the second coursework is available on the course +\href{https://github.com/CSTR-Edinburgh/mlpractical/}{Github repository} +on a branch \texttt{mlp2016-7/coursework2}. To create a local working +copy of this branch in your local repository you need to do the +following. + +\begin{enumerate} +\def\labelenumi{\arabic{enumi}.} +\itemsep1pt\parskip0pt\parsep0pt +\item + Make sure all modified files on the branch you are currently on have + been committed + (\href{https://github.com/CSTR-Edinburgh/mlpractical/blob/mlp2016-7/master/getting-started-in-a-lab.md}{see + details here} if you are unsure how to do this). +\item + Fetch changes to the upstream \texttt{origin} repository by running\\ + \texttt{git fetch origin} +\item + Checkout a new local branch from the fetched branch using\\ + \texttt{git checkout -b coursework2 origin/mlp2016-7/coursework2} +\end{enumerate} + +You will now have a new branch \texttt{coursework2} in your local +repository. + +The only additional code in this branch beyond that already released +with the sixth lab notebook is: + +\begin{itemize} +\itemsep1pt\parskip0pt\parsep0pt +\item + A notebook \texttt{Convolutional layer tests} which includes a + skeleton class definition for a convolutional layer and associated + test functions to check the implementations of the layer + \texttt{fprop}, \texttt{bprop} and \texttt{grads\_wrt\_params} + methods. This is provided as a starting point for those who decide to + experiment with convolutional models - those who choose to investigate + other topics may not need to use this notebook. +\item + A new \texttt{ReshapeLayer} class in the \texttt{mlp.layers} module. + When included in a a multiple layer model, this allows the output of + the previous layer to be reshaped before being forward propagated to + the next layer. +\end{itemize} + +\subsection{Submission}\label{submission} + +Your coursework submission should be done electronically using the +\href{http://computing.help.inf.ed.ac.uk/submit}{\texttt{submit}} +command available on DICE machines. + +Your submission should include + +\begin{itemize} +\itemsep1pt\parskip0pt\parsep0pt +\item + your completed course report as a PDF file, +\item + the notebook (\texttt{.ipynb}) file(s) you use to run the experiments + in +\item + and your local version of the \texttt{mlp} package including any + changes you make to the modules (\texttt{.py} files). +\end{itemize} + +Please do NOT include a copy of the other files in your +\texttt{mlpractical} directory as including the data files and lab +notebooks makes the submission files unnecessarily large. + +There is no need to hand in a paper copy of the report, since the pdf +will be included in your submission. + +You should EITHER (1) package all of these files into a single archive +file using +\href{http://linuxcommand.org/man_pages/tar1.html}{\texttt{tar}} or +\href{http://linuxcommand.org/man_pages/zip1.html}{\texttt{zip}}, e.g. + +{\small +\begin{verbatim} +tar -zcf coursework2.tar.gz notebooks/Coursework_2.ipynb mlp/*.py reports/coursework2.pdf +\end{verbatim} +} + +and then submit this archive using + +\begin{verbatim} +submit mlp 2 coursework2.tar.gz +\end{verbatim} + +OR (2) copy all of the files to a single directory \texttt{coursework2} +directory, e.g. + +\begin{verbatim} +mkdir coursework2 +cp notebooks/Coursework_2.ipynb mlp/*.py reports/coursework2.pdf coursework2 +\end{verbatim} + +and then submit this directory using + +\begin{verbatim} +submit mlp 2 coursework2 +\end{verbatim} + +The \texttt{submit} command will prompt you with the details of the +submission including the name of the files / directories you are +submitting and the name of the course and exercise you are submitting +for and ask you to check if these details are correct. You should check +these carefully and reply \texttt{y} to submit if you are sure the files +are correct and \texttt{n} otherwise. + +You can amend an existing submission by rerunning the \texttt{submit} +command any time up to the deadline. It is therefore a good idea +(particularly if this is your first time using the DICE submit +mechanism) to do an initial run of the \texttt{submit} command early on +and then rerun the command if you make any further updates to your +submisison rather than leaving submission to the last minute. + +\subsection{Backing up your work}\label{backing-up-your-work} + +It is \textbf{strongly recommended} you use some method for backing up +your work. Those working in their AFS homespace on DICE will have their +work automatically backed up as part of the +\href{http://computing.help.inf.ed.ac.uk/backups-and-mirrors}{routine +backup} of all user homespaces. If you are working on a personal +computer you should have your own backup method in place (e.g.~saving +additional copies to an external drive, syncing to a cloud service or +pushing commits to your local Git repository to a private repository on +Github). \textbf{Loss of work through failure to back up +\href{http://tinyurl.com/edinflate}{does not consitute a good reason for +late submission}}. + +You may \emph{additionally} wish to keep your coursework under version +control in your local Git repository on the \texttt{coursework2} branch. +This does not need to be limited to the coursework notebook and +\texttt{mlp} Python modules - you can also add your report document to +the repository. + +If you make regular commits of your work on the coursework this will +allow you to better keep track of the changes you have made and if +necessary revert to previous versions of files and/or restore +accidentally deleted work. This is not however required and you should +note that keeping your work under version control is a distinct issue +from backing up to guard against hard drive failure. If you are working +on a personal computer you should still keep an additional back up of +your work as described above. + +\subsection{Marking Scheme}\label{marking-scheme} + +\begin{itemize} +\item + Experiment 1 (20 marks). Marks awarded for experimental hypothesis / + motivation, completeness of implementation, experimental methodology, + experimental results, discussion and conclusions. +\item + Experiment 2 (25 marks). Marks awarded for experimental hypothesis / + motivation, completeness of implementation, experimental methodology, + experimental results, discussion and conclusions. Weighted by + difficulty of task. +\item + Experiment 3 (25 marks). Marks awarded for experimental hypothesis / + motivation, completeness of implementation, experimental methodology, + experimental results, discussion and conclusions. Weighted by + difficulty of task. +\item + Presentation and clarity of report (20 marks). Marks awarded for + overall structure, clear and concise presentation, providing enough + information to enable work to be reproduced, clear and concise + presentation of results, informative discussion and conclusions. +\item + Additional Excellence (10 marks). Marks awarded for significant + personal insight, creativity, originality, and/or extra depth and + academic maturity. +\end{itemize} + +\end{document} diff --git a/courseworks/cw2_hdr.tex b/courseworks/cw2_hdr.tex new file mode 100644 index 0000000..2ddcf80 --- /dev/null +++ b/courseworks/cw2_hdr.tex @@ -0,0 +1,11 @@ +\usepackage{txfonts} +\usepackage{microtype} + +\usepackage[a4paper,body={170mm,250mm},top=25mm,left=25mm]{geometry} +\usepackage[sf,bf,small]{titlesec} +\usepackage{fancyhdr} + +\pagestyle{fancy} +\lhead{\sffamily MLP Coursework 2} +\rhead{\sffamily Due: 24 November 2016} +\cfoot{\sffamily \thepage}