Docenti
Obiettivi del corso
Il corso intende fornire un'introduzione agli algoritmi, ovvero alla formalizzazione dei problemi, all'individuazione di soluzioni computazionali, e all'analisi di tali soluzioni, dal punto di vista della correttezza e dell'efficienza nell'uso di risorse. Verranno illustrati alcuni algoritmi e strutture dati fondamentali che sono alla base dello sviluppo di ogni sistema software. Il corso contribuisce a sviluppare una sensibilità per la realizzazione di programmi efficienti e corretti. Il corso dà luogo al conseguimento di 9 CFU.
Il corso ha una pagina Moodle che verrà utilizzata per comunicazioni, informazioni sul tutorato e distribuzione di parte del materiale [link].
È prevista attività di tutorato (informazioni reperibili al link).
Programma di massima del corso
- Fondamenti. Notazione per gli algoritmi. Primi esempi di algoritmi: tecniche di analisi e progettazione. Metodo incrementale (insertion sort). Divide et impera (merge sort). Analisi di complessità e notazione asintotica.
- Ordinamento. Heapsort, quicksort e ordinamento in tempo lineare.
- Strutture dati fondamentali. Pile e code. Liste. Tabelle hash. Alberi di ricerca.
- Tecniche avanzate di progettazione ed analisi degli algoritmi. Programmazione dinamica. Algoritmi greedy. Analisi ammortizzata.
Orario del corso
Il corso fa parte del II anno del Corso di Laurea in Informatica, Università di Padova, ed è collocato nel I semestre dell'Anno Accademico 2026/2027. Si terrà in presenza (aula LuM250), con il seguente orario:
- Lunedì, 14:30 - 16:15
- Martedì, 14:30 - 16:15
- Giovedì, 14:30 - 16:15
Modalità d'esame
L'esame si articola in:
- Prova scritta
Domande ed esercizi sul contenuto del corso. Esempi di prove scritte dei precedenti appelli possono essere trovati qui. - Visione dei Compiti, Orale facoltativo e
Registrazione
Dopo lo scritto è viene fissato un momento nel quale è possibile visionare il proprio elaborato. La prova orale è può essere sostenuta, su base volontaria, nello stesso appello nel quale si sostiene lo scritto da chi ha conseguito nello scritto un voto uguale o superiore a 18. Sostenerla è necessario per conseguire la lode. L'orale consta di domande principalmente teoriche e, chiaramente, si configura come una parte della prova d'esame, per cui pu` determinare un aumento o una diminuzione del voto. Dopo la visione, i voti saranno inseriti in Uniweb (con l'usuale possibilitè di rifiutare il voto).
Per poter sostenere una determinata prova scritta:
- È indispensabile essersi registrati alla corrispondente prova mediante il sistema UNIWEB.
- Questo è normalmente possibile solo fino a due giorni prima dell'esame stesso (la lista chiude due giorni prima dell'esame stesso alla mezzanotte).
- La registrazione richiede che non vi siano voti in sospeso per lo stesso insegnamento, ovvero un voto precedentemente conseguito deve essere rifiutato.
Le date degli appelli sono recuperabili dal sistema di gestione della didattica (link).
Chi si fosse registrato a una lista di prenotazione e decidesse di non presentarsi è pregato di cancellarsi dalla lista o, in caso la lista fosse già chiusa, di darne tempestiva comunicazione al docente.
Durante l'esame non è possibile consultare testi, appunti, supporti digitali o altro materiale. Chi copia o consulta bigliettini (o affini) vedrà annullato lo scritto corrente e non potrà sostenere l'appello successivo.
Riferimenti bibliografici
Il libro adottato è:
che esiste anche in traduzione italiana:
