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