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