Gli obiettivi dell’insegnamento sono quelli di fornire agli allievi Ingegneri i principi logici del funzionamento e della organizzazione dei sistemi di elaborazione e l’acquisizione delle metodologie per sfruttarne le potenzialità, con particolare riferimento allo studio e alle tecniche per la programmazione degli elaboratori. L’insegnamento prevede la descrizione della struttura funzionale dei principali moduli hardware e software che compongono un sistema di elaborazione. Inoltre si presentano le tecniche e gli strumenti fondamentali per l'utilizzo del calcolatore e per la sua programmazione, che costituiscono un aspetto formativo essenziale e che stanno alla base della necessaria attività sperimentale.
Una volta superato l’esame, lo studente avrà acquisito la padronanza di un insieme di strumenti culturali per facilitare lo studio di altri argomenti del proprio curriculum scolastico e, d’altra parte, abbia appreso quali argomenti dovrà autonomamente approfondire per acquisire competenze non previste dal proprio piano degli studi. In particolare, si ritiene che lo studente avrà acquisito le necessarie competenze per lo sviluppo di soluzioni algoritmiche per problemi di limitata complessità e per la codifica e la messa a punto di programmi in linguaggio C, come base per lo studio di problemi più complessi e avanzati.
Prerequisiti
Quelli richiesti per l’immatricolazione.
Metodi didattici
Lezioni (ore/anno in aula): 45 Esercitazioni (ore/anno o online): 24 Attività pratiche (ore/anno in aula): 0
Verifica Apprendimento
L'esame consiste in una prova pratica di programmazione e in una prova di teoria della programmazione.
La prova pratica viene svolta presso le aule didattiche di informatica C2-C3. La prova prevede la soluzione di un problema attraverso la realizzazione di un programma in linguaggio C. La durata della prova pratica è di 3 ore. Durante la prova è possibile utilizzare gli appunti e il libro di testo, ma non l’eserciziario e altri documenti contenenti esercizi risolti.
La prova di teoria della programmazione viene svolta consiste in domande ed esercizi sui comandi UNIX, i flowchart, e il linguaggio C.
Il voto complessivo della parte di corso relativa alla progammazione è la media tra il voto della parte pratica e di quella della teoria della programmazione (pesi 2/3 e 1/3 rispettivamente).
Il voto complessivo dell’esame di Fondamenti di Informatica è pertanto composto da 3 parti: 1) la prova pratica di programmazione 2) la prova di teoria della programmazione (Facchinetti) e 3) la prova teorica di Danese. Le tre prove si possono sostenere in qualsiasi momento, indipendentemente l’una dall’altra. Il risultato di una prova già superata rimane valido per 1 anno. Se una prova già superata viene sostenuta nuovamente, ad es. per migliorare il risultato precedente, tale risultato precedente viene annullato, anche se il voto più recente è insufficiente.
Testi
Facchinetti, Larizza, Rubini, Programmare in C - Concetti base e tecniche avanzate, Apogeo Editore, 2015.
Contenuti
Vengono illustrati i principi della programmazione dei calcolatori elettronici. Si affrontano in particolare gli aspetti di formalizzazione dei problemi, il progetto e la codifica degli algoritmi attraverso le metodologie e le tecniche della programmazione strutturata e i criteri per l'analisi, testing e convalida dei programmi. L'obiettivo è quello di fornire agli allievi una capacità operativa nello sviluppo dei software ed una sensibilità ai problemi di buona documentazione e affidabilità delle applicazioni.
Il ciclo di lezioni relativo alla programmazione prevede la presentazione dei principi della programmazione e la descrizione dettagliata della sintassi del linguaggio C. L'attività teorica è integrata da esercitazioni nel laboratorio di Informatica di Base durante le quali vengono presentate soluzioni a problemi di calcolo numerico e su strutture dati. In particolare vengono implementati algoritmi di ordinamento, di ricerca nelle tavole, di gestione di strutture dati.