Department of Computer Science and Technology

Course pages 2019–20

OCaml Practical Classes

Principal lecturers: Dr Anil Madhavapeddy, Dr Amanda Prorok
Taken by: Part IA CST 50%, Part IA CST 75%, Part IA NST

The Foundation of Computer Science practicals (or "OCaml ticks") are a series of practicals, each marked with a binary pass/fail grade. It is expected that all students will obtain each tick. There are five ticks in total: four compulsory for all students taking paper I (CST, NST and PBS). The fifth exercise is compulsory only for Computer Scientists (CST students).

Each tick is accompanied by a starred tick (i.e. 1*, 2*, 3*, 4* and 5*). These are strictly optional and will not contribute to the final mark for the year. Nonetheless you may find it very valuable to attempt these ticks.


  • A new ML tick is set each Thursday, for five consecutive weeks, starting October 10th.
  • For each tick you must check it out and submit it via the assessment site. The site will automatically assess the solution and tell you whether the solution is sufficient to pass. (See instructions below on how to use this site and access the ticks).
  • Initially you will be awarded a score of 0.5. When you have a tick you will be upgraded to 1.0 (which signifies awarding the tick).
  • Each tick must pass the automated checker by 1700 on the completion date.
  • Every two weeks on a Thursday afternoon you will be assigned a ticking slot where you will meet with a ticker who will go over your solutions from the past fortnight with you.

The Role of Tickers

A ticking session is a short (5 minute) one-to-one session with a ticker conducted on Thursday afternoons between 13:30 and 16:00. The role of the ticker is twofold:

  • to check you understand your solution (and didn’t just have some lucky guesses or copy code from elsewhere)
  • to give you general feedback on ways to improve your code.

To those ends a Ticker will typically ask you questions related to the core material of the tick and discuss your code directly.

Deadline Extensions

Deadline extensions can be granted for illness or similar reasons. To obtain an extension please email Anil Madhavapeddy and Amanda Prorok in the first instance, clearly stating your justification for an extension and CCing your Director of Studies, who will need to support your request.

Errata and Problems

Please make use of the Help Forum (on the Moodle site for this course) if you spot any errors in these ticks or you have any difficulties submitting your work.

How to Submit a Tick

Ticks are conducted via the interactive FoCS notebook site. When you first log in there, you will see a directory and some tabs.


Click on the Assignments tab to find your ticks.


The ticks that have been released will be available there for you. The next step is to expand them to find the assignment:


Click on Fetch on the assignment to clone it over to your notebook.


Once the assignment is fetched, it is available for you to view and edit it.


At this point, you need to edit the notebook and execute the cells (via the Cell menu) to validate your answers. Once you are happy with your answers, go back to the directory page and click on Validate to run it through the automatic checker, and then Submit when you want to hand it in.


Good luck, and we hope your enjoy your foray into functional programming!