You are here: Home » Study Plan » Subject




Course year 1
Teaching units Unit Programmazione di Sistema
Computer Engineering (lesson)
  • TAF: Compulsory subjects, characteristic of the class SSD: ING-INF/05 CFU: 9
Teachers: Nicola BICOCCHI
Exam type written
Evaluation final vote
Teaching language Italiano
Contents download pdf download




The course introduces the key concepts for managing and programming Unix systems using both the Bash shell and the C programming language. The course comprises two main units: the former about Unix operating systems and their programming environment using the BASH shell; while the latter introduces the C language.

Admission requirements

Basic knowledge of computer architectures and data representation is warmly suggested.

Course contents

Unix Systems
- OS Structure (scheduler, virtual memory, filesystem) (1 CFU)
- Ubuntu OS (packet manager, shell commands) (1 CFU)
- The Bash Shell (local and environment variables, conditional and iterative statements, functions, script invocation and parameters) (2 CFU)

The C Language
- Data types, variables, conditional and iterative constructs (1 CFU)
- Advanced data types (multi-dimensional arrays, struct) (1 CFU)
- Functions, passing parameters, return values (1 CFU)
- Pointer aritmetic, dynamic memory allocation (1 CFU)
- Input/output (1 CFU)

The detailed content can be seen at:

Teaching methods

The course is organised in weekly modules. Each module is about a specific topic and provides both classes and labs. The course is composed of both classes and labs in which slides are often used for teaching. Participation is not mandatory. The main language of the course is Italian.

Assessment methods

The course ends with an oral examination about both Unix/Bash scripting (15/30) and the C programming language (15/30). Both topics will be investigated using a single exercise at the computer. All modules reported on the course main page are required. Exam under video surveillance of the teaching staff

Learning outcomes

The course provides the tools for implementing object oriented applications. At the end of the course, students will be able to develop an modern application, both desktop or mobile, using either Java or Python.


Dispense e codice forniti dal docente. Per approfondire è suggerito l'utilizzo di un libro per ogni linguaggio.

Jason Bacon, Lars Olson - Unix User's Guide

Facchinetti, Larizza, Rubini - Programmare in C