Obiettivi del corso di Fondamenti di Informatica
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.
Programma delle lezioni e delle esercitazioni
1. Concetti introduttivi: Algoritmi, programmi e linguaggi - Struttura di massima di un calcolatore e di un sistema informatico (hardware, software, Sistema Operativo, reti) - 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, 16, complemento alla base 2: codifica e aritmetica), codifica dei numeri reali, codifica di caratteri e dati multimediali). Cenni di aritmetica binaria.
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,puntatori), 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.
7. I processi e le funzioni per la loro gestione: creazione dei processi, spazio di memoria e contesto di un processo (semplificato), esecuzione programmi e controllo variabili e sincronizzazione padre e figli.
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.
Per l'attività di laboratorio gli studenti saranno divisi in squadre, che svolgono lo stesso lavoro.
La valutazione dallo studente viene effettuata sul complesso del lavoro svolto e deriva dalla frequente interazione informale docente/discente. Ogni sessione di laboratorio costituisce pertanto un momento congiunto di didattica e di valutazione. La frequenza al laboratorio assume pertanto una particolare importanza.
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.
|