Department of Computer Science and Technology

Course pages 2019–20

Instructions for lecturers

Most lecturers now place material for their students on the web. To support this, the Computer Laboratory creates each year a new set of directories and page templates, to ensure that outdated material is not left in the main student access path.

Where are the files?

Each course has its own directory with a set of web-page templates.

These can this year be found at:

  /anfs/www/html/teaching/1920/courseid                under Unix/Linux
= \\filer\webserver\www\html\teaching\1920\courseid    under Windows
=     web pages
=  year-invariant alias

Please consult the lecturer index to find your pages.

You can access the /anfs/www/... path above on the departmental file space directly on any lab-managed Linux computer. If you lack one, please use ssh or PuTTY to log into one of the Linux timesharing servers (e.g.,

Mac users: There are new macOS NFS automount instructions on how to access from Macs the filer directory


If you follow these, you will also have to change (for now) in the instructions below and in the provided Makefile the path component “/anfs” to “/auto/anfs”.

External lecturers: The instructions on this page are mainly aimed at lecturers who have already a login on a departmental Linux server. External lecturers may find it easiest to ask a member of the department, such as the librarian, the teaching officer who sponsors their course, or the student administrators to place course materials for them onto our web server. Former members of the department, or technically keen external lecturers, may also ask a teaching officer to request for them a “discretionary Unix account” from [Javascript required], ideally sometimes in early July. (Note that remote access to Computer Laboratory servers is not entirely trivial, as password-based login from outside is disabled, and new users will have to set up VPN and Kerberos authentication first. See our sys-admin ssh pages for details.)

How to update the pages?

An easy to edit, undecorated, “bare-bones” HTML file, materials-b.html, has been placed into your directory, where you can add any information that you would like to make available to your students, such as links to lecture notes and exercise sheets. The actual “Course materials” page, materials.html, is automatically generated from that file after you type "make" under Linux. (If there is no materials-b.html file, you can edit index-b.html instead, but this applies only to a few pages where there is no syllabus.)

To recreate all the *.html files from the respective *-b.html files, run the UNIX command:

  /anfs/www/tools/bin/ucampas -r

Simply typing “make” will achieve the same, thanks to the also provided Makefile.

Access rights

A principal lecturer has been assigned to each course. This person is the owner of the directory and has full access.

If a course has more than one lecturer, its course directory also gives write access to Unix group “teaching”, which comprises all the lecturers teaching any course at the department this year, plus teaching administrators (about 70 people). This makes collaboration easier in courses taught by several people, and also allows administrators to help with placing materials online or fixing typos. To preserve group write access, make sure the Linux command “umask” outputs “0002”.

If you prefer to disable group write access, you could do this with the Linux tools chgrp or chmod. However we do not recommend this: if user wwwupdate no longer has write access to auto-generated HTML files, the site navigation data on some of your pages may get out of date as we can no longer update it for you.

Syllabus page

The first tab of the course pages (index.html) usually shows an HTML version of the syllabus. You are not supposed to edit that yourself directly: the syllabus is edited and frozen in August/September and substantial changes require teaching-committee approval.

To update your CST Part IA, Part IB or Part II syllabus:
We produce the printed syllabus booklet using LaTeX. We generate the HTML version automatically from the LaTeX original (using latex2html). Fetch the current LaTeX source from /anfs/www/html/teaching/1920/syllabus-latex/ and then send the revised version to Nicholas Cutler and Dinah Pounds.
To update your CST Part III or MPhil ACS module syllabus:
Fetch the HTML source from /anfs/www/html/teaching/1920/syllabus-html/ and then send the revised version to Lise Gough.

Materials for supervisors

Lecturers in Part IA/IB/II are expected to prepare a Supervision Guide for supervisors of the course, and this is what the page “Information for supervisors” in subdirectory supervisors/ is for. Access to this page is restricted via Raven.

You can edit the file supervisors/.htaccess in order to grant access to individual supervisors that contact you, as explained in the comments in that file. Supervisors can also ask the Director of Studies or Helen Neal (whoever hired them), to add them to the Lookup/Raven group cl-supervisors, to gain that access. (Comments in the .htaccess file also explain how you can grant access to your students after the end of lectures and supervisions.)

In our archive of past Tripos exam papers, students can now also access solution notes older then two years. As a result, supervisors can no longer rely on past exam questions as exercise material and need separate exercise sheets and solution notes.

Assessment page

Part II units of assessment as well as Part III and MPhil ACS modules have an assessment-b.html page, where you need to explain in detail how you are going to assess the course. This might include information about deadlines for essays or the dates and details of exams, as well as how the final mark will be calculated from all the assessed student contributions.

If your Part II unit is also available as a Part III and MPhil ACS module, please make sure you populate the assessment-tab page on both of your course pages.

Cloned course pages

Some courses (in particular many of the new "Part II units of assessment") are now offered to both Part II as well as Masters students. In these cases, we create two separate course directories for each group of students, using different course codes.

This is because while the lectures and most of the course materials may be the same, the form of assessment (and in some cases also the syllabus) will be different.

To avoid lecturers having to maintain two copies of their syllabus and course-materials pages, we have set up the syllabus and materials pages of these "cloned" Masters courses such that they automatically copy over the text from the respective Part II parent-course pages. This is done using a magic <div class="ucampas-include-html"> element, which extracts and copies the relevant HTML and also adjusts embedded URLs to work correctly. If you want, you can add additional text above or below that magic div element, or you can alternatively also delete it and replace it with your own manually maintained copy of your text, as you prefer. See the comments in the materials-b.html files for more details.

After each edit to the materials page of the parent course, make sure you also run ucampas on the corresponding cloned page to update it with the latest text. The default Makefile provided in your parent-course directory will do that automatically.

Video recordings

For courses scheduled in Easter term 2020, during the COVID-19 closure of the lecture theatres, we have added an additional “Recordings” tab at


Record your lectures as *.mp4 files and copy them into the above video/ folder. You can then auto-generate an index page on Ely with

$ ssh -K
$ cd /anfs/www/html/teaching/1920/courseid/video/
$ make

The “make” command will run the “Makefile” in that folder. This will

  • extract the first frame of each *.mp4 file and save it as a *.jpg file (to be used as a preview image by the player)
  • call a “videopage *.mp4” script that automatically builds an index.html file containing <video> player elements for all your *.mp4 videos in that folder.

This way, you get an make-generated video index page, without having to edit any HTML yourself. Each time you add another video file, simply call “make” again to update that index page. (If you instead want to edit your video index page manually, you may want to delete or change the Makefile such that it cannot accidentally overwrite your DIY index page if called.)

Video file naming conventions:

Your video files will appear on the auto-generated index page in alphabetical sorting order, so make sure each filename starts with a 2-digit number or yyyy-mm-dd date.

The videopage script understands several different file naming schemes, for example:

  • If you just want to have a sequence of videos, each with a title, use names such as

    Example: Unix Tools

  • If you want to group your videos by lecture, prefix each video filename with the yyyy-mm-dd date of the lecture, optionally followed by more digits for sorting, such as

    Example: Digital Signal Processing

Video recording tips

  • There is no reason to make each video 50 minutes long. You can instead break up your lecture into topic sections of 5–20 minutes each, and record each of these as a separate file. This makes it easier for students to take a break, or do some exercises, at the appropriate time.
  • Make sure the first frame of your video indicates what the video is about, e.g. shows a slide that states or visualizes the topic of the section. The index page will show the first frame of each video as a pre-view picture, so if it indicates the section, that helps your students to pick the right video. (You may want to define keyboard hotkeys to start and stop the recording, such that the start of your videos does not show you interacting with the GUI of your screen recording software.)
  • You can use any video recording software that you like, as long as it produces reasonably sized MP4 (H.264) files compatible with most web browsers. If your video images only present a slide show, i.e. the image does not change most of the time, make sure you use variable bitrate (VBR) encoding. (The alternative, constant bitrate (CBR) encoding, commonly used for real-time streaming, produces many megabits per second even for a completely static image, leading to huge files. 100 MB per hour is a reasonable typical VBR filesize, while 10 GB per hour is not.)
  • See Markus Kuhn's page on OBS Studio settings for suggested settings if you are using OBS Studio for recording.
  • There is also a departmental Google Docs document with more video-recording hints for Easter term.

More information