The second year labs are coordinated by Mark Wheelhouse. The individual pieces of labwork 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 Second Year Laboratory program is broken down into 4 main components:

  • Linkload (individual exercise)
  • C++ Enigma (individual exercise)
  • WACC: Compiler Lab (group exercise)
  • Pintos: Operating Systems Lab (group exercise)

For a detailed schedule of the labs, including all material and deadlines, please see CATe.
All of the year's labs are supported through LabTS the Depatment's Laboratory Testing Service.

WACC: Compiler Lab

The WACC Compiler Lab lasts for the majority of the autumn term. As part of the lab, you will be designing and bulding a compiler for the WACC 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 acrhitecture, so be sure to review your notes from the first year.

We will distribute the documentation for the WACC lab early in the autumn 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 course (CO221) will provide an introduction to the WACC language via a specification writing exercise.

Pintos: Operating Systems Lab

The Pintos Operating Systems lab lasts for the majority of the spring 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.

In the second half of the autumn term 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. It is advised that you familiarize yourselves with the code and the documentation before the start of the spring term.

A proportion of your Pintos marks (across all tasks) will count towards the Operating Sysytems (CO211) course total.

WebApps: 2nd Year Group Projects

In the summer term you will have a group WebApp project. In this project you will have to use agile techniques and human centred design principles to design and build a web-based or mobile-based application with a database backend.

In the second half of the spring term we will distribute the documentation for this project so that you can begin to plan your work. You are not expect to start work on the program itself until after your exams, but you may find it useful to organise your groups and discuss project ideas before you go on study leave.

A selection of the best WebApp projects from previous years can be found on the WebApp prize-winners page. These projects should help to inspire and challenge you to produce top quality projects, but under no circumstances are they to be copied (we take plagiarism very seriously).