Il corso di Programmazione 2 ha lo scopo di fornire gli strumenti per la risoluzione di semplici problemi connessi all'uso di alcune strutture dati elementari attraverso l'utilizzo della programmazione ad oggetti.
Lo studente che accede al corso di Porgrammazione II dovrà conoscere i fondamenti della programmazione ad oggetti e del paradigma di programmazione imperativa.
Il corso parte dall'introduzione del concetto di modello di dati astratto per poi introdurre ed approfondire diversi modelli dei dati quali: pile, code, liste e alberi. In connessione alle strutture dati saranno dati i concetti di base relativi alla complessità computazionale.
Verranno inoltre studiati i principali algoritmi di gestione delle strutture dati. In particolare i principali algoritmi di ordinamento, tra cui bubble sort, insertion sort, quicksort e mergesort
Il linguaggio C++ verrà usato come strumento principale per presentare le implementazioni delle strutture dati e degli algoritmi.
IL testo di riferimento è "Fondamenti di programmazione in C++", di Luis Joyanes Aguilar e pubblicato dalla casa editrice. McGraw-Hill. Il volume introduce ai principi della programmazione scegliendo come linguaggio didattico proprio il C++, nonostante non lo si possa certamente definire tale. Il motivo che ci spinge in questa direzione è il desiderio di ridurre i tempi di formazione del programmatore, facendolo applicare, fin dai primi algoritmi, su un linguaggio professionale realmente utilizzato in grandi suite software.
Durante il corso verrà fornito agli studenti il codice degli esempi e degli esercizi visti a lezione
Argomenti | Riferimenti testi | |
1 | Funzioni | |
2 | Array | |
3 | Puntatori e riferimenti | |
4 | Allocazione dinamica della memoria | |
5 | Stringhe | |
6 | Ordinamento e ricerca | |
7 | Ricorsione | |
8 | Classi e oggetti | |
9 | Classi derivate: ereditarietà e polimorfismo | |
10 | Template | |
11 | Sovraccaricamento degli operatori | |
12 | Liste | |
13 | Pile e code | |
14 | Alberi |
L'esame si svolegrà in due prove. La prima prova di laboratorio prevede lo sviluppo di un prigramma in C++ che prevede l'implementazione di alcune tre le strutture dati previste dal corso. La seconda prova consiste in un esame orale sui contenuti del corso.
Non sono previste prove in itinere
I testi delle prove di laboratorio in C++ saranno disponibili sul sito internet del docente.