PROGETTAZIONE DI ALGORITMI

Obiettivi formativi

Obiettivi generali Acquisire la conoscenza di base delle più note tecniche algoritmiche di progettazione e delle tecniche di valutazione della correttezza e della complessità degli algoritmi. Obiettivi specifici Conoscenza e comprensione: Al termine del corso gli studenti posseggono le conoscenze di base relative a: - tecniche fondamentali di progettazione algoritmica; - analisi della correttezza e della efficienza degli algoritmi; Applicazione di conoscenza e comprensione: Al termine del corso gli studenti sono in grado di: - analizzare le prestazioni di un algoritmo tramite strumenti matematici rigorosi; - analizzare algoritmi e strutture dati - progettare ed analizzare nuovi algoritmi, sfruttando le metodologie presentate durante il corso. Autonomia di giudizio: Lo studente alla fine del corso deve essere in grado di scegliere autonomamente qual’è la tecnica algoritmica più adatta da applicare per un determinato problema e valutare tra più soluzioni algoritmiche per un certo problema qual’è da preferirsi. Abilità comunicative: Lo studente acquisirà la capacità di esprimere un’idea algoritmica tramite l’uso di uno pseudocodice. Capacità di apprendimento: Lo studente avrà acquisito la capacità di analizzare un problema, progettare le necessarie strutture dati e un algoritmo corretto ed efficiente che lo risolva.

Canale 1
PAUL JOSEPH WOLLAN Scheda docente

Programmi - Frequenza - Esami

Programma
1. Notazione e concetti di base sui grafi. 2. Ricerca sugli albori tramite visita in profondità e in ampiezza (DFS e BFS). Proprietà degli albori BFS e DFS un applicazioni. 3. Algoritmi greedy incluso applicazioni sul problema dell'albero di copertura di peso minimo (MST) con l'algoritmi di Prim e Kruskal e camini di pesi massimi in grafi pesati tramite l'algoritmo di Dijkstra. 4. Programmazione dinamica con applicazioni sul problema dello zaino, la copia di punti più vicini, e problemi sulle stringhe.
Prerequisiti
nessun prerequisito
Testi di riferimento
dispense sul sito del corso. Introduction to algorithms - Corman, Leiserson, Rivest, Stein.
Modalità insegnamento
lezione tradizionale
Frequenza
frequenza non obbligatoria
Modalità di esame
Prova scritta.
GIACOMO PAESANI Scheda docente
Canale 2
ANGELO MONTI Scheda docente

Programmi - Frequenza - Esami

Programma
Il corso prosegue il cammino iniziato al primo anno con Introduzione agli algoritmi. Il corso è diviso in tre parti. La prima parte riguarda i grafi e le visite (DFS e BFS). Nella seconda parte di trattano due tecniche di progettazione ( greedy and divide-et-impera) che funzionano bene per particolari tipi di problemi e si parla anche di euristiche come metodo per affrontare problemi particolarmente difficili. Nella terza parte si illustrano la programmazione dinamica e il backtraking, due tecniche potenti e generali. Tutte le tecniche sono illustrate tramite esempi significativi.
Prerequisiti
Una discreta conoscenza dell’inglese è di aiuto.
Testi di riferimento
T.H. Cormen, C.Papadimitriou, U. Vazirani. Introduzione agli algoritmi J. Kleinberg, E. Tardos      Algorithm Design    S. Dasgupta, C. Papadimitriou, U. Vazirani      Algorithms   C. Demetrescu, I. Finocchi, G.F. Italiano Algoritmi e strutture dati
Modalità insegnamento
Il corso si basa su lezioni e dimostrazioni in presenza e su esercizi da svolgere a casa.
Frequenza
la frequenza non è obbligatoria
Modalità di esame
La prova di esame consiste in una prova scritta in cui gli studenti devono risolvere alcuni semplici esercizi. La prova avrà' una durata di 120-150 minuti e comporterà' domande a stimolo chiuso e risposta aperte. Seguirà un orale facoltativo.
Modalità di erogazione
Il corso si basa su lezioni e dimostrazioni in presenza e su esercizi da svolgere a casa.
IVANO SALVO Scheda docente

Programmi - Frequenza - Esami

Programma
Esercitazioni su Algoritmi su Grafi, Programmazione Dinamica e Generazione di strutture combinatorie.
Prerequisiti
Conoscenza base di programmazione e algoritmi.
Testi di riferimento
Cormen, Leiserson, Rivest, Stein: Introduzione agli Algoritmi e strutture dati McGraw Hill Kleimberg, Tardos Algorithm Design Pearson/Addison Wesley
Frequenza
Seguire le lezioni è fortemente raccomandato.
Modalità di esame
Esame scritto.
Modalità di erogazione
La modalità di svolgimento è tradizionale in aula con slides (lezioni) e lavagna (esercitazioni).
  • Codice insegnamento1015888
  • Anno accademico2024/2025
  • CorsoInformatica
  • CurriculumTecnologico
  • Anno2º anno
  • Semestre2º semestre
  • SSDINF/01
  • CFU9
  • Ambito disciplinareDiscipline Informatiche