Salta ai contenuti. | Salta alla navigazione

Strumenti personali

PROGRAMMAZIONE E LABORATORIO

Anno accademico e docente
Non hai trovato la Scheda dell'insegnamento riferita a un anno accademico precedente? Ecco come fare >>
English course description
Anno accademico
2022/2023
Docente
MARCO ALBERTI
Crediti formativi
12
Periodo didattico
Primo Semestre
SSD
INF/01

Obiettivi formativi

Il corso ha l'obiettivo di introdurre le basi della programmazione dei calcolatori elettronici utilizzando il linguaggio di programmazione C.

Le principali conoscenze acquisite saranno:
- Concetti alla base della risoluzione di problemi per mezzo di calcolatore elettronico (hardware e software, macchina di Von Neumann e macchine astratte, input e output, algoritmo, programma, processo)
- Paradigma procedurale di programmazione (espressioni, variabili, istruzioni, esecuzione condizionale, iterazione, programmazione strutturata, astrazione procedurale)
- Tipi di dato primitivi, derivati e astratti
- Gestione della memoria
- Ricorsione
- Linguaggio di programmazione C

Al termine del corso, gli studenti avranno acquisito le seguenti capacità operative:
- Identificazione delle strutture dati e degli algoritmi adatti alla risoluzione di semplici problemi
- Implementazione in linguaggio C di algoritmi e strutture dati
- Strutturazione modulare di un programma
- Utilizzo dei principali strumenti per la programmazione

Prerequisiti

Nessuno

Contenuti del corso

Introduzione (6 ore):
- Informazioni sul corso
- Sistemi di calcolo
- Introduzione al C
- Algoritmi e programmi

Espressioni (6 ore):
- Tipo e valore
- Side effects
- Aritmetica intera
- Espressione variabile
- Assegnamento
- Aritmetica in virgola mobile
- Operatori relazionali e logici

Controllo del flusso (30 ore):
- Istruzioni
- Flusso predefinito
- Esecuzione Condizionale
- Salti
- Blocchi
- Cicli
- Funzioni
- Passaggio parametri
- Argomenti della linea di comando
- Ricorsione

Tipi di dato (15 ore):
- Variabili
- Tipi interi
- Tipi in virgola mobile
- Casting
- Vettori
- Stringhe
- Struct, Union
- Enum
- Vettori multidimensionali
- Puntatori

Input e output (9 ore):
- Input/Output a console
- File di testo
- File binari

Gestione della memoria (9 ore):
- Allocazione dinamica
- Liste collegate

Strumenti per la programmazione (15 ore):
- File system e interprete comandi
- Editor
- Compilatore
- Debugger
- Controllo di versione
- Preprocessore C
- Build

Programmazione modulare (3 ore):
- Programmi su più file
- Tipi di dato astratti

Aspetti professionali (3 ore):
- Procedimento di programmazione
- Sicurezza
- Etica professionale

Metodi didattici

Il corso prevede 96 ore fra lezioni frontali, corredate da esempi, ed esercitazioni al calcolatore su tutti gli argomenti del corso. Sono inoltre previste 21 ore di tutorato didattico, in cui gli studenti possono svolgere autonomamente esercizi con l'assistenza di un tutor.

Modalità di verifica dell'apprendimento

L'apprendimento è verificato attraverso due prove da sostenere nello stesso giorno:
- una prova scritta composta da domande e semplici esercizi, volta a verificare l'acquisizione delle conoscenze elencate nella sezione "Obiettivi formativi" (punti disponibili 11, soglia 6);
- una prova pratica, volta a verificare il possesso delle capacità operative di cui alla voce "Obiettivi", consistente nella scrittura al calcolatore di un programma in linguaggio C che implementi correttamente le funzionalità richieste (punti disponibili 22, soglia 12).

In caso di raggiungimento o superamento della soglia in entrambe le prove, l'esame è superato con voto
- 30 e lode se la somma dei punteggi è 32 o 33
- 30 se la somma dei punteggi è 30 o 31
- la somma dei punteggi negli altri casi.

In caso la somma dei punteggi sia maggiore o uguale a 18 ma una delle prove sia insufficiente, si può sostenere una prova orale/pratica che, se superata, consente il superamento dell'esame con voto uguale alla somma dei punteggi della prova pratica e della prova teorica.

La prova pratica può essere suddivisa in due prove parziali da sostenere, indicativamente, attorno al 20 novembre e attorno al 20 gennaio dell'anno seguente. Per ogni prova parziale sono disponibili 11 punti; la prova pratica è superata se si ottengono almeno 5 punti in ognuna delle prove parziali e almeno 12 in totale. Solo nel caso di superamento della prova pratica tramite prove parziali, è possibile sostenere la prova teorica in un qualsiasi appello fino a settembre dell'anno seguente; in caso di mancato superamento della prova teorica, è necessario ripetere l'intero esame.

Testi di riferimento

Diapositive usate a lezione

Manuali degli strumenti e delle librerie software utilizzati nelle esercitazioni

Testo adottato (soprattutto per chi non frequenta le lezioni):
- P.Deitel, H.Deitel - Il linguaggio C. Fondamenti e tecniche di programmazione (Ottava edizione) - Pearson

Per riferimento e approfondimenti:
- A.Bellini, A.Guidi - Linguaggio C (quinta edizione) - Mc Graw-Hill
- B.W.Kernighan, D.R.Ritchie - Il linguaggio C. Principi di programmazione e manuale di riferimento (seconda edizione) - Pearson
- A.Kelley, I.Pohl - C Didattica e Programmazione (seconda edizione) - Pearson