Prof. Roberto Battiti
a.a. 2000/2001
Descrizione:
Il corso ha lo scopo di creare una conoscenza operativa delle
tecniche di programmazione imperativa e strutturata, e di
programmazione orientata agli oggetti, usando il
linguaggio C++.
INTRODUZIONE E MOTIVAZIONI
I concetti di algoritmo, programma ed esecutore meccanico
(calcolatore). Esempi di algoritmi espressi in "italiano"
(ordinamento, ricerca, numeri primi, massimo comun
divisore), motivazioni e naturalezza della programmazione.
STRUTTURE DI DATI ELEMENTARI e PROGRAMMAZIONE ORIENTATA AGLI OGGETTI
Principali tipi di dato (numeri interi reali e complessi,
vettori, matrici, liste, pile e code). Tipo di dato astratto e
realizzazione tramite linguaggi orientati agli oggetti.
INTRODUZIONE AL PROGETTO E ALL' ANALISI DI ALGORITMI
Progetto tramite raffinamenti successivi a partire
da specifiche. Complessita' computazionale nel caso pessimo e nel caso
medio. Ordini di grandezza. Algoritmi di ordinamento.
IL LINGUAGGIO C
Puntatori ed array, stringhe, array multi-dimensionali.
Allocazione dinamica, tipi strutturati,
input ed output da file.
IL LINGUAGGIO C++
classi e metodi, ereditarieta',
riuso del software.
Realizzazione in C e C++ di alcuni algoritmi
e strutture dati fondamentali in Informatica.
realizzazione in C e C++ di applicazioni significative
in Matematica
Testi consigliati
A.A. Bertossi, Strutture, Algoritmi, Complessita', ECIG, Genova, 1990.
Un buon manuale di C/C++ (ne esistono molti, consigli dettagliati verranno
presentati a lezione)