Nuova ricerca

Nicola BICOCCHI

Professore Associato
Dipartimento di Ingegneria "Enzo Ferrari"

Insegnamento: Programmazione di Sistema

Ingegneria informatica (MN) (Offerta formativa 2020)

Obiettivi formativi

Il corso è suddiviso in due unità principali. La prima approfondisce la struttura, il funzionamento e la programmazione di un Sistema Operativo Unix utilizzando la shell Bash. La seconda invece introduce il linguaggio C nel sue componenti fondamentali.

Prerequisiti

N/A

Programma del corso

Sistemi Unix
- Struttura di un sistema operativo multi processo (scheduler, memoria virtuale, filesystem)
- Utilizzo e gestione di un sistema Ubuntu Linux (gestore dei pacchetti, comandi principali shell)
- La shell Bash (variabili locali e d’ambiente, costrutti iterativi e condizionali, funzioni, invocazione e passaggio dei parametri)

Il linguaggio C
- Identificatori, variabili
- Il pre-processore C
- Costrutti condizionali e iterativi
- Tipi di dati
- Funzioni, passaggio di parametri, valori di ritorno
- Tipi di dati derivati (array multi-dimensionali, struct)
- Aritmetica dei puntatori
- Allocazione dinamica della memoria

Il contenuto dettagliato del corso è visibile a questo indirizzo:
https://github.com/nbicocchi/operatingsystemsbsc

Metodi didattici

Il corso è organizzato in moduli organizzati su base settimanale. Ogni modulo tratta un argomento specifico e prevede una parte di laboratorio.

Testi di riferimento

Jason Bacon, Lars Olson - Unix User's Guide
Facchinetti, Larizza, Rubini - Programmare in C

Verifica dell'apprendimento

L'insegnamento prevede una prova orale in cui saranno verificate sia le conoscenze in ambito Unix/Bash (4CFU) che quelle relative al linguaggio C (5CFU). E' richiesta la conoscenza di tutti i moduli presenti sulla pagina web del corso.

Le prove si svolgeranno sotto la supervisione video del docente e dei suoi collaboratori

Risultati attesi

Lo studente apprende come installare, configurare e gestire un moderno sistema Unix. Vengono approfonditi i temi dello scripting Bash e della programmazione di sistema utilizzando il linguaggio C.