COMPGC04 - Systems Infrastructure

This database contains the 2017-18 versions of syllabuses.

Note: Whilst every effort is made to keep the syllabus and assessment records correct, the precise details must be checked with the lecturer(s).

Year MSc
Prerequisites This course should be taken in conjunction with the core courses for this programme (ie GC01, GC02, GC03 and GC05)
Term 1
Taught By

John Dowell (50%)

Rae Harbird (25%)

Ghita Kouadri Mostefaoui (25%)

Aims This course is an amalgam of three different aspects of systems design and construction - operating systems, compilers and databases - each having approximately equal weight. The course is a fundamental one in the programme as a whole, in the sense that it introduces material that is built on elsewhere and, consequently, much of the material will be aimed at providing a basic understanding of the role that different systems components play within real computer systems, and how they go about achieving this.
Learning Outcomes Students should be able to describe and discuss the fundamentals of systems infrastructure outlined below and their interrelationships and interdependencies with other aspects drawn from the core MSc curriculum. They should be able to discriminate between different possible solutions to practical problems and, consequently, apply the knowledge gained in a practical way.


A historical perspective
A brief history of operating systems, compilers and databases; milestones in their development and changes driven by changes in both use and in the underlying hardware

Process creation and management
The virtual machine concept; data structures needed by operating systems
Process state transition
Scheduling algorithms and metrics for the analysis of performance

Memory management
Virtual memory
Single and multi-level paging algorithms

Concurrency control
Race conditions

Compilation vs. interpretation

Lexical analysis

Recursive descent
Table-driven techniques

Code generation
This will only be a brief overview to introduce the subject:
1. Database management systems (DBMS) and the relational database:essential concepts, data model, architecture and and primary functions of the DBMS.
2. SQL: use of SQL as a language for database construction and data manipulation.
3. Database design: a structured method for designing relational databases through data modelling, schema specification, validation and normalisation.

Method of Instruction

Compilers and Operating Systems are taught conventionally by lecture presentation and associated class problems. Databases is taught with online videos watched in advance and followed up with tutorial-style lectures. 


The course has the following assessment components:

  • Coursework Section (3 pieces, 15%)
  • Written Examination (2.5 hours, 85%)

To pass this course, students must:

  • Obtain an overall pass mark of 50% for all sections combined.


Reading list available via the UCL Library catalogue.