|
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.