skip to primary navigationskip to content

Department of Computer Science and Technology

Algorithms 1

Course pages 2021–22

Algorithms 1 - Ticks

  • Tick 1: binary heaps (lecture 3 / section 2.10) — due Thu 10 Feb 2022
  • Tick 2: dynamic programming (lecture 6 / section 3.1.2) — due Thu 24 Feb 2022

Please submit your answers to the Moodle tester, in either Python or Java. The instructions for each tick explain what files to submit.

There are also optional starred ticks, so you can challenge yourself further. These carry no course credit: only for your learning and satisfaction. Again, submit your code to the Moodle tester.

  • Tick 1*: more efficient binary heaps
  • Tick 2*: more efficient dynamic programming

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

Assessment

The 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 read the Guidance on deadlines page carefully, noting the typical penalties, and follow the process described therein.

There is a non-zero probability that you will be selected for a one-on-one "viva" via video. This is your chance to show off the elegance of your coding, and to discuss it interactively with the lecturer. We regret we can't offer this to all students. You are allowed to significantly increase the probability of being selected by doing all of the following by the tick deadline:

  • program your solution in Python rather than Java
  • write a genuine .py file rather than an .ipynb notebook
  • ensure your code passes pycodestyle with no warnings
  • ensure your code passes pylint (in its default configuration) with a score of at least 8/10
  • explicitly volunteer on Moodle
Details of who has been selected will be provided a few days after each tick's deadline.

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.