Assignments
This course has a strong practical component. You make four assignments (in groups of two), which together make up 50% of your final grade. Therefore, carefully read the below topics.
Rules
Make sure you stick to the below rules for the course report:
Template: Write your report in this Latex template.
Do not alter the style file or page limits.
We use the template to make sure your reports are 1) neat, 2) comparable and 3) do not get too long. Therefore, simply enter your names and student numbers as authors, think of a nice title, and include you text, figures and tables as you would usually do in a latex document. You may include an abstract, but this is not mandatory.
Page limit: Your report has a page limit of 6 pages (excl. references). We will not grade any material beyond the page limit.
You may include additional results/explanation, but put them in an Appendix. (It is up to the grader to read these: you are in principle graded based on your main report.)
Groups: You take the assignments in groups of two.
If you can't find a partner for your team, try to get in touch with eachother through the Brightspace forum.
Contributions: Make sure you do all work together, and learn together. Splitting the assignment is not allowed.
If we ask you to explain your assignment, both of you should be able to explain all aspects.
Code: Include your code with the report.
Make sure your code runs from the command line.
When you use new packages, indicate your dependencies.
Assignment PDF & Code
You get the assignment pdf and starting code from Brightspace (under Assignments).
Note: you first need to enroll in a groups for the specific assignment to actually see the Assignment appear in your list.
Start your assignment early (at least come to every practical session!). From previous years we know you need this time to explore the assignment, and you will not be able to finish it if you start in the last week.
Deadline
Each assignment has a clear deadline for handing in (see Schedule). You submit your assignment through the Brightspace page of the course.
Being late: We deduct a full point of your assignment grade for every full day (24 hours) that you hand it in too late.
Yes, this indeed means that the first 23:59 hours late are for 'free'.
For example: Your submission, which scores a grade of 8.0, was submitted 60 hours after the deadline. We deduct 2 points for being more than 48 hours (2 days) late, and you receive a 6.0.
Warning: Start early! From previous years, we know students have the tendency to start in the last week. However, you will only have one practical session left to ask questions (which is not enough), and you will only finish half of your report. Start from the first week (come to every practical) to save yourself a lot of problems.
Guidelines
Study these lecture slides first! (You can find the same content with additional advice, also for a thesis, at: https://www.academic-skills.org/)
Report structure: Give your report a decent structure, with at least an Introduction, Methodology, Results, Discussion and Conclusion section.
You may also split up the methodology and results sections per topic, i.e., have something like:
Sec. 1: Introduction
Sec. 2: Topic I
2a Methodology
2b Results
Sec. 3: Topic II
3a Methodology
3b Results
Sec. 4: Discussion
Sec. 5: Conclusion
Understanding: Show your understanding! (See explanation on the bottom of this page)
In the introduction/discussion/conclusion, show that your understand the bigger picture of the assignment (why are we doing this, what is the problem, how do the studied methods differ, etc.).
In the methodology section, explain why certain design choices in algorithms are made, what their benefits and problems are, etc.
In the result section, interpret what you see. Describe what you conclude from a figure, what your find interesting, what could be possible explanations, etc.
Statistical practice: Run repetitions of your experiment. Do not tune the seed. Average your results over repetitions. (Optional: include confidence intervals).
Hyperparameter tuning: Always tune (some) hyperparameters. Start with the most important ones, such as the learning rate and and exploration parameter.
Equations: Write equations to explain your method. Keep notation consistent. Introduce every new symbol.
Captions: Write captions with all your figures and tables. Make the captions self-contained (describe the setting, what you conclude, and how the figure/table was produced).
Debugging
The practicals are there to answer content questions, and (unfortunately) not to help you debug your code. This is something your really need to learn to do yourself.
For example, we cannot help you with questions like: "I get this error message" or "My code is not working, can you find my mistake?".
Remember: coding is not only about typing actual code, but also about verifying what your code is effectively doing. When you ask a question, make sure you understand what your code is doing.
Use a debugging tool (or at least a print statement) to find out what a variable stores, how it changes during algorithm execution, whether that matches your expectations of the algorithm, etc.