MSc Mathematics and the Foundations of Computer Science (2025-2026 Entry)

5. Teaching and Learning

5.4. Practicals

5.4.1 Practical Sessions 

The purpose of practical exercises for the Computer Science courses is to help you make sure you understand the application to practical programming of the theory that is taught in lectures. You will find more information about how to sign up for practicals (signing up, signing off and submission of reports, assessment) in the Courses section of 
the website of the Department of Computer Science 
https://www.cs.ox.ac.uk/teaching/courses/2025-2026/practicals/

Please note that where a course has classes and practical sessions, students are expected to attend both. 

Classes are interactive problem-solving sessions for smaller groups of students that normally last about an hour. Problems for the classes are set by the lecturer of each course. Your work on these exercises must be handed in by the required deadline for assessment by the person running the classes for that subject. Model solutions will be provided to all students after the class has taken place. Each class has a marker and a tutor. The marks from the tutorial exercises will be made available to your general supervisor for information. The timetable for these classes (and the associated deadlines) will be published on the Minerva database.  
Courses with practicals normally have 4-6 classes; courses without practicals normally have 6-7 classes.  

5.4.2 Timetable 

Practicals will usually start in week 3 of the term and there are normally four to six 2-hour sessions for each course during the term. During the first 2 weeks of the term you will be required to sign-up for a practical group. Most courses have 2 groups at different times in the week; you should choose the session that fits best with your timetable. Sign up is done online using the Minerva database; you will be informed through the termly notices of how to sign up for classes and practicals. Sign up is on a first-come-first-served basis: there is a limit to the number of students in any group, which may mean you don’t get your first choice of group. 

There will usually be a number of exercises that you will need to complete for each course. You might also need to work on the practicals in your own time, outside the scheduled practical sessions. 

5.4.3 Attendance

Because we want to make sure that you’ll get all the guidance you need, and progress well, attendance at practical sessions is compulsory until you have completed the practical. The demonstrators will keep a record of your presence and update attendance and practical completion details on Moodle.

If you are unable to attend a practical session, for example because of illness, you should inform the demonstrator in charge, if possible before each session. You can find information on how to contact them on Minerva. 

5.4.4 Writing Practical Reports 

Each practical requires a report to be submitted for assessment. The report should not be a major burden: it is simply to provide evidence that you have done the work properly. Practical exercises usually give specific instructions as to what should be included in the practical report. In any case the following guidelines should be followed. 

  • In many practicals, most of the report will be in the form of a program. Of course, you are expected to follow good programming practice: 
    In a multi-module program, you should include some text explaining the role of each module, and the relationship between them; 
  • You should include suitable comments explaining the purpose of variables and procedures;
  • You should also include comments to explain any interesting algorithms you have used: writing down an 
    invariant will often help; 
  • You should make the code easy to read, for example by following standard indentation conventions, and by suitable use of white space; 
  • You should also include some evidence that the program works, for example by including sample output or screen shots: testing is a very important programming skill, and so you should show that you have considered suitable tests. 

Many practicals will include specific questions for you to answer. Make your answers concise and relevant. 

If the aim of the practical is to produce some experimental results, then you should present and discuss those. Do not just include pages and pages of numbers spewed out by the program. A concise summary is better, perhaps using another program to show the results are correct (by making a graph, say).

Try to avoid reproducing large volumes of code from the practical materials or repeating program code that you have already listed in the report. If a second program has to include the same procedure definition (say), just write "Procedure Sort(x) defined as before."

You are encouraged to write up reports on practicals as you do them during the term. The demonstrators will happily look at your reports and give you advice about them at the practical sessions. It is perfectly acceptable to have your report marked at one practical session, then do further work on the practical and submit an improved report by the 
deadline.  

You may want to produce the report using a text formatter like TeX or LaTeX, or a word processor. Be careful that the time you spend in formatting the document prettily does not distract you from getting the content right. A cogent, concise, neatly hand-written report is preferred to pages of word-processed verbiage. If you do produce a typed report, please ensure that it is legible, with adequate margins and with type that is no smaller than 10 points. While working on your practical, keep a record of the tests you performed on your program, so that you can easily copy relevant data into your report.

Do not copy any other person's practical report. You may have general discussions with other students about the practicals, but the code, test data and report must be all your own work. 

5.4.5 Signing off Practicals 

In order to have the demonstrator record that you have completed the practical, you must show them that you have done the work, perhaps by demonstrating a working program.  

5.4.6 Assessment of Practicals 

When you have completed the work for a practical and the report on it, a demonstrator will check and mark your work at a practical session. They will ask you first to show that you have done the work, leaving aside any optional parts, and will record this fact in their register, together with your attendance at practical sessions. If a practical turns out to be very long or difficult, the demonstrators (with the advice of the course lecturer) may record the practical as complete if you have done a reasonable amount of work, even if you have not finished it.

The demonstrator will also mark your report, either at the practical session if there is time, or by taking it away and returning it later. The practical report will be marked, taking into account whether you have done any optional parts, as well as the quality of your write-up, and the general difficulty of the practical exercises. As a general guide, even an incomplete report on each practical in the course gains more credit than one where some practicals are entirely missing. Extra credit is awarded for completing optional parts of practicals, but not to such an extent that it is worth spending many hours finishing every optional part.

The following scale of marks is used by the markers; the descriptions attached to each mark indicate the rough level of performance expected, but may be adjusted to take into account the degree of difficulty of the practical exercise.

S+  

The student has either completed the compulsory parts of the exercise and submitted an exemplary report, or completed all parts of the exercise and submitted an adequate report. 

S  

The student has completed the compulsory parts of the exercise and submitted an adequate report. 

S-  

The student has completed only part of the exercise, or has submitted an inferior report. 

Practicals are assessed in two ways: first, the demonstrators keep a record of who has attended the practical classes and completed each practical exercise associated with a lecture course; and second, you write a practical report that the demonstrators mark, and which you submit to the examiners. 

In examinations, the marks for practicals are treated separately from those for written papers. Practical marks do not affect the class of degree that you will be awarded, but the outcome will be listed on your official transcript.  

All the practical reports must be submitted to the examiners at the end of the year. You must submit them to the Examiners, online via Inspera, by 12 noon on Friday of Week 5 of Trinity Term; full details will be given nearer to 
that date. Note that reports should be anonymous: they should contain your candidate number, but not your name. 

5.4.7 Late Practicals 

Practicals are intended to support the lectures and class work on a course, to help to impress material on your understanding, and to connect theory with practice. Accordingly, it is very much better to be doing the practicals for a lecture course at the same time as the other work on that course. Deadlines are set to help you to resist the temptation of putting off practicals. 

Another advantage of doing your practicals during the scheduled sessions is that the demonstrators are often able to spot problems that are affecting several people and do something about them, perhaps clarifying the instructions or providing a piece of missing information. If you do not attend the practical sessions, you will not have access to this help. 

The Examiners will not take into account practical reports unless they have been "signed by a demonstrator". The Examiners will give you no credit for practical work that was not submitted for marking by the deadline and signed by a demonstrator, unless there are extenuating circumstances. Likewise, demonstrators will not mark work that is late, unless there are extenuating circumstances. 

5.4.8 Difficulties 

If you are having difficulties in your practicals please make sure you speak to your general supervisor or a member of the Academic Admin Team as soon as possible.