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

Arrays

I/O

Pointers and dynamic memory

Bit-operations

Structs and unions

Enumerated types

String utilities

File manipulation

Makefile

Dynamic data structures

Function pointers

Pre-requisites

120.1, 120.2, Architecture

Teaching methods

Lectures.

Optional tutorial sheets.

Extended practical group project.

Timetabled laboratory sessions.

Assessments

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

Individually:

  • 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