Laboratorio di Programmazione 1 / Informatica 2

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