PROGRAMMAZIONE II M - Z

INF/01 - 9 CFU - 2° semestre

Docente titolare dell'insegnamento

SIMONE FARO


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.


Altro materiale didattico

Durante il corso verrà fornito agli studenti il codice degli esempi e degli esercizi visti a lezione



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.


PROVE IN ITINERE

Non sono previste prove in itinere


PROVE DI FINE CORSO

L'esame di fine corso prevede una prova scritta ed ena prova orale. La prima prova scritta è propedeutica alla secinda prova e richiederà la risoluzione di un problema algoritmico attraverso l'uso del linguaggio di programmazione C++. La seconda prova orale avrà lo scopo di valutare la preparazione degli studenti sugli aspetti teorici e pratici degli argomenti affrontati a lezione.


ESEMPI DI DOMANDE E/O ESERCIZI FREQUENTI

I testi delle prove di laboratorio in C++ saranno disponibili sul sito internet del docente.




Apri in formato Pdf English version