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 © Alberto Montresor
Cos’è un informatico? 2 Slide (c) Jeff Edmonds, jeff@cs.yorku.ca © Alberto Montresor
L’azienda vi assegna un compito... Input: Un vettore di interi X[1...n] Output Il sottovettore X[i … j] la cui somma degli elementi è massima fra tutti i sottovettori 3 © Alberto Montresor
Um? Mi dica che programma devo scrivere! 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 © Alberto Montresor
L’azienda vi assegna un compito... Input: Un vettore di interi X[1...n] Output Il sottovettore X[i … j] la cui somma degli elementi è massima fra tutti i sottovettori Domande Il problema è specificato a sufficenza? Riuscite a risolverlo? Riuscite a risolverlo in maniera efficiente? 5 © Alberto Montresor
Versione 1 - O(n3) 6 © Alberto Montresor
Versione 2 - O(n2) 7 © Alberto Montresor
Versione 3 - O(n log n) 8 © Alberto Montresor
Versione 4 - O(n) 9 © Alberto Montresor
Fornire due elementi fondamentali: 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 Studiate il loro codice Non a memoria! Convincetevi che funzionano Provate a implementarli Metodo: pensiero astratto Come sviluppare nuovi algoritmi per ogni problema che si presenta 10 © Alberto Montresor
Lo studio degli algoritmi non è uno sport in cui si guarda e basta... 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 11 © Alberto Montresor
Il corso è dotato di un sito web: http://disi.unitn.it/~montreso/asd/ Sito web del corso Il corso è dotato di un sito web: http://disi.unitn.it/~montreso/asd/ Trovate: Lucidi e appunti Video lezioni Software didattico Esercizi e compiti passati Progetti Approfondimenti 12 © Alberto Montresor
Analisi degli algoritmi Notazione asintotica Ricorrenze Programma del corso Introduzione Analisi degli algoritmi Notazione asintotica Ricorrenze Analisi ammortizzata Strutture dati: Pile, code, liste Alberi Alberi bilanciati Tabelle hash Grafi Strutture speciali Tecniche di programmazione Scelta della struttura dati Divide et impera Programmazione dinamica Algoritmi greedy Ricerca locale Backtrack Algoritmi probabilistici Problemi intrattabili (cenni) Teoria dell’NP-completezza Tecniche risolutive 13 © Alberto Montresor
Prof. Alberto Montresor Titolare, lezioni “teoriche”, esercitazioni Docente e assistenti Prof. Alberto Montresor Titolare, lezioni “teoriche”, esercitazioni http://disi.unitn.it/~montreso/ Dott. Alessandra Giordani Esercitazioni in aula agiordani@disi.unitn.it Dott. Alessio Guerrieri Correzione progetti laboratorio, esercitazioni in laboratorio guerrieri@science.unitn.it 14 © Alberto Montresor
Domande? 15 © Alberto Montresor
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 16 © Alberto Montresor
Laptop proibiti in aula durante le lezioni! 17 © Alberto Montresor
Bertossi, Montresor Algoritmi e Strutture di Dati Tecniche nuove, 2010 Testi Libro adottato Bertossi, Montresor Algoritmi e Strutture di Dati Tecniche nuove, 2010 Per approfondimenti: Cormen, Leiserson, Rivest, Stein Introduction to Algorithms The MIT Press; 3nd edition (2009) Jon Kleinberg, Eva Tardos Algorithm Design Addison Wesley, 1st edition (2006) 18 © Alberto Montresor
Organizzazione di una settimana di corso Lezioni e ricevimento Organizzazione di una settimana di corso Martedì 14.30-16.30 Lezione A103 Mercoledì 10.30-12.30 Laboratorio gruppo 1 PC 104 13.30-15.30 Laboratorio gruppo 2 PC 104 Giovedì 14.30-16.30 Lezione A103 Venerdì 10.30-12.30 Esercitazione in aula A103 Ricevimento Via mail, quando volete Dopo ogni lezione, in aula Su appuntamento 19 © Alberto Montresor
Diviso in due parti obbligatorie: Esame Diviso in due parti obbligatorie: Scritto risoluzione problemi (+lab) 50% E’ possibile usare libri e appunti, non strumenti elettronici Orale 50% Dovete dimostrare di aver capito - non di sapere a memoria Alcune regole Niente orale se non avete passato lo scritto (voto minimo: 18) Niente orale se non avete consegnato almeno una esercitazione Dopo aver passato lo scritto, potete venire all'orale quante volte volete Se vi ripresentate ad uno scritto, i voti precedenti vengono persi Dovete completare l’orale entro febbraio 2014, poi tutti i voti vengono cancellati 20 © Alberto Montresor
Esercitazioni di laboratorio Corrette tramite mezzi automatici via interfaccia web Cheating detection Due esercitazioni durante il corso Deadline: aprile, maggio Se consegnate entro le deadline previste, danno origine a punteggio aggiuntivo da sommare al vostro voto scritto (max +2,+3) Esercitazioni dopo il corso Per accedere all’orale dovete consegnare almeno una esercitazione funzionante Esercitazioni diverse in sessioni diverse, con deadline specifiche NON danno origine a punteggio aggiuntivo 21 © Alberto Montresor
Scritti parziali e laboratorio (date da decidere) Lab. 1 - Deadline metà aprile Scritto parziale 1 - Fine aprile Lab. 2 - Deadline metà maggio Scritto parziale 2 - Fine maggio Per accedere all’orale in Giugno, Luglio 2012 Scritto: (apr and mag) or giu or lug Lab: (apr or mag) Per accedere all’orale in Settembre 2012 Scritto: (apr and mag) or giu or lug or set Lab: (apr or mag) or set Per accedere all’orale in Gennaio,Febbraio 2013 Scritto: (apr and mag) or giu or lug or set or gen or feb Lab: (apr or mag) or set or gen 22 © Alberto Montresor
Pagina del corso vs Esse3 - la mia pagina è più aggiornata Argomenti vari Varie ed eventuali Mailing list Pagina del corso vs Esse3 - la mia pagina è più aggiornata Dopo primo midterm: ricevimento “obbligatorio” 23 © Alberto Montresor
Se avete bisogno di qualunque cosa, chiedete al docente "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 24 © Alberto Montresor
"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" 25 © Alberto Montresor