PROGRAMMAZIONE II M - Z
Anno accademico 2016/2017 - 1° annoCrediti: 9
Organizzazione didattica: 225 ore d'impegno totale, 189 di studio individuale, 36 di lezione frontale
Semestre: 2°
Obiettivi formativi
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.
Prerequisiti richiesti
Lo studente che accede al corso di Porgrammazione II dovrà conoscere i fondamenti della programmazione ad oggetti e del paradigma di programmazione imperativa.
Contenuti del corso
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.
Testi di riferimento
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.
Programmazione del corso
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 |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
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.
Esempi di domande e/o esercizi frequenti
I testi delle prove di laboratorio in C++ saranno disponibili sul sito internet del docente.