PROGRAMMAZIONE II M - Z

Anno accademico 2017/2018 - 1° anno
Docente: Simone FARO
Crediti: 9
SSD: INF/01 - Informatica
Organizzazione didattica: 225 ore d'impegno totale, 153 di studio individuale, 36 di lezione frontale, 36 di esercitazione
Semestre:

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

 ArgomentiRiferimenti testi
1Funzioni 
2Array 
3Puntatori e riferimenti 
4Allocazione dinamica della memoria 
5Stringhe 
6Ordinamento e ricerca 
7Ricorsione 
8Classi e oggetti 
9Classi derivate: ereditarietà e polimorfismo 
10Template 
11Sovraccaricamento degli operatori 
12Liste 
13Pile e code 
14Alberi 

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.