Table of contents:

Assignments

There are 8 (originally 9) assignments in this course, and you need to get 5 (originally 6) of them approved in order to qualify for the exam.

  Subject Chapters Published Deadline
1 Some Representative Problems
and Basics of Algorithm Analysis
1 and 2 23.08.2022 08.09.2022
2 Graphs 3 09.09.2022 20.09.2022
3 Divide and Conquer 4 21.09.2022 04.10.2022
4 Greedy Algorithms 5 05.10.2022 18.10.2022
5 Dynamic Programming 6 12.10.2022 01.11.2022
6 Network Flow 7 21.10.2022 04.11.2022
7 NP and Computational Intractability 8 03.11.2022 13.11.2022
8 Practice Exam All of the above 05.11.2022 15.11.2022
9 Tractability and Approximation 10 and 11 11.11.2022 No Delivery

The assignments will be given out on Blackboard where each assignment has a written theoretical part and a programming part in Python using Jupyter Notebook. The notebook task can be solved locally (for instance in VSCode), or you can uploaded the notebook to JupyterHub and run the code there.

The notebooks will guide you though a, more or less, specific solution to a problem. You are however encouraged to attempt to implement your own/other solutions, as long as:

The final exercise will be a practice exam. It will have problems similar to what you would get on the exam. As this is a new course, there are no previous exams, meaning that doing and getting this assignment graded could help you prepare for the exam. Therefore we highly recommend that you do assignment 9, even if you already have all your six assignments approved.

Delivery

To deliver an assignment you have to make sure you deliver both parts. You can deliver as many times as you want until the deadline on Blackboard.

Delivery should be done in two separate files according to the following specifications:

Theoretical Part

The theoretical question answers must be uploaded as PDF, how you answer the questions (handwritten scans, Word, iPad, LaTeX etc.) doesn’t matter, as long as they are delivered as a single PDF file and the answers are readable.

The filename should contain your name, for instance: JohnSmith-01-theory.pdf

Programming Part

The notebook should be delivered in full (as .ipynb). That way the TAs can easily run your code and verify the output. If you want, there is also a possibility to convert the notebooks to PDF with all the output. This can be delivered in addition to the notebook itself, if you are worried the TAs might get different results when they run your code.

The filename should contain your name, for instance: JohnSmith-01-programming.ipynb

Assessment

To get an assignment approved we will in general only require that you have made a solid effort in solving each task, and that you show that you understand the relevant curriculum, even if you get some answers wrong (everone makes mistakes!). It is important that you show you understand the curriculum and the questions.

As a general rule you need approximately 60% correct to get the assignment approved.

Remember that if you get stuck we have student assistants avaliable (see the section below).

Assignment Assistance

Some of the tasks in the assignments can be challenging, but there will be student assistants available if get stuck.

You can get help or technical assistance with the assignments from our student assistants during the following hours:

Day Time Student Assistants
Monday 12:00 - 14:00
Tuesday 10:00 - 12:00
Wednesday 12:00 - 14:00
Thursday 10:00 - 12:00
Friday 11:00 - 13:00
Location A4-156