25
© Alberto Montresor 1 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 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

Embed Size (px)

Citation preview

Page 1: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

1© Alberto Montresor 1

Algoritmi e Strutture DatiIntroduzione al corso

Alberto MontresorUniversità 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.

Page 2: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

2© Alberto Montresor 2

Cos’è un informatico?Cos’è un informatico?

Slide (c) Jeff Edmonds, [email protected]

Page 3: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

3© Alberto Montresor 3

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

Page 4: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

4© Alberto Montresor 4

La vostra risposta...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, [email protected]

Page 5: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

5© Alberto Montresor 5

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?

Page 6: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

6© Alberto Montresor

Versione 1 - O(n3)

6

Page 7: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

7© Alberto Montresor

Versione 2 - O(n2)

7

Page 8: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

8© Alberto Montresor

Versione 3 - O(n log n)

8

Page 9: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

9© Alberto Montresor

Versione 4 - O(n)

9

Page 10: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

10

© Alberto Montresor 10

Scopo del corsoScopo 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

Page 11: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

11

© Alberto Montresor 11

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

Page 12: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

12

© Alberto Montresor 12

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

Page 13: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

13

© Alberto Montresor 13

Programma del corsoProgramma 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

Page 14: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

14

© Alberto Montresor 14

Docente e assistentiDocente e assistenti

✦Prof. Alberto Montresor✦Titolare, lezioni “teoriche”, esercitazioni

✦http://disi.unitn.it/~montreso/

✦Dott. Alessandra Giordani✦Esercitazioni in aula

[email protected]

✦Dott. Alessio Guerrieri✦Correzione progetti laboratorio, esercitazioni in laboratorio

[email protected]

Page 15: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

15

© Alberto Montresor 15

Domande?Domande?

Page 16: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

16

© Alberto Montresor 16

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

Page 17: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

17

© Alberto Montresor 17

LaptopLaptop

Laptop proibiti in aula durante le lezioni!

Page 18: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

18

© Alberto Montresor 18

Testi

✦Libro adottato✦Bertossi, MontresorAlgoritmi e Strutture di DatiTecniche nuove, 2010

✦Per approfondimenti:✦Cormen, Leiserson, Rivest, Stein Introduction to AlgorithmsThe MIT Press; 3nd edition (2009)

✦Jon Kleinberg, Eva TardosAlgorithm DesignAddison Wesley, 1st edition (2006)

Page 19: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

19

© Alberto Montresor 19

Lezioni e ricevimentoLezioni 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 2PC 104

✦Giovedì 14.30-16.30 LezioneA103

✦Venerdì 10.30-12.30 Esercitazione in aulaA103

✦Ricevimento ✦Via mail, quando volete

✦Dopo ogni lezione, in aula

✦Su appuntamento

Page 20: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

20

© Alberto Montresor 20

EsameEsame

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

Page 21: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

21

© Alberto Montresor

Laboratorio

✦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 aggiuntivo21

Page 22: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

22

© Alberto Montresor 22

DateDate

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

Page 23: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

23

© Alberto Montresor

Argomenti vari

✦Varie ed eventuali✦Mailing list

✦Pagina del corso vs Esse3 - la mia pagina è più aggiornata

✦Dopo primo midterm: ricevimento “obbligatorio”

23

Page 24: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

24

© Alberto Montresor 24

"Cheating policies""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

Page 25: 1 © Alberto Montresor 1 Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative

25

© Alberto Montresor 25

"Cheating policies""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"