Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.5/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA. 1
So, you wanna be a computer scientist? Slide (c) Jeff Edmonds, jeff@cs.yorku.ca 2
Il vostro boss vi assegna un compito... Input: Sia π una permutazione di { 1,..., N } Sia π -1 una sequenza ottenuta rimuovendo un numero di π Output Il numero mancante Domande Riuscite a risolvere questo problema? Riuscite a risolverlo in una sola passata? Riuscite a risolverlo senza memoria aggiuntiva? Riuscite a risolverlo con 2 log N bit di memoria? Slide (c) Jeff Edmonds, jeff@cs.yorku.ca 3
La vostra risposta... Um? Mi dica che programma devo scrivere! All'università ho imparato questo magnifico algoritmo! Posso sviluppare un nuovo algoritmo per lei! Slide (c) Jeff Edmonds, jeff@cs.yorku.ca 4
Scopo del corso Fornire due elementi fondamentali: Contenuto: una panoramica aggiornata sui problemi fondamentali e le loro soluzioni Metodo: i principi e le tecniche per risolvere i problemi insoliti che capitano nella vita di tutti i giorni Contenuto: lista di algoritmi Metodo: pensiero astratto Studiate il loro codice Non a memoria! Convincetevi che funzionano Come sviluppare nuovi algoritmi per ogni problema che si presenta Provate a implementarli 5
Un consiglio Lo studio degli algoritmi non è uno sport in cui si guarda e basta... E' necessario Scrivere molti algoritmi Analizzare la loro correttezza Analizzare la loro efficienza 6
Sito Web del corso Il corso è dotato di un sito web: http://www.dit.unitn.it/~montreso/asd/index.shtml Trovate: Lucidi e appunti Documentazione Compiti passati Informazioni generali sul corso 7
Programma del corso Introduzione Strutture dati base: Analisi degli algoritmi Pile, code, liste Notazione asintotica Alberi, grafi Ricorrenze Alberi di ricerca Analisi ammortizzata Alberi bilanciati (RB) Ordinamento Tecniche di programmazione Heapsort, Quicksort Divide et impera Limiti inferiori Programmazione dinamica Ordinamento in tempo lineare Algoritmi greedy Backtrack Tecniche euristiche 8
Programma del corso Strutture dati avanzate Algoritmi su grafi Tabelle hash B-Alberi Strutture dati per insiemi disgiunti **** Visite in ampiezza e profondità Ordinamento topologico Componenti fortemente connesse Alberi di copertura minima Cammini minimi Problemi di flusso 9
Docente e assistenti Prof. Alberto Montresor Titolare, lezioni teoriche http://www.dit.unitn.it/~montreso/index.shtml Dr. Tommaso Mazza Assistente, esercitazioni mazza@cosbi.eu Dott. Marco Biazzini Assistente, alcune lezioni, orali biazzini@dit.unitn.it 10
Domande? 11
Figura e ruolo dei docenti Domande, domande, domande Se ci sono punti poco chiari nella lezione, non esitate a domandare ulteriori spiegazioni Se volete ulteriori approfondimenti su uno degli argomenti delle lezioni, chiedete e vi sarà dato 12
Laptop Laptop proibiti in aula durante le lezioni! 13
Testi Adottato: Cormen, Leiserson, Rivest, Stein [CLRS] Introduction to Algorithms The MIT Press; 2 nd edition (2001) Edizione italiana: Introduzione agli Algoritmi e Strutture Dati McGraw-Hill, 2 a edizione (2005) Per approfondimenti: Jon Kleinberg, Eva Tardos Algorithm Design Addison Wesley, 1 st edition (2006) 14
Organizzazione di una lezione Organizzazione di una settimana di corso Lunedì 13.30-15.30 Lezione frontale Mercoledì 15.30-17.30 Esercitazione Giovedì 13.30-15.30 Lezione Venerdì 10.30-12.30 Lezione Ricevimento Via mail, quando volete Dopo ogni lezione, in aula Per l'orario ufficiale: http://www.dit.unitn.it/~montreso/agenda.shtml 15
Esame Diviso in due parti obbligatorie: Scritto risoluzione problemi (lab?) 15 punti Durante lo scritto è possibile usare libri e appunti Orale 15 punti Alcune regole Niente orale se non avete passato lo scritto (voto: 9 o più) Dopo lo scritto, potete venire all'orale quante volte volete Se volete rifare lo scritto, il vecchio voto viene perso Entro febbraio 2010, poi si riparte da capo 16
Appelli Scritti parziali (da decidere) L'idea è incentivare lo studio durante il corso Appelli regolari Giugno, Luglio 2010 Settembre 2010 Gennaio, Febbraio 2011 Esercitazioni di laboratorio opzionali Corrette tramite mezzi automatici Non danno punteggio 17
"Cheating policies" Durante gli scritti E' vietato comunicare in qualunque modo (oralmente, in forma scritta o elettronicamente), per qualsivoglia motivo. Chi viene sorpreso a parlare, viene invitato a lasciare l'aula e a ripresentarsi al prossimo appello Questo vale per entrambi gli "estremi" della comunicazione: sia chi parla che chi ascolta Nota: Se avete bisogno di qualunque cosa, chiedete al docente 18
"Cheating policies" Dopo gli scritti Il compito potrà essere annullato anche in caso di manifesta copiatura scoperta nel corso della correzione degli scritti Anche in questo caso, l'annullamento riguarda sia il "copiatore" che il "copiato" 19