Programming III

Module aims

To introduce the fundamentals of systems programming in C.

Learning outcomes

 Students should be able to implement their own programs in C.  They should understand how to allocate and free memory, handle pointers.  In addition, they should be able to read in, represent and manipulate data in C through the use of standard library functions and language features such as arrays, structs, unions.

The group project should enable students to gain a glimpse into the compilers through implementing their own assembler, and reinforce their understanding of memory and processors through development of their own emulators.

Module syllabus



Pointers and dynamic memory


Structs and unions

Enumerated types

String utilities

File manipulation


Dynamic data structures

Function pointers


120.1, 120.2, Architecture

Teaching methods


Optional tutorial sheets.

Extended practical group project.

Timetabled laboratory sessions.


Group project:

  • Short checkpoint at one key point during the extended practical group project.
  • Written report on the achievements of the group project
  • Oral presentation on the project


  • Final lexis test taken in the laboratory undertaken in exam conditions using the Lexis test administration system.

Reading list

Module leaders

Dr Maria Valera-Espina