07EIPCH Algoritmi e Programmazione Avanzata

Download Report

Transcript 07EIPCH Algoritmi e Programmazione Avanzata

07EIPCH
Algoritmi e Programmazione Avanzata
Ing. Elettronica - Vercelli
Introduzione al corso
AA 2008/09
Ing. Paolo Bernardi
Obiettivi del corso
z
Il corso ha lo scopo di sviluppare la capacità
di
–
–
z
costruire algoritmi efficienti in grado di risolvere
determinati problemi
sviluppare programmi complessi in linguaggio C
Le metodologie di progettazione presentate
vengono applicate ad alcuni problemi
classici.
–
Soluzioni diverse vengono confrontate attraverso
l'analisi della loro complessità computazionale.
Ing. Paolo Bernardi
Obiettivi del corso (cont.)
z
Algoritmi...
–
–
–
–
z
Strutture dati complesse
Tipi di dati astratti
Algoritmi fondamentali
Analisi della complessità
...programmazione avanzata
–
–
–
Puntatori e Strutture dati dinamiche
Modularità
Ricorsione
Ing. Paolo Bernardi
Docente
z
Ing. Paolo Bernardi
–
–
–
–
Dip. Automatica e Informatica – III facoltà
Ricercatore
[email protected]
Tel. 011 564 7183
Ing. Paolo Bernardi
Prerequisiti
z
Buona capacità di programmazione in C
–
–
–
–
z
Vettori, matrici, stringhe
Strutture (struct)
I/O con FILE di testo
Funzioni, passaggio parametri
Tecniche algoritmiche di base
–
–
Cicli semplici, annidati, contatori, flag
Ordinamento vettori.
Ing. Paolo Bernardi
Argomenti trattati
z
z
z
z
z
Programmazione multifile
Analisi della complessità degli algoritmi
Programmazione recursiva
Algoritmi di ordinamento
Strutture dati avanzate:
–
–
–
–
–
z
z
z
Pile, code, liste
Alberi
Alberi di ricerca e BST
Tabelle di hash
Grafi
Algoritmi di ricerca su strutture dati avanzate
Alberi di copertura e cammini minimi
Problema del TSP.
Ing. Paolo Bernardi
Testi consigliati
z
z
R. Sedgewick: Algoritmi in C, AddisonWesley, terza edizione, 2002
Brian W. Kernighan, Dennis M. Ritchie,
Linguaggio C, Addison Wesley / Pearson
Education Italia, 2005.
Ing. Paolo Bernardi
Altri testi
z
T.H. Cormen, C.E. Leiserson, R.L. Rivest,
Introduzione agli Algoritmi, Jackson Libri,
1999.
Ing. Paolo Bernardi
Materiale
z
z
Slides su argomenti teorici messe a
disposizione dal docente
Esercizi
–
–
z
Risolti e commentati dal docente
Da risolvere in laboratorio
Temi di esame.
Ing. Paolo Bernardi
Materiale (cont.)
z
Tutto il materiale a disposizione sul
–
–
Portale della didattica
WIKI del corso
http://www.cad.polito.it/~bernardi/07EIPCH/
Ing. Paolo Bernardi
Orario
z
Lezione teorica: lunedì h.14-16 – aula 2B
Lezione pratica: mercoledì h.9-11 – Lab ECE
Esercitazione: mercoledì h.11-13 – Lab ECE
z
Consulenza:
z
z
–
–
Vercelli: lunedì 13-14 (da capire dove…)
Torino: su appuntamente (inviare email).
Ing. Paolo Bernardi
Esercitazioni di laboratorio
z
z
Risoluzione di problemi di medio-alta
difficoltà
Uso del compilatore C/C++ Code::Blocks
–
–
z
Compilatore open-source scaricabile gratis da
internet
www.codeblocks.org
Utile una chiave USB.
Ing. Paolo Bernardi
Esercitazioni di lab. & WIKI
z
A discrezione di ciascun singolo studente
–
–
z
Pubblicazione della propria soluzione sul WIKI
Inserimento di commenti costruttivi alle altrui
soluzioni
La partecipazione al WIKI fa parte della
valutazione finale
–
–
Pubblicazione delle soluzioni entro le h.12 del
lunedì successivo all’assegnazione dell’esercizio
Commenti ad altrui soluzioni entro le h.9 del
mercoledì successivo.
Ing. Paolo Bernardi
Esame
1.
Prova pratica al calcolatore
–
–
–
2.
Prova teorica orale
–
–
3.
Durata 3h
Successiva discussione della soluzione
Codice non compilabile implica immediata bocciatura
Vi si accede solo se la prova pratica viene superata con
piena sufficienza
Consiste in domande sulla parte teorica vista a lezione
Punti WIKI
–
–
Si ottengono solo se la prova pratica e quella teorica sono
state superate con piena sufficienza
Fino ad un massimo di 5 punti.
Ing. Paolo Bernardi
z
Domande?
Ing. Paolo Bernardi
Sistemazione orario
9-11
Lun
11-13
14-16
*
Mar
Mer
Gio
Ven
Ing. Paolo Bernardi