Ing Ind - Inf (1 liv.)(ord. 270) - MI (349) INGEGNERIA ELETTRICA
*
IMA
MEZ
082746 - FONDAMENTI DI INFORMATICA
Ing Ind - Inf (1 liv.)(ord. 270) - MI (355) INGEGNERIA DELL'AUTOMAZIONE
*
IMA
MEZ
082746 - FONDAMENTI DI INFORMATICA
Ing Ind - Inf (1 liv.)(ord. 270) - MI (357) INGEGNERIA ELETTRONICA
*
IMA
MEZ
082746 - FONDAMENTI DI INFORMATICA
Ing Ind - Inf (1 liv.)(ord. 270) - MI (358) INGEGNERIA INFORMATICA
I1A
IMA
MEZ
082746 - FONDAMENTI DI INFORMATICA
I1T
IMA
MEZ
082746 - FONDAMENTI DI INFORMATICA
IT1
IMA
MEZ
082746 - FONDAMENTI DI INFORMATICA
Obiettivi dell'insegnamento
Corso di introduzione agli aspetti fondamentali dell’informatica, ossia alla risoluzione dei problemi e alla programmazione in linguaggio C, con riferimento all’architettura di massima dei sistemi di calcolo. L’obiettivo del corso è fare in modo che lo studente/la studentessa sia in grado di risolvere problemi mediante lo sviluppo di programmi, avendo acquisito le conoscenze di base (tecniche di astrazione, tipi di dati fondamentali e strutture di controllo, sottoprogrammi, strutture dati dinamiche, cenni di programmazione modulare e cenni di ricorsione). L’attenzione è posta in egual misura agli aspetti concettuali e a quelli sperimentali. L'insegnamento non adotta modalità di didattica innovativa.
Risultati di apprendimento attesi
DdD1. Conoscenza e comprensione
Comprensione dei meccanismi di codifica dell’informazione all’interno di un calcolatore
Conoscenza degli elementi basilari dell’architettura di un calcolatore
Comprensione degli elementi di sintassi e semantica del linguaggio di programmazione C
Conoscenza dei principali costrutti usati nei linguaggi di programmazione imperativi per la rappresentazione e manipolazione dei dati
DdD2. Capacità di applicare conoscenze e comprensione
Progettazione di strutture dati nella memoria del calcolatore allo scopo di rappresentare efficacemente i dati di uno specifico problema
Progettazione di semplici algoritmi a partire dalla specifica di un problema
Realizzazione dell’algoritmo mediante un programma in linguaggio C
Selezione di schemi di computazione noti e loro applicazione per la soluzione di nuovi problemi
DdD3. Autonomia di giudizio
Valutazione della correttezza degli algoritmi progettati
Individuazione di strutture dati e algoritmi più adatti a specifici problemi
Confronto benefici e svantaggi di diversi approcci algoritmici alla soluzione di un problema dato
DdD5. Capacità di apprendimento
Essere in grado di apprendere nuovi linguaggi e paradigmi di programmazione
Essere in grado di utilizzare le conoscenze e competenze apprese per affrontare in maniera metodologica problemi complessi
Argomenti trattati
Concetti introduttivi: Algoritmi, programmi e linguaggi - Struttura di massima di un calcolatore e di un sistema informatico (hardware, software, Sistema Operativo) - Catena di programmazione.
Logica e codifica binaria dell’informazione (logica proposizionale, operatori logici AND, OR, NOT, leggi di De Morgan), rappresentazione dei numeri interi (base 2, 16, notazione in complemento alla base 2), aritmetica binaria, rappresentazione dei numeri reali (notazione in virgola fissa e in virgola mobile), codifica dei caratteri.
Aspetti fondamentali della programmazione (con riferimento al linguaggio C): il linguaggio di programmazione e le esigenze di astrazione, la sintassi, struttura di un programma monomodulo, astrazione sui dati (concetto di tipo e tipi base del linguaggio, operatori e compatibilità, i costruttori di tipo array, struct,puntatori), astrazione sul controllo dell'esecuzione (strutture di controllo condizionali, di selezione, iterative).
Sottoprogrammi: sottoprogrammi come astrazione per la realizzazione modulare dei programmi, passaggio dei parametri, dati locali, regole di visibilità, sviluppo top down per raffinamento, ricorsione, supporto a run-time per la gestione della chiamata e ritorno da sottoprogramma (record di attivazione, stack e stack pointer).
Strutture dati dinamiche, liste collegate a puntatori.
Strutture dati persistenti: i file (concetti, operazioni, organizzazione logica), integrazione tra strutture dati in memoria centrale e su file.
Attività di laboratorio
L’attività del laboratorio ha lo scopo di rendere familiare allo studente sia l’utilizzo pratico del calcolatore sia i metodi e le tecniche utilizzate nella programmazione dei calcolatori.
La frequenza al laboratorio è facoltativa e costituisce un’attività particolarmente importante ai fini dell’apprendimento della materia.
L'insegnamento non adotta modalità di didattica innovativa.
Prerequisiti
Nozioni di base sulle caratteristiche e l'uso del personal computer: interfaccia utente, Internet (uso del browser), posta elettronica.
Modalità di valutazione
L’esame prevede una verifica scritta di circa due ore su tutti gli argomenti dell'insegnamento. In particolare, l'esame prevede:
la risoluzione di problemi numerici sulla codifica dell’informazione (Descrittore Dublino DdD1);
domande di carattere teorico a risposta aperta (Descrittori Dublino DdD1, DdD2,DdD3,DdD5);
progettazione di semplici strutture dati e algoritmi (Descrittore Dublino DdD2);
identificazione e valutazione di algoritmi alternativi per risolvere un problema dato (Descrittore Dublino DdD3);
implementazione di programmi in linguaggio C (Descrittori Dublino DdD1, DdD2, DdD3, DdD5).
L'attività di laboratorio non contribuisce alla valutazione dell'esame.
Bibliografia
Kim N. King, Programmazione in C, Editore: Apogeo
P. Deitel, H Deitel, IL linguaggio C, Editore: Pearson
Jeri R. Hanly, Elliot B. Koffmann, Problem solving e programmazione in C, Editore: Apogeo
Ira Pohl, Al Kelley, C: didattica e programmazione, Editore: Pearson
Software utilizzato
Nessun software richiesto
Forme didattiche
Tipo Forma Didattica
Ore di attività svolte in aula
(hh:mm)
Ore di studio autonome
(hh:mm)
Lezione
52:00
78:00
Esercitazione
40:00
60:00
Laboratorio Informatico
16:00
4:00
Laboratorio Sperimentale
0:00
0:00
Laboratorio Di Progetto
0:00
0:00
Totale
108:00
142:00
Informazioni in lingua inglese a supporto dell'internazionalizzazione
Insegnamento erogato in lingua
Italiano
Disponibilità di libri di testo/bibliografia in lingua inglese
Disponibilità di supporto didattico in lingua inglese