FONDAMENTI DI INFORMATICA
Stampa
Anno immatricolazione
2021/2022
Anno offerta
2021/2022
Normativa
DM270
Dipartimento
DIPARTIMENTO DI INGEGNERIA INDUSTRIALE E DELL'INFORMAZIONE
Corso di studio
INGEGNERIA ELETTRONICA E INFORMATICA
Curriculum
PERCORSO COMUNE
Anno di corso
Periodo didattico
Annualità Singola (27/09/2021 - 17/06/2022)
Crediti
12
Lingua insegnamento
Italiano
Prerequisiti
Quelli richiesti per l’immatricolazione.
Obiettivi formativi
Il corso si compne di due moduli. Il primo tenuto dal Prof. Danese, rivolto ai concetti di base dell'informatica; il secondo, tenuto dal prof. Facchinetti, rivolto ai prinicpi della programmazione. Gli obiettivi primari 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.
Si ritiene che, una volta superato l’esame, lo studente abbia acquisito 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.
Programma e contenuti
Concetti introduttivi
Vengono definiti concetti, termini tecnici e campi applicativi degli elaboratori elettronici.
La codifica delle informazioni
Vengono illustrate diverse tecniche di rappresentazione di informazioni numeriche, testuali, grafiche all’interno degli elaboratori. Vengono presentati codici binari ridondanti e non, rivelatori e correttori di errori. Viene introdotta l’algebra di Boole.
Architetture degli Elaboratori
Viene descritta la struttura funzionale dei calcolatori e dei moduli che li compongono. Viene descritta la logica di funzionamento dei processori, il formato delle istruzioni e il ciclo di esecuzione, l’organizzazione dei dispositivi di memoria e le relative tecniche di accesso, i principi di funzionamento e le caratteristiche dei dispositivi periferici. Viene descritta l’architettura di un sistema informatico complesso con riferimento alle problematiche della gestione della memoria e delle risorse e al parallelismo di funzionamento. La descrizione mira a fornire una visione complessiva dell’architettura, nei suoi aspetti sia hardware che software. Pertanto questo filone include anche una descrizione della funzionalità dei software di base.
Sistemi operativi
Vengono presentati le funzioni principali del sistema operativo e quelle del kernel e del software di base. Viene proposta una classificazione dei vari tipi di sistemi operativi esistenti completata dalle relative caratteristiche principali.
Supporti per lo sviluppo di programmi
Vengono presentate le funzioni e le caratteristiche dei supporti per lo sviluppo dei programmi. In particolare vengono illustrati i comandi principali per la gestione dei file in ambiente Unix, e viene descritto il funzionamento di compilatori ed interpreti come strumenti per la realizzazione di programmi.
Strutture dati
Vengono illustrate le principali strutture dati sia dal punto di vista della loro definizione astratta che da quello della loro effettiva implementazione sui sistemi di calcolo.
Principi di programmazione
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 linguaggio C
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, ecc.
Metodi didattici
Lezioni (ore/anno in aula): 75
Esercitazioni (ore/anno in aula): 25
Attività pratiche (ore/anno in aula): 0
Testi di riferimento
Per il modulo del prof. Danese.
Informazioni di utilità relative all’insegnamento sono reperibili al sito http://mclab.unipv.it/index.php/corsi?id=28
J. Glenn Brookshear, Dennis Brylow: “Informatica. Una panoramica generale”, Pearson, 12^ EDIZIONE, 9/2016, Milano.

Per il modulo del Prof. Facchinetti.
Tullio Facchinetti, Cristiana Larizza, Alessandro Rubini. Dalla A alla Z passando per C. Maggioli Editore, 2013.
Brian W. Kernighan, Dennis M. Ritchie. Linguaggio C. Seconda Edizione - Jackson Libri, 1989. (Testo ideale come manuale di riferimento per programmatori che già conoscano il linguaggio).
Modalità verifica apprendimento
Prove d'esame

Le prove d’esame prevedono una prova scritta relativa alla parte di corso tenuta dal Prof. Danese (d'ora in avanti denominata "prova teorica"), e una prova relativa alla parte di programmazione tenuta dal Prof. Facchinetti (denominata "prova di programmazione").
Nella prova teorica vengono proposti 6 quesiti su argomenti trattati nel corso delle lezioni del Prof. Danese, che devono essere approfonditi dal candidato.
La prova di programmazione si compone di una prova pratica da svolgere sui calcolatori delle aule didattiche di Informatica e da una prova di teoria della programmazione per la verifica dei concetti teorici presentati durante il corso tenuto dal Prof. Facchinetti.
La prova di teoria della programmazione consta di 2-3 domande, mentre la prova pratica prevede l’implementazione di un algoritmo per il problema proposto, la codifica del relativo programma in linguaggio C, la compilazione e la messa a punto nelle aule didattiche di Informatica.
Il risultato complessivo della prova di programmazione e' la media pesata della prova di teoria della programmazione e della prova pratica (rispettivamente, con peso 1/3 e 2/3).
E' possibile svolgere la prova pratica e la prova di teoria della programmazione in diversi appelli d'esame.

Il conseguimento di una valutazione sufficiente nelle prove teorica e di programmazione consentirà il superamento dell’esame. La valutazione globale dell’esame è la media delle valutazioni conseguite nella prova teorica e in quella relativa alla programmazione.
E' possibile svolgere le due prove, teorica e di programmazione, in diversi appelli d'esame.

È prevista una prova orale facoltativa con due finalità differenti:

• nel caso in cui la valutazione globale risultante sia sufficiente, la prova orale può permettere di modificare tale valutazione;
• nel caso in cui la prova scritta di teoria sia stata valutata insufficiente, ma superiore a 16/30, la prova orale può permettere di raggiungere, per tale prova, una valutazione finale sufficiente.

In caso di esito non sufficiente o non soddisfacente di una delle tre prove previste (prova teorica, prova pratica e prova di teoria della programmazione), il candidato può ripetere solo tale prova, mantenendo la validita' delle altre. Una volta superata, la validità di una prova si conclude dopo un anno di calendario dal superamento della prova stessa. Nel momento in cui lo studente ripete una prova, il risultato conseguito in precedenza, anche se sufficiente, viene scartato.


L'insegnamento è suddiviso