a.a. 2000/01
Prof. Fausto Giunchiglia
Obiettivo del corso è di insegnare a programmare utilizzando un linguaggio di tipo imperativo ed, in particolare, il subset del C++ che corrisponde al C. Si cerca di raggiungere questo obiettivo tramite due sotto-obiettivi. Il primo è quello di dare una conoscenza dettagliata ed avanzata dei comandi e costrutti di controllo del linguaggio studiato, anche ed in particolare in tutti quegli aspetti che lo distinguono da altri linguaggi imperativi (ad esempio Pascal). Il secondo è quello di insegnare agli studenti a sviluppare programmi di medio-grossa dimensione utilizzando la metodologia della programmazione strutturata (“step-wise refinement”). Il corso presuppone che lo studente abbia una buona conoscenza della programmazione imperativa del C/C++ (parte imperativa) o che stia seguendo il corso di Programmazione 1/ Informatica 1 che si svolge in parallelo e che copre questi contenuti.
Il corso è di tipo sperimentale con molte ore di laboratorio e di utilizzo pratico delle macchine. Agli studenti verrà inoltre assegnato un progetto che dovrà essere sviluppato in modo autonomo ed al di fuori delle ore di lezione. L’esame mirerà a valutare la capacità concreta che gli studenti hanno di sviluppare programmi di medie dimensioni.
Gli studenti dovranno acquisire dimestichezza a lavorare con il sistema
operativo UNIX.
Programma
1. Introduzione: Breve introduzione ai componenti principali del calcolatore
(architettura di Von Neuman) e alle istruzioni di base. Fondamenti del
linguaggio C++.
2. Utilizzo avanzato dei dati e tipi di dati : Variabili e costanti.
I tipi: intero, carattere, reale, puntatore, array, stringa.
3. Utilizzo avanzato dei costrutti di controllo: costrutto condizionale,
iterazione , break, continue, goto.
4. Utilizzo avanzato delle funzioni: argomenti di funzione, ricorsione, visibilità, durata e scope delle variabili.
5. Gestione dinamica della memoria
6. Files
7. Programmazione strutturata: metodologia, principi, sviluppo di un esempio complesso.
Modalità d’esame
L’accertamento prevede la discussione del progetto elaborato nonché
di una prova orale sui contenuti del corso..
Propedeuticità
Contenuti del corso di Programmazione 1: programmazione imperativa,
elementi del linguaggio C/C++ (parte imperativa).
Testi Consigliati
· F. Crivellari. Elementi di programmazione in C++. Collana di
informatica Franco Angeli.
· Sono disponibili le copie del materiale proiettato a lezione,
nonche’ eserciziari con soluzioni