F21SP - Systems Programming

Adam Sampson

Course leader(s):

Aims

Syllabus

1. C programming (1.1 - C: introduction, memory model, control flow, 1.2 - C: pointers, arrays, standard library, 1.3 - C: function pointers, data structures, 1.4 - C: error handling, undefined behaviour, 1.5 - C: security problems, static and dynamic analysis tools)

2. Assembler programming (2.1 - Assembler: introduction and architecture basics, 2.2 - Assembler: calling conventions, control flow, 2.3 - Assembler: reading and writing assembler code, security problems)

3. Low-level security (3.1 - Common security exploits and mitigations, 3.2 - CPU and hardware security features, 3.3 - Operating system memory access and concurrency, 3.4 - Operating system security features)

Learning outcomes

By the end of the course, students should be able to do the following:

Further details

Curriculum explorer: Click here

SCQF Level: 11

Credits: 15