Tecniche di Programmazione e Laboratorio
Orario delle Lezioni (Aula Mauro Picone)
Lunedì 11:00-14:00
Mercoledì 11:00-13:00
Venerdì 09:00 - 11:00 (laboratorio)
Prof. Stefano Leonardi: leonardi@diag. uniroma1.it (prima parte)
Federico Fusco: federico.fusco@uniroma1.it (seconda parte)
Matteo Russo: mrusso@diag.uniroma1.it (tutor, laboratorio)
Ricevimento (Via Ariosto 25) su richiesta via email oppure in Aula dopo la lezione del Mercoledì.
Testo di riferimento:
Guttag, John. Introduction to Computation and Programming Using Python: With Application to Understanding Data Second Edition. MIT Press, 2016. ISBN: 9780262529624.
Slides e Codice I part Slides e Codice II part
Comunicazione con gli studenti, Esercizi, altro materiale didattico su Classroom (code l2b4agr)
Syllabus
I sezione: Analisi e progetto di algoritmi
Introduzione alla complessità computazionale
Semplici algoritimi di ricerca.
Esercitazione su semplici algoritmi e loro analisi
Sorting
Sorting (contd) e Hashing.
Esercitazione su sorting e Hashing
Plotting and Data Visualization
Ricapitolazione di classi ed ereditarietà con applicazione alla visualizzazione.
Assignment numero 1
II sezione: Ottimizzazione
Introduzione all’ottimizzazione, il problema del knapsack, algoritmi greedy di ottimizzazione e Knapsack 0/1
Algoritmi di ricerca su grafi
Esercitazione su algoritmi greedy di ottimizzazione
Algoritmi greedy su grafi: shortest paths e MST
Esempi di algoritmi su grafi.
Esercitazione su algoritmi su grafi
Programmazione Dinamica, serie di Fibonacci, 0/1 Knapsack
Esercitazione di programmazione dinamica
Assignment n. 2
III Sezione: Simulazione probabilistica
Random Walks on graphs e data visualization
Applicazioni di random walks
Esercitazione su random walks e visualizzazione
Algoritmi probabilistici e cenni di probabilità
Esempi di algoritmi probabilistici
Esercitazione di algoritmi probabilistici
Simulazione Monte-Carlo
Esercitazione di simulazione monte-carlo
Assignment n. 3
IV Sezione: Comprensione dei dati e introduzione al Machine Learning
Esplorazione dei dati con PANDAS
Esempio di applicazione di PANDAS
Esercitazione su PANDAS
Introduzione al machine learning: feature vectors e spazi metrici
Clustering K-means ed esempi di applicazioni
Esercitazione su clustering
Metodi di classificazione (K-NN, classificatori lineari)
Esercitazione su classificazione