skip to primary navigationskip to content

Department of Computer Science and Technology

Algorithms

Course pages 2020–21

Algorithms

You are encouraged to work on these tick at the same time as you are watching the relevant video / reading the notes. It's a great way to sharpen your understanding. Please submit your answers to the Moodle tester, in either Python or Java. The instructions for each tick explain what files to submit.

  • Tick 1: binary heaps (lecture 3 / section 2.10) — due 7 Feb
  • Tick 2: dynamic programming (lecture 6 / section 3.12) — due 21 Feb
  • Tick 3: maximum flow (lecture 16 / section 6.2) — due 14 March

There are also optional ticks, so you can challenge yourself further. Again, submit your code to the Moodle tester.

  • Tick 1*: more efficient binary heaps
  • Tick 2*: more efficient dynamic programming
  • Tick 3*: matchings (lecture 18 / section 6.4)

There is also a Q&A forum on Moodle for any questions about the ticks.

Assessment

The three required ticks form part of your final grade for the year, as per the departmental marking scheme. We expect that nearly all students will complete all their ticks. To complete a tick, you must pass the Moodle tester by the deadline listed above. If you have a good reason for not being able to complete the tick on time, please contact your Director of Studies, who will decide whether you may request an extension.

The lecturers will select some students for a one-on-one "viva" via video. This is your chance to show off the elegance of your coding, and to discuss it with the lecturer! We regret we can't offer this to all students. You can volunteer on Moodle. Details of who has been selected will be provided after each tick's deadline.

  • Tick 1: Vivas with Dr Wischik
  • Tick 2: Vivas with Prof Stajano. For this tick, volunteers must program in Python, and pass pycodestyle with no warnings, and also pass pylint in its default configuration with a score of at least 8/10, for their code to be considered.
  • Tick 3: Vivas with Dr Wischik

Ticks are based on an honour code. You are welcome to discuss the problems with your fellow students, or with your supervisor, but you MUST implement your code yourself and you MUST be able to explain how it works. The lecturers will randomly select some further students for a viva, for auditing.