Corso Vittorio Emanuele II, 39 - Roma 0669207671

Ingegneria informatica (Academic Year 2018/2019) - Ingegneria Informatica (ad esaurimento)

Algoritmi e programmazione avanzata



Videolesson

Lesson n. 1: C avanzato
   Introduzione al corso

   L'ambiente di sviluppo

   I puntatori

   Aritmetica dei puntatori

   Puntatori e vettori

   Puntatori e struct
Go to this lesson Massimo Poncino
Lesson n. 2: Allocazione dinamica della memoria
   Allocazione dinamica della memoria

   Funzione malloc

   Funzione free

   Funzioni calloc, realloc

   Modello di memoria

   Problemi di uso errato
Go to this lesson Massimo Poncino
Lesson n. 3: Ricorsione e programmi ricorsivi
   Definizione e motivazioni

   Analisi di funzioni ricorsive

   Ricorsione ed efficienza
Go to this lesson Massimo Poncino
Lesson n. 4: Programmazione modulare
   Gestione di progetti

   Regole di visibilità

   File di intestazione
Go to this lesson Massimo Poncino
Lesson n. 5: Liste lineari I
   Proprietà e limitazioni della rappresentazione tramite vettori

   Liste lineari

   Implementazione

   Varianti di liste
Go to this lesson Massimo Poncino
Lesson n. 6: Liste lineari II
   Primitive di gestione delle liste

   Implementazione in C

   Inizializzazione

   Ricerca

   Visita

   Inserimento

   Cancellazione
Go to this lesson Massimo Poncino
Lesson n. 7: Tipo di dato astratti I - pile e code
   Tipi di dato astratti

   L'ADT pila (stack)

   L'ADT coda
Go to this lesson Massimo Poncino
Lesson n. 8: Tipo di dato astratti II - code a priorità e alberi
   L'ADT coda a priorità

   Heap

   L'ADT Albero
Go to this lesson Massimo Poncino
Lesson n. 9: Algoritmi - introduzione e definizioni
   Concetto di algoritmo

   Aspetti legati agli algoritmi

   Progetto di algoritmi

   Analisi di algoritmi

   Analisi di complessità
Go to this lesson Massimo Poncino
Lesson n. 10: Analisi di complessità
   Proprietà della notazione asintotica

   Dipendenza dagli input

   Esempio: ordinamento per inserimento

   Esempio: ricerca binaria
Go to this lesson Massimo Poncino
Lesson n. 11: Analisi di programmi ricorsivi: ricorrenze
   Ricorrenze

   Serie e sommatorie

   Soluzioni di ricorrenze

   Metodo della sostituzione

   Metodo iterativo

   Metodo principale
Go to this lesson Massimo Poncino
Lesson n. 12: Algoritmi di ordinamento I
   Definizioni e assunzioni

   Classi di algoritmi di ordinamento

   Heapsort

   Heapsort: esempio
Go to this lesson Massimo Poncino
Lesson n. 13: Algoritmi di ordinamento II
   Quicksort

   Quicksort: esempio

   Analisi del quicksort

   Limiti teorici
Go to this lesson Massimo Poncino
Lesson n. 14: Algoritmi di ordinamento III
   Algoritmi di ordinamento con complessità lineare

   Counting sort

   Counting sort: esempio

   Stabilità di un algoritmo di ordinamento

   Conclusioni sull'ordinamento
Go to this lesson Massimo Poncino
Lesson n. 15: Insiemi dinamici e dizionari
   Insiemi dinamici e dizionari

   Implementazione dei dizionari

   Alberi binari di ricerca (BST)

   Visite di un BST

   Ricerca in un BST
Go to this lesson Massimo Poncino
Lesson n. 16: Alberi binari di ricerca
   Inserimento in un BST

   Cancellazione in un BST

   Caso peggiore in un BST
Go to this lesson Massimo Poncino
Lesson n. 17: Tabelle Hash
   Tabelle ad accesso diretto

   Tabelle hash

   Funzioni di hash

   Gestione delle collisioni

   Concatenazione

   Indirizziamento aperto
Go to this lesson Massimo Poncino
Lesson n. 18: Paradigmi algoritmici: Programmazione dinamica
   Progetto di un algoritmo

   Programmazione dinamica

   Un esempio: il cambio di monete
Go to this lesson Massimo Poncino
Lesson n. 19: Paradigmi algoritmici II: Il paradigma Greedy
   Il paradigma greedy

   Esempi di algoritmi greedy

   Programmazione dinamica e algoritmi greedy
Go to this lesson Massimo Poncino
Lesson n. 20: Paradigmi algoritmici III: Backtracking
   Paradigmi basati su ricerca

   Spazio delle soluzioni

   Backtracking

   Esempio
Go to this lesson Massimo Poncino
Lesson n. 21: I Grafi - Prima parte
   I grafi

   Definizioni e proprietà

   Rappresentazioni dei grafi
Go to this lesson Massimo Poncino
Lesson n. 22: I Grafi - Seconda parte
   L'ADT grafo

   Visite di grafi

   Algoritmo di visita generico
Go to this lesson Massimo Poncino
Lesson n. 23: Visite di grafi
   Visita in ampiezza

   Visita in profondità

   Etichette temporali

   Applicazioni
Go to this lesson Massimo Poncino
Lesson n. 24: Alberi di copertura minimi
   Alberi di copertura minimi

   Algoritmo generico

   Definizioni

   Algoritmo di Kruskal
Go to this lesson Massimo Poncino
Lesson n. 25: Percorsi minimi in un grafo
   Definizioni e proprietà

   Rilassamento

   Algoritmo di Dijkstra

   Algoritmo di Bellman-Ford
Go to this lesson Massimo Poncino
Lesson n. 26: Teoria della complessità
   Problemi intrattabili

   Problemi di decisione

   Nondeterminismo

   Problemi P e NP
Go to this lesson Massimo Poncino
Lesson n. 27: NP completezza e algoritmi approssimati
   Riducibilità

   Problemi NP-completi e NP-hard

   Problemi NP-completi classici

   Algoritmi approssimati ed euristiche
Go to this lesson Massimo Poncino