FONDAMENTI DI PROGRAMMAZIONE

Docenti: 
ALEOTTI Jacopo
Codice dell'insegnamento: 
10029*4987*2015*2015*9999
Crediti: 
9
Sede: 
PARMA
Anno accademico di offerta: 
2016/2017
Settore scientifico disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Semestre dell'insegnamento: 
Secondo Semestre
Lingua di insegnamento: 

italiano

Lingua dell'insegnamento: 

italiano

Obiettivi formativi

Fornire allo studente i principi base e gli strumenti per la programmazione avanzata in linguaggio C.

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

o E`consigliato avere appreso i contenuti del corso di Fondamenti di Informatica

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

Contenuti dell'insegnamento

Programmazione avanzata in C, strutture dati e algoritmi

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

Programma esteso

• Architettura base dei calcolatori elettronici e breve evoluzione
* rappresentazione dei dati in memoria
* linguaggio C, principali differenze con il C++ e panoramica del linguaggio
* Complessità e diagrammi di flusso
* Algoritmi di Ordinamento
* liste
* alberi
* grafi
* algoritmi complessi

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

* internet
• C Didattica e programmazione - quarta edizione, Pearson Ed.
• Algorithms, by Robert Sedgewick, Addison-Wesley
• Copia dei lucidi delle lezioni disponibili sul sito del corso

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 ed esercitazioni

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

Modalità verifica apprendimento

L'esame basato sul superamento di una prova pratica in C svolta in laboratorio

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.

Altre informazioni