- Docente: Ugo Dal Lago
- Crediti formativi: 12
- SSD: ING-INF/05
- Lingua di insegnamento: Inglese
- Moduli: Simone Martini (Modulo 1) Maurizio Gabbrielli (Modulo 2) Ugo Dal Lago (Modulo 3)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2) Convenzionale - Lezioni in presenza (Modulo 3)
- Campus: Bologna
- Corso: Laurea Magistrale in Artificial Intelligence (cod. 9063)
-
Orario delle lezioni (Modulo 1)
dal 18/09/2023 al 25/10/2023
-
Orario delle lezioni (Modulo 2)
dal 30/10/2023 al 20/12/2023
-
Orario delle lezioni (Modulo 3)
dal 19/02/2024 al 13/05/2024
Conoscenze e abilità da conseguire
Al termine dell'attività formativa, lo studente comprende le principali tecniche linguistiche ed algoritmiche usate nel contesto dell'AI, inclusi gli aspetti principali dei linguaggi funzionali, dei linguaggi logici e della programmazione con vincoli, sia negli aspetti teorici di base che per le relative applicazioni pratiche. Lo studente ha una comprensione dei principi di base dei modelli e degli algoritmi distribuiti, dei problemi di consenso e degli algoritmi a larga scala per l'analisi di grandi quantità di dati.
Contenuti
Modulo 1
Macchine astratte. La macchina Python. Programmazione in Python: nomi e loro visibilità, funzioni, oggetti modificabili e non modificabili, tipi di dato (numeri, stringhe, ennuple, liste, dizionari) e loro uso nella risoluzione di problemi di media difficoltà. Classi e oggetti; metodi ed ereditarietà. Eccezioni. La libreria NumPy e i suoi array N-dimensionali.
Modulo 2
Introduzione alla logica matematica. Unificazione. Risoluzione.
Introduzione alla programmazione logica. I linguaggi Prolog.
Programmazione logica con vincoli e programmazione concorrente con vincoli. Programmazione con vincoli. Il linguaggio MiniZinc.
Modulo 3
Introduzione alla teoria della calcolabilità e alla teoria della complessità. Indecidibilità. Le classi P, NP e EXP. Un modello formale di apprendimento: PAC learning. Apprendimento mediante convergenza uniforme. Il tredeoff bias/complexity. La dimensione VC.
Testi/Bibliografia
Modulo 1
John V. Guttag. Introduction to Computation and Programming Using Python Third Edition: With Application to Computational Modeling and Understanding Data. MIT Press, 2021.
https://mitpress.mit.edu/books/introduction-computation-and-programming-using-python-third-edition
Modulo 2
Dirk van Dalen. Logic and structure. 4th edition, Springer.
K. Doets. From Logic to Logic Programming. The Mit Press.
Russell, Norvig. Artificial Intelligence: A Modern Approach (any edition). Pearson.
Modulo 3
Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach. Cambridge University Press, 2009.
Michael Kearns, Umesh. Vazirani. An Introduction to Computational Learning Theory. MIT Press, 1994.
Shai Shalev-Shwartz and Shai Ben-David. Understanding Machine Learning: From Theory to Algorithms. Cambridge University Press, 2014.
Metodi didattici
Lezioni frontali ed esercitazioni.
Modulo 1
Lezioni in aula. Esercitazioni autonome (fuori dall’orario di lezione) di programmazione, utilizzando la piattaforma Moodle del corso. Le lezioni (24 ore) sono concentrate nel periodo iniziale del semestre (entro la fine di ottobre). In considerazione della tipologia di attività e dei metodi didattici adottati, la frequenza di questa attività formativa richiede la preventiva partecipazione di tutti gli studenti ai moduli 1 e 2 di formazione sulla sicurezza nei luoghi di studio, in modalità e-learning
Modalità di verifica e valutazione dell'apprendimento
Esame orale e/o scritto alla fine di ogni modulo. Possibile progetto. Per il modulo 1 sarà proposto un test obbligatorio di programmazione in Python, a correzione automatica su dati di test, sulla piattaforma Moodle del corso. Un test sufficiente è necessario per sostenere un qualsiasi esame degli altri moduli. Un primo test potrebbe essere offerto nel mese di Novembre.
Strumenti a supporto della didattica
Esercitazioni in aula.
Orario di ricevimento
Consulta il sito web di Ugo Dal Lago
Consulta il sito web di Simone Martini
Consulta il sito web di Maurizio Gabbrielli