Ing Ind - Inf (1 liv.)(ord. 270) - CR (368) INGEGNERIA GESTIONALE
*
A
ZZZZ
082746 - FONDAMENTI DI INFORMATICA
Ing Ind - Inf (1 liv.)(ord. 270) - MI (358) INGEGNERIA INFORMATICA
I1C
A
ZZZZ
082746 - FONDAMENTI DI INFORMATICA
ICR
A
ZZZZ
082746 - FONDAMENTI DI INFORMATICA
Ing Ind - Inf (Mag.)(ord. 270) - CR (263) MUSIC AND ACOUSTIC ENGINEERING
*
A
ZZZZ
082746 - FONDAMENTI DI INFORMATICA
Ing Ind - Inf (Mag.)(ord. 270) - MI (481) COMPUTER SCIENCE AND ENGINEERING - INGEGNERIA INFORMATICA
*
A
ZZZZ
052183 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Obiettivi dell'insegnamento
Presentare allo studente gli aspetti fondamentali dell'informatica (algoritmi, programmi, struttura di massima dei calcolatori e dei sistemi informatici). Impartire nozioni basilari sulla programmazione dei calcolatori (linguaggi di programmazione, tecniche di astrazione, tipi di dati fondamentali e strutture di controllo, sottoprogrammi e ricorsione, strutture dati dinamiche, cenni sulla programmazione modulare) approfondendone in egual misura gli aspetti concettuali e sperimentali. L'insegnamento non adotta modalità di didattica innovativa.
Risultati di apprendimento attesi
Knowledge and understanding
- Comprendere i meccanismi di codifica dell’informazione all’interno di un calcolatore
- Conoscere gli elementi basilari dell’architettura di un calcolatore
- Comprendere gli elementi sintattici e la semantica di un linguaggio di programmazione
- Conoscere i principali costrutti usati nei linguaggi di programmazione imperativi per la rappresentazione e la manipolazione dati
Applying knowledge and understanding
- Progettare le strutture dati nella memoria del calcolatore allo scopo di rappresentare efficacemente i dati di uno specifico problema
- Progettare semplici algoritmi a partire dalla specifica di un problema
- Selezionare schemi di computazione noti e applicarli per la soluzione di nuovi problemi
- Implementare algoritmi in linguaggio C
Making judgements
- Valutare la correttezza degli algoritmi progettati
- Individuare le strutture da e gli algoritmi più adatti a specifici problemi
- Confrontare i benefici e gli svantaggi di diversi approcci algoritmici alla soluzione di un problema dato (e.g., approccio ricorsivo rispetto ad un approccio iterativo)
Lifelong learning skills
- Essere in grado di apprendere nuovi linguaggi e paradigmi di programmazione
- Essere in grado di ulizzare le conoscenze e competenze apprese per affrontare in maniera metodologica problemi complessi
Argomenti trattati
1. Concetti introduttivi: Algoritmi, programmi e linguaggi - Struttura di massima di un calcolatore e di un sistema informatico (hardware, software, Sistema Operativo) Catena di programmazione.
2. Logica e codifica binaria dell’informazione (logica proposizionale, operatori logici AND, OR, NOT, leggi di De Morgan), rappresentazione dei numeri interi (base 2, 8, 1 complemento alla base 2), aritmetica binaria, rappresentazione dei numeri reali (notazione in virgola fissa e in virgola mobile), codifica dei caratteri.
3. Aspetti fondamentali della programmazione (con riferimento al linguaggio C): il linguaggio di programmazione e le esigenze di astrazione, la sintassi dei linguaggi, 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, puntatore, astrazione sul controllo dell'esecuzione (strutture di controllo condizionali, di selezione, iterative).
4. Sottoprogrammi e ricorsione: sottoprogrammi come astrazione sul controllo a livello di unità, 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).
5. Strutture dati dinamiche, liste collegate a puntatori.
6. 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, sebbene non obbligatoria, assume una particolare importanza 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: componenti della macchina, interfaccia utente, Internet (uso del browser), posta elettronica, applicativi di videoscrittura e fogli elettronici.
Modalità di valutazione
L’esame prevede una verifica scritta su tutti gli argomenti dell'insegnamento. In particolare, l'esame prevede:
- la risoluzione di problemi numerici (codifica dell’informazione);
- domande di carattere teorico a risposta aperta;
Esercizi di tipo progettuale:
- progettazione di semplici strutture dati
- identificazione e valutazione di algoritmi alternativi per risolvere un problema dato
- implementazione di un algoritmo in linguaggio C
L'attività di laboratorio non contribuisce alla valutazione dell'esame.
Bibliografia
S.Ceri, D.Mandrioli, et al, Informatica: ProgrammazioneS.Ceri, D.Mandrioli, et al, Informatica: arte e mestiereA. Bellini, A. Guidi, Linguaggio C - Guida alla programmazione
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
48:00
90:00
Esercitazione
40:00
60:00
Laboratorio Informatico
12:00
0:00
Laboratorio Sperimentale
0:00
0:00
Laboratorio Di Progetto
0:00
0:00
Totale
100:00
150:00
Informazioni in lingua inglese a supporto dell'internazionalizzazione
Insegnamento erogato in lingua
Italiano
Possibilità di sostenere l'esame in lingua inglese
Disponibilità di supporto didattico in lingua inglese