Computing Practical 2 (consisting of internal sub-modules COMP50007.1, COMP50007.2 and COMP50007.3) are coordinated by Mark Wheelhouse. The individual pieces of lab-work in the second year are both larger and longer than those encountered in the first year. You are advised to leave plenty of time to work on these exercises as you will find it very hard to complete them at the last minute.

Lab Exercises

The COMP50007 Computing Practical 2 Laboratory program is broken down into 5 main components:

  • Pintos: Operating Systems Lab (group exercise)
  • True Concurrency: Parallel Computaiton in C (individual exercise)
  • Prolog: Declarative Programming Coursework (pair exercise)
  • DevOps: Continuous Integration/Deployment Experiments (group exercise)
  • WACC: Compiler Lab (group exercise)

For a detailed schedule of the labs, including all material and deadlines, please see Scientia.
You can find the Computing Practical 2 Reading List on Leganto.
All of the year's labs are supported through LabTS the Depatment's Laboratory Testing Service.

COMP50007 Computing Practical 2 Breakdown

ComponentShareElement
COMP50007.1 Laboratory 2:
   61%
  Pintos - Task 0 (Codebase Preview)  7%  
  Pintos - Task 1 (Scheduling)  14%  
  Pintos - Task 2 (User Programs)  21%  
  DevOps - Continuous Delivery  8%  
  WACC - Front-End  25%  
  WACC - Back-End  25%  
  (100%)  
COMP50007.2 Introduction to Prolog:    6%
  Coursework  100%  
  (100%)  
COMP50007.3 Advanced Laboratory 2:    33%
  Pintos - Task 3 (Virtual Memory)  50%  
  True Concurrency  27%  
  WACC - Extensions  23%  
  (100%)  
Total    100%

Pintos: Operating Systems Lab

The Pintos Operating Systems Lab lasts for the majority of the Autumn term. As part of the lab, you will be designing and implementing the core parts of a simple operating system for the x86 platform. The lab consists of three difficult tasks, which are spread throughout the term (preceded by a short introductory task). The tasks require strong C implementation skills, so be sure to review your notes from the first year.

We will distribute the documentation for the Pintos lab, which consists of over 100 pages describing the operating system framework that you will be working with, right at the start of the new acadmic year. It is advised that you familiarize yourselves with the provided code the supporting documentation as soon as possible.

A proportion of your Pintos marks (across all tasks) will count towards the Operating Sysytems (COMP50004) module total.
Note that JMC students are not required to complete the final milestone of the Pintos Operating Systems Lab (part of COMP50007.3).

WACC: Compiler Lab

The WACC Compiler Lab lasts for the majority of the Spring term. As part of the lab, you will be designing and bulding a compiler for the WACC programming language from scratch. The lab is assessed at 3 milestones, which are spread throughout the term. The tasks require strong Java implementation skills and knowledge of the ARM architecture, so be sure to review your notes from the first year.

We will distribute the documentation for the WACC lab early in the Spring term, as well as how to access a reference implementation of a WACC compiler. There is a lot to read and experiment with, so be sure to start looking over this material early.

The first coursework of the Compilers module (COMP50006) will provide an introduction to the WACC language via a specification writing exercise.
Note that JMC students are not required to complete the final milestone of the WACC Compiler Lab (part of COMP50007.3).