Corso di Laboratorio di algoritmi e strutture dati a.a. 2003/2004

Università degli Studi di L’Aquila – Facoltà di Scienze M.F.N. – Corso di Laurea in Informatica
Modulo di
Laboratorio di Algoritmi e Strutture Dati (LASD)
A.A. 2008/2009
Presentazione del corso
Giovanna Melideo
[email protected]
G. Melideo - Presentazione del modulo di
Laboratorio di Algoritmi e Strutture Dati
1
Obiettivi del corso
Obiettivi congiunti con il corso di Algoritmi e Strutture Dati
(ASD):
„ Introdurre ai fondamenti della teoria degli algoritmi, delle
strutture dati e all'analisi della complessità
computazionale di programmi
„ Familiarizzare lo studente con le principali problematiche
e tecniche relative alla progettazione degli algoritmi e
delle strutture dati
„
gli algoritmi fondamentali studiati rappresentano la base di
programmi più grandi in molte aree applicative
G. Melideo - Presentazione del modulo di
Laboratorio di Algoritmi e Strutture Dati
2
Obiettivi del corso
„ Stimolare la comprensione degli argomenti trattati attraverso
l’implementazione e la sperimentazione diretta di programmi e
la successiva applicazione a problemi reali
„ Il linguaggio impiegato per tutte le implementazioni è il C
(standard ANSI)
„ Lo stile adottato assicura una semplice traduzione dei
programmi in qualunque altro moderno linguaggio di
programmazione
„ Confrontare diversi algoritmi che risolvono lo stesso problema
„ Confrontare prestazioni teoriche e prestazioni sperimentali
G. Melideo - Presentazione del modulo di
Laboratorio di Algoritmi e Strutture Dati
3
Obiettivi del corso
Al termine del corso si ritiene che lo studente sia in grado di:
„ risolvere algoritmicamente problemi classici
„ scegliere motivatamente le strutture dati adatte ad
ottenere soluzioni computazionalmente efficienti
„ realizzare in C gli algoritmi progettati
„ scrivere implementazioni portabili, eleganti, senza
trascurare gli aspetti di efficienza durante le fasi di
sviluppo del codice
G. Melideo - Presentazione del modulo di
Laboratorio di Algoritmi e Strutture Dati
4
Prerequisiti
„ Si assume che lo studente abbia acquisito le nozioni di
base della programmazione e sia in grado di
implementare semplici algoritmi in linguaggio C
„ Pertanto, si consiglia fortemente di dedicarsi allo studio
del corso di Laboratorio di Algoritmi e Strutture Dati solo
dopo aver sostenuto con esito positivo gli esami di dei
corsi di
„ Fondamenti di Programmazione
„ Laboratorio di Programmazione I
„
Laboratorio di Programmazione II (propedeuticità)
G. Melideo - Presentazione del modulo di
Laboratorio di Algoritmi e Strutture Dati
5
Sillabo del Corso
„ Strutture dati fondamentali: liste, stack, code
implementazione delle operazioni fondamentali per la
loro manipolazione.
„ Alberi
„ rappresentazione in C mediante array e mediante
strutture e puntatori
„ implementazione delle operazioni per la loro
manipolazione; visita in ampiezza e profondità.
„ Implementazione di algoritmi di ricerca ed ordinamento
fondamentali su array e liste
„
G. Melideo - Presentazione del modulo di
Laboratorio di Algoritmi e Strutture Dati
6
Sillabo del Corso
„ Alberi binari di ricerca (BST)
rappresentazione in C ed implementazione delle
operazioni di costruzione e ripristino
„ BST bilanciati: alberi 2-3-4 top-down; alberi red-black
„ Code con priorità
„ la struttura dati heap, rappresentazione in C ed
implementazione delle operazioni di costruzione e
ripristino di uno heap
„ implementazione delle code con priorità mediante heap
e loro uso per l'ordinamento.
„ Grafi: rappresentazioni, implementazione in C di algoritmi
di visita e di algoritmi elementari su grafi.
„
G. Melideo - Presentazione del modulo di
Laboratorio di Algoritmi e Strutture Dati
7
Testi di riferimento
„ Libro di testo
“Algoritmi in C”, terza ed., di Robert Sedgewick,
edito da Addison-Wesley.
„ Un elenco di testi consigliati per approfondimenti è
disponibile sulla home page del corso
http://www.di.univaq.it/melideo/lab-alg.html
„
G. Melideo - Presentazione del modulo di
Laboratorio di Algoritmi e Strutture Dati
8
Modalità d’esame
„ La prova d'esame prevede il superamento di:
„ una prova scritta integrata (prove intermedia e
conclusiva oppure unica prova totale) che verte sugli
argomenti di entrambi i corsi di ASD e LASD
NB: la prova intermedia è riservata agli studenti in corso
„ una prova orale che verte sugli argomenti del corso di
ASD
„ Una prova orale a discrezione della docente che verte
sugli argomenti del corso di LASD
„ Le iscrizioni alle prove d'esame si effettuano online
attraverso il sistema di prenotazione di Ateneo
„ Gli studenti non regolarmente iscritti non saranno
ammessi a sostenere la prova d’esame
G. Melideo - Presentazione del modulo di
Laboratorio di Algoritmi e Strutture Dati
9
Altre informazioni
„ Home page del corso:
http://www.di.univaq.it/melideo/lab-alg.html
„ Orario di ricevimento (da verificare periodicamente sulla
pagina del corso):
„ mercoledì, ore 13:30-15:30
„ su appuntamento per email: [email protected]
G. Melideo - Presentazione del modulo di
Laboratorio di Algoritmi e Strutture Dati
10