FONDAMENTI DI PROGRAMMAZIONE

Crediti: 
9
Settore scientifico disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Anno accademico di offerta: 
2016/2017
Semestre dell'insegnamento: 
Secondo Semestre
Lingua di insegnamento: 

italiano

Obiettivi formativi

Gli obiettivi sono di fornire allo studente competenze nell’ambito dell’analisi e dello sviluppo di algoritmi che riguardano:
- Principali strutture dati statiche e dinamiche
- Algoritmi di ordinamento e di ricerca
- Programmazione generica
Capacità di applicare conoscenza e comprensione:
- Progettare e realizzare algoritmi in linguaggio C++
- Utilizzare strutture dati di base per la risoluzione di problemi
- Analizzare e descrivere la complessità di un algoritmo

Prerequisiti

E’ richiesta una conoscenza di base del linguaggio C++.

Contenuti dell'insegnamento

Il corso fornisce una introduzione alle strutture dati fondamentali dell’informatica, in linguaggio C++, e alle tecniche per la progettazione di algoritmi

Programma esteso

Parte A:
Introduzione alla programmazione in C++.
Array e puntatori.
Liste.
Pile.
Code.
Ricorsione.
Algoritmi di ordinamento.
Parte B:
Dizionari e alberi binari.
Code di priorità e heap.
Alberi binari di ricerca.
Grafi.
Introduzione alla Standard Template Library (STL) in C++

Bibliografia

Robert Sedgewick, Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching, Third Edition.

Clifford A. Shaffer, Data Structures and Algorithm Analysis Edition 3.2 (C++ Version)

Metodi didattici

Lezioni in aula (34 ore).
Esercitazioni in aula (18 ore).
Esercitazioni di laboratorio (20 ore).

Modalità verifica apprendimento

Una prova di laboratorio (3 ore) per ogni appello ufficiale su tutti gli argomenti del corso

Oppure

2 prove parziali per studenti immatricolati nel primo anno:
- Prova parziale 1 (2 ore) sulla parte A del corso
- Prova parziale 2 (2 ore) sulla parte B del corso (solo nel primo appello di Giugno per chi supera la prova parziale 1)

Per chi supera l’esame con le prove parziali il voto finale è la media tra i voti delle due prove.

Ciascuna prova di laboratorio contiene un esercizio da svolgere al calcolatore e alcuni quiz.