Search for contacts, projects,
courses and publications

Systems Programming


A "system" integrates functionalities and devices 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, and a robotic system made of physical devices, embedded sensors and controllers, as well as complex processing modules. The most common system programming language is C. This course is a practice-oriented introduction to programming in C. The focus is on features of the language and libraries that are particularly useful in programming systems. This includes the memory model, input/output, the network programming interface and other system calls, the organization of a large system programs, including the relevant language features and the build process, symbols and their relations to compilation units and the linker, and an introduction to symbolic debugging.




  • Textbook (optional): "The C Programming Language", Second Edition. By Brian W. Kernighan and Dennis M. Ritchie. Prentice Hall, Inc., 1988.
  • Frequently Asked Questions on C programming. (
  • C reference documentation from (
  • C++ reference documentation from (



Carzaniga A.

Course director

Fynn E.

Course director

Additional information

Academic year
Bachelor of Science in Informatics, Core course, Lecture, 2nd year