PROGRAMMAZIONE II M - Z
Anno accademico 2017/2018 - 1° annoCrediti: 9
Organizzazione didattica: 225 ore d'impegno totale, 153 di studio individuale, 36 di lezione frontale, 36 di esercitazione
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.
Conoscenza e capacità di comprensione (knowledge and understanding): saranno acquisite le conoscenze relative alle al funzionamento e all'implementazione delle principali stutture dati analizzate a lezione
Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): saranno acquisite le capacità di implementazione e di progettazione di soluzioni algoritmiche.
Autonomia di giudizio (making judgements): Lo studente sarà in grado di giudicare l'efficacia della propria implementazione e del proprio lavoro progettuale.
Capacità di apprendimento (learning skills): lo studente sarà in grado di adattare le soluzioni analizzate durante le lezioni anche ad altri contesti.
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.
Frequenza lezioni
La frequenza delle lezioni e fortemente consigliata.
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.