Corso di Laurea in Informatica - Corso di Laurea in Matematica
Fondamenti di Programmazione B
Docente: G. Rossi

Programma del corso
Anno accademico 2009-10


Fondamenti di programmazione
 

  • Paradigmi di programmazione (cenni).
  • Introduzione alla programmazione orientata agli oggetti.  Classi, oggetti ed "incapsulamento". "Information hiding". Ereditarieta' [3, par. 2.3.2].
  • Tipi di dato astratti (ADT).  Definizione e caratteristiche. ADT in C e C++ [3, p. 224, par. 10.1,12,2].
  • Tipi di dato - Utilita' dei tipi [4, par. 8.1] [5, par. 4.1, 4.3]. Equivalenza di tipi. Compatibilita' e conversione di tipo [4, par. 8.5, 8.6].
  • Gestione della memoria - Allocazione statica. Allocazione "automatica": record d'attivazione, pila di sistema. Tempo di vita di una variabile.
  • Ciclo di sviluppo dei programmi (cenni)  [3, par. 1.2, 2.1.1].
  • Modularizzazione - "Programming-in-the-large" vs. "Programming-in-the-small" [5, cap. 7 fino a p. 206]. La nozione di modulo. La modularizzazione nella fase di progettazione e di realizzazione [3, par. 9.1, 9.3, 9.4, 9.5]. Classi e modularizzazione in C++. Programmi divisi in piu' file [3, par. 4.11] e [1b, cap. 3.8].

  •  
    Il linguaggio C++
     
  • Dichiarazione di classe. Creazione di oggetti. Accesso ai campi di un oggetto.
  • Funzioni proprie ed invocazione di funzioni.
  • Inizializzazione di oggetti: costruttori.
  • Esempio: classe Razionale.
  • Overloading di funzioni ed operatori. Ridefinizione operatori >> e <<.
  • La classe string.
  • Puntatori ed allocazione dinamica della memoria. Esempio: classe int_vett (cfr. [1b, cap. 11.8]). Ridefinizione operator[].
  • Ridefinizione assegnamento e costruttore di copia. Distruttori.
  • Parametri "const reference" e "reference return".
  • Gestione delle eccezioni. Motivazioni, meccanismi.
  • Classi parametriche (template): dichiarazione, istanziazione. Esempio: classe pila<t>. Funzioni parametriche.
  • Ereditarietà: dichiarazione, ridefinizione funzioni e dati. Campi protected. Ereditarieta' multipla (cenni).
  • Sviluppo di semplici programmi in C++. Librerie standard del C++ (cenni).
  • Progettazione ed implementazione di un'applicazione in C++.

  •  
     

    Materiale didattico

    Testo consigliato (vedi sotto)  +  materiale vario per parti non coperte dai precedenti (vedi riferimenti nel programma del corso).

    Testi consigliati:

    Altri riferimenti: