Technology
Subject: PROGRAMMAZIONE DI SISTEMA (A.A. 2022/2023)
degree course in COMPUTER ENGINEERING
Course year | 1 |
---|---|
CFU | 9 |
Teaching units |
Unit Programmazione di Sistema
Computer Engineering (lesson)
|
Exam type | written |
Evaluation | final vote |
Teaching language | Italiano |

Teachers
Overview
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:
https://github.com/nbicocchi/operatingsystemsbsc
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.
Readings
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