07 December 06 - 00:44Informazioni Generali
Programma del Corso
- Strutture dati elementari (array, liste concatenate)
- Tipi di dati astratti (stack, code FIFO e code generalizzate)
- Ricorsione e alberi (algoritmi ricorsivi, divide et impera, alberi)
- Merging e mergesort (merging a due vie, merging astratto sul posto, mergesort top-down, mergesort bottom.up, mergesort su liste concatenate)
- Code con priorità e heapsort (implementazioni elementari, heap, heapsort, code binomiali)
- Alberi binari di ricerca (tabelle di simboli, ricerca indicizzata, ricerca sequenziale, alberi binari di ricerca)
- Hashing (funzioni di hash, concatenazioni separate, scansione lineare, hashing doppio, tabelle hash dinamiche)
- Algoritmi su grafi, String Matching
Testi Consigliati
![]() | Algoritmi in Java (terza edizione), Robert Sedgewick, Addison-Wesley, 2003, ISBN: 88-7192-169-0 | ![]() | Algoritmi e Strutture Dati in Java, Adam Drozdek, Apogeo, 2001, 648 p., ISBN: 88-7303-895-6 |
Elenco delle lezioni
| Data | Aula | Argomento | Materiale | Ore |
| Martedì 16/10/2007 15:00-17:00 | LA2 | Introduzione al corso | 2 | |
| Giovedì 18/10/2007 10:00-12:00 | LA1 | Strutture dati elementari | Slides | 2 |
| Mercoledì 5/12/2007 11:00-13:00 | LA2 | Tipi di dati astratti Liste | Slides Codice | 2 |
| Giovedì 6/12/2007 10:00-12:00 | LA1 | Code e Stack | Codice | 2 |
| Mercoledì 12/12/2007 11:00-13:00 | LA2 | Ricorsione | Codice | 2 |
| Giovedì 13/12/2007 10:00-12:00 | AB3 | Frattali | Codice | 2 |
| Mercoledì 19/12/2007 11:00-13:00 | Parziale di Algoritmi | 2 | ||
| Giovedì 20/12/2007 10:00-12:00 | LA1 | Alberi Binari | Codice | 2 |
| Mercoledì 9/01/2008 11:00-13:00 | LA2 | Alberi Binari di ricerca | Codice | 2 |
| Giovedì 10/01/2008 10:00-12:00 | LA1 | Alberi bilanciati | Codice | 2 |
| Mercoledì 16/12/2007 11:00-13:00 | LA2 | Altri alberi | Codice | 2 |
| Giovedì 17/01/2008 10:00-12:00 | LA1 | Heap e Code di Priorità | Codice | 2 |
| Martedì 22/01/2008 15:00-17:00 | Ordinamento | Codice | 2 | |
| Mercoledì 23/01/2008 11:00-13:00 | LA2 | Grafi I | Codice | 2 |
| Giovedì 24/01/2008 10:00-12:00 | LA1 | Grafi II | Codice | 2 |
| Martedì 29/01/2008 15:00-17:00 | Grafi III | Codice | 2 | |
| Mercoledì 30/01/2008 11:00-13:00 | LA2 | Hashing | Slides Codice | 2 |
| Giovedì 31/01/2008 10:00-12:00 | LA1 | String Matching | Codice | 2 |
| Tot ore | 36 |
Applet Frattali - Curve di Sierpinski
Regolamento
Il corso ha come obiettivo quello di offrire una panoramica sulla progettazione ed implementazione dei principali algoritmi e strutture dati presenti in letteratura. Ogni lezione prevede un'introduzione all'argomento trattato e la soluzione di uno o più esercizi inerenti lo stesso argomento. Ogni esercitazione ha lo scopo di produrre un'applicazione che possa essere autonoma ossia che possa essere compilata ed eseguita senza errori (e che chiaramente esegua il lavoro per il quale è stata scritta!).
Per quanto riguarda il progetto vi troverete di fronte ad un problema che richiede l'uso di algoritmi e strutture dati specifiche e dovrete essere in grado di:
- Analizzare dettagliatamente il problema
- Fornirne una soluzione algoritmica
- Implementare la soluzione proposta nel modo più efficiente possibile
Per ogni progetto è richiesta la consegna di:
- Una relazione che descriva il problema, la soluzione algoritmica proposta e l'implementazione fornita
- Il codice dell'applicazione opportunamente commentato.
Consegna dei progetti
- La consegna dei progetti deve avvenire almeno 5 giorni prima dell'esame. Tutti i file di progetto dovranno essere scaricati nel sito del laboratorio. Per ottenere le credenziali d'accesso è necessario fare richiesta del gruppo come scritto sotto nella voce Organizzazione.
Calendario degli esami
- Giovedì 21 Febbraio 2008 (Consegna progetti Sabato 16 Febbraio 2008).
Note
- Il linguaggio utilizzato a lezione e da utilizzare per esercitazioni e progetti è Java, di seguito trovate elencate alcune risorse disponibili in rete:
- (fornire riferimento a manuale qui!)
- L'ambiente di sviluppo consigliato è Eclipse. Tuttavia non siete obbligati, potete utilizzare l'ambiente o editor che preferite ma non sarete supportati per eventuali problemi!
- Java mette a disposizione numerosissime librerie con struttore dati, algoritmi, etc. La soluzione degli esercizi non prevede l'uso di queste librerie poichè ha lo scopo di mostrare come liberie analoghe a queste possono essere realizzate! Al contrario nella soluzione dei progetti potete far uso di queste librerie poichè lo scopo è quello di affrontare un problema e fornirne una soluzione adottando tutte le possibilità che Java offre.
- La relazione va consegnata nel formato PDF o PS.
Organizzazione
Per la realizzazione delle esercitazioni e del progetto è consentito lavorare in gruppi di massimo 3 elementi. E' opportuno che la formazione dei gruppi avvenga il prima possibile. Per la tale scopo dovete inviare agli esercitatori (vedi sotto!) una mail per gruppo con soggetto: [LASD07] Richiesta gruppo nella quale indicate in maniera chiara i vostri nomi, cognomi, ed indirizzi email. Riceverete come risposta una mail di accettazione con la quale vi sarà assegnato un codice di gruppo, nel seguito ogni comunicazione email dovrà contenere nell'oggetto la stringa [LASD07#codice] seguita poi dall'oggetto della mail.
Gli esercitatori sono:
- Francesco De Angelis per la sede di Ascoli Piceno (francesco.deangelis [AT] unicam.it)
- Ezio Bartocci per la sede di Camerino (ezio.bartocci [AT] unicam.it)
Dovete inviare le email all'esercitatore della vostra sede ed in "cc:" all'altro esercitatore.
ezio - default - / No trackbacks - § ¶




