Statistical Learning Theory: Coding Exercises
This repository serves two purposes:
- Distribute the coding exercises, including the templates.
- Collect the code written by students for the SLT coding exercises.
The coding exercises concern the implementation of algorithms taught in the lecture/exercise class.
The final grade for the lecture is max(exam, 0.7 exam + 0.3 project).
Students who wish to get the advantage of the project bonus need to submit reports about their coding excercises.
There will be eight coding excercises, and each report will be graded either as good, normal or not accepted/not submitted.
With no submitted/accepted reports, the project grade is 4.0. Each normal report increases the project grade by 0.25, while a good report increases it by 0.5.
This means eight normal reports result in a project grade of 6.0 and good reports help you to compensate for not submitted/accepted reports.
The maximum project grade is 6.0.
Note that even if you are not interested in doing the projects, the written exam might include problems addressed in the coding exercises.
How to find exercises
The exercises templates are published on the master branch. The latex templates contain all the information about the exercises.
How to do an exercise
First you need to setup the repository on your machine, see initial setup below.
Once an exercise template is online, derive your working branch for the exercise:
git checkout master
git checkout -b xx-xxx-xxx/exercise_name
Make sure you provide your correct ETH legi number in the format xx-xxx-xxx and the exercise name identical to the name of the latex template.
The legi has to be correct, so that we can match it!
Now you can go ahead and do some work, like compiling the template, adding and running code, etc.
Use the template also for your report and delete the instructions which are in the document.
Do not forget to set your name, legi number and git branch at the beginning of each template.
You can always commit and push to your branch and we will take your final report from your branch.
If you are uncertain if everything is where it should be, just look at your branch in the browser.
When you have finished your experiments and report please push everything to the respective exercise branch.
Make sure to put the final report tex file and a pdf compiled from it in the top level directory of the exercise branch.
Reports which provide considerably incomplete answers to the questions are not accepted.
In particular, be cautious about negative results and make sure you have a solid explanation why something did not work.
The content of the report may be concise, but needs to be consistent and informative.
This is especially true for plots or graphics. Do they show the information that they should show? Can the information be decoded easily? Did you add a descriptive caption? Are all the axes and objects labeled?
The text part of the report should describe how you calculated and produced the results in your plots. Clearly state important infos (e.g. which distance measure did you use in your model?) and move less important information (e.g. parameters of your model) to the appendix. If it is not clear from the question, make sure you describe the motivation, i.e. purpose of your experiments.
Consider the report as a reference to your future self, imagine you would need to quickly understand the report in a couple of months - could you?
(1) Request and get access to the repository.
(2) Clone the repository to your machine, i.e.
git clone https://gitlab.vis.ethz.ch/vwegmayr/slt-coding-exercises.git
(3) Change into the repository directory:
If you want to ask questions, view feedback on exercises or just show off your latest results, sign up at our slack team:
Note, you first need to create a slack account using your nethz email, i.e. firstname.lastname@example.org.
Make sure to use @ethz.ch, this is the ETH default alias (no matter which subdomain you normally use).
Note you will only enter the #general channel by default. Join these dedicated channels: