Systems Programming
People
Description
COURSE OBJECTIVES
A "system" integrates components and functionality at different levels. Examples are information systems consisting of databases and processing modules; a distributed storage system consisting of networked redundant storage devices; an operating system that manages heterogeneous computing resources; a robotic system made of physical devices, embedded sensors and controllers, as well as complex processing modules. The most common systems programming language is C. This course is a practice-oriented introduction to programming in C and, to a limited extent, C++. The goal is not only to learn how to write correct C programs, but also to understand their execution model in depth.
COURSE DESCRIPTION
The course focuses on the features of the C language and libraries that are particularly useful in programming systems. This includes the memory model, input/output, modularization, its relevant language features, and its relation to the build process.
LEARNING METHODS
This is a practice-driven course. All topics are introduced and explained through concrete working examples.
EXAMINATION INFORMATION
The evaluation is based on concrete programming problems, with a combination of homework assignments and exams also consisting of programming exercises.
REFERENCES
There are no specific required textbook, although students are encouraged to read The C Programming Language (Second Edition) by Brian W. Kernighan and Dennis M. Ritchie.
Education
- Bachelor of Science in Informatics, Foundation course, 2nd year