Search for contacts, projects,
courses and publications

Systems Programming

People

Carzaniga A.

Course director

Felici R.

Assistant

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