Corso di Laurea in Ingegneria Informatica (Anno Accademico 2009/2010)

Algorithms and data structures
Descrizione dell'insegnamento
Il corso di Algoritmi e programmazione avanzata ha l’obiettivo di introdurre le pricipali strutture dati ed i principali algoritmi utilizzando come supporto il linguaggio C.
Prerequisiti
Conoscenza di base del linguaggio C.
Scopi
Saper utilizzare le principali strutture dati (liste, pile, code, etc.) sia da un punto di vista concettuale che utilizzando il linguaggio C. Conoscere i principali algoritmi che usano tali strutture (ordinamento, visita, etc.). Saper valutare la complessità computazionale degli algoritmi.
Contenuti
Programmazione C avanzata (allocazione dinamica memoria, puntatori, etc.)
Strutture dati (liste, pile, code, tabelle hash, etc.)
Algoritmi (Ordinamento, algoritmi su albveri e su grafi, etc.)
Complessità Computazionale.
Testi
S. Ceri, D. Mandrioli e L. Sbattella, Informatica: Programmazione (Capp. 10 e 11) McGraw-Hill, 2006
T.H.Cohen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduzione agli algoritmi e strutture dati, 3° ed, McGraw-Hill, 2010.
Esercitazioni
Le esercitazioni presentate durante il corso coprono l’intero programma.
Docente
Nessun Docente attualmente disponibile per questo corso
Docenti video
Prof. Massimo Poncino - Politecnico di Torino (Torino - Italy)
Elenco delle lezioni
    •  Lezione n. 1: Introductions and Definitions  Massimo Poncino
    •  Lezione n. 2: Complexity Analysis  Massimo Poncino
    •  Lezione n. 3: Analysis of recursive programs: recurrences I  Massimo Poncino
    •  Lezione n. 4: Analysis of recursive programs: recurrences II  Massimo Poncino
    •  Lezione n. 5: Sorting  Massimo Poncino
    •  Lezione n. 6: Heapsort and Quicksort  Massimo Poncino
    •  Lezione n. 7: Sorting - linear time algorithms  Paolo Prinetto
    •  Lezione n. 8: Dynamic sets and dictionaries  Massimo Poncino
    •  Lezione n. 9: Binary Search Trees  Massimo Poncino
    •  Lezione n. 10: Hash Tables I  Massimo Poncino
    •  Lezione n. 11: Hash Tables II  Massimo Poncino
    •  Lezione n. 12: Algorithmic paradigms: Dynamic programming I  Massimo Poncino
    •  Lezione n. 13: Dynamic programming II  Massimo Poncino
    •  Lezione n. 14: The greedy paradigm  Massimo Poncino
    •  Lezione n. 15: Search-based paradigms: backtracking  Massimo Poncino
    •  Lezione n. 16: Graphs I  Massimo Poncino
    •  Lezione n. 17: Graphs II  Massimo Poncino
    •  Lezione n. 18: Graphs visits  Massimo Poncino
    •  Lezione n. 19: Application of Depth-First-Search  Massimo Poncino
    •  Lezione n. 20: Minimum Spanning Trees I  Massimo Poncino
    •  Lezione n. 21: Minimum Spanning Trees II  Massimo Poncino
    •  Lezione n. 22: Shortest paths I  Massimo Poncino
    •  Lezione n. 23: Shortest paths II  Massimo Poncino
    •  Lezione n. 24: All-pairs shortest paths  Massimo Poncino
    •  Lezione n. 25: Intractable problems and NP completeness  Massimo Poncino