The MSc programme consists of several integrated parts:

  • an intensive introductory programming course, taught during the first two weeks of the course, covering the imperative part of the object-oriented programming language C++, and UNIX-based operating systems;
  • five compulsory courses of foundational material taught during the Autumn term, supplemented by a comprehensive laboratory-based course of practical programming exercises;
  • four courses selected from a set of specialist options, taught during the Spring term;
  • a practical group programming project running through the Spring term, along with a series of lectures on software engineering practice;
  • an individual project containing an element of original work, undertaken during the Summer term.
  • Students may also freely attend any of the professional skills courses offered on the Imperial Graduate School's MasterClass programme.

Each taught course is timetabled for approximately 27 hours, either in the Autumn term (October - December), or in the Spring term (January - March), and students are expected to spend up to an additional 75 hours in independent study. All taught courses are examined by courseworks and a written examination. A number of the  Spring term courses are examined at the end of the Spring term, in March. The Autumn term courses and the remainder of the Spring term courses are examined at the beginning of the Summer term, in April/May. The practical laboratory course is examined by assessment of the practical assignments, and two 2-hour programming test at the beginning of the Spring term.

An optional short introductory course to Matlab is available at the beginning of the Spring term. This will be useful for students intending to take certain of the selective courses later in the term.

The choice of optional courses and projects available to students may, to some extent, be restricted by the schedule of lectures and the availability of staff. The list of options offered may be adjusted slightly from time to time.

Towards the end of the Autumn term, students will form themselves into groups of five or six students, and each group will be allocated a project. The project will run over the entire course of the Spring term. A member of academic staff acts as a customer and technical consultant, and ensures that the work is properly structured with regular meetings and appropriate documentation of the decision making process. Students learn about technical issues involved in managing a software engineering project through lectures and put the techniques into practice through the team programming project. The project is assessed via three reports, with the final one due at the beginning of the Summer term to be accompanied by a demonstration of the developed software product.

The individual project is started in the Summer term. The project is undertaken full-time, under the supervision of a member of the academic staff, leading to submission of a dissertation in the middle of September. The project is expected to contain some element of original work. Students have the opportunity select their project topic from a wide range of proposals, or to propose their own project subject to discussing its feasibility and appropriateness with the academic staff. It is possible for a project to involve informal collaboration with one of the many industrial organisations with whom the Department has contacts, and a period of up to three months may be spent outside the College, as long as regular contact is maintained with the project supervisor. Details must be agreed beforehand with the Course Director.


Students must satisfy the examiners separately in two components:

  • written examinations with associated coursework for the nine taught courses, and practical and written assessments for the laboratory programme and group project;
  • completion of a dissertation based on the individual project.

The MSc degree is awarded with Pass, Merit or Distinction.