Il corso introduce i fondamenti della progettazione e dell’analisi degli algoritmi, con particolare attenzione alle strutture dati fondamentali e agli algoritmi su grafi e di ordinamento. Una parte del corso è dedicata all’utilizzo di Python e delle principali librerie scientifiche per la matematica computazionale, con un’introduzione ai concetti di Intelligenza Artificiale e Machine Learning.
Conoscenza e capacità di comprensione: saranno acquisite conoscenze riguardanti le tecniche principali di progettazione algoritmica (incrementale, divide-et-impera), i criteri di analisi della complessità e il funzionamento delle strutture dati fondamentali (pile, code, alberi, grafi). Verranno inoltre introdotti i concetti base di regressione e clustering.
Capacità di applicare conoscenza e comprensione: lo studente svilupperà competenze nella progettazione e implementazione di algoritmi in Python, nella gestione di dataset mediante librerie scientifiche e nella risoluzione di problemi computazionali concreti. Sarà in grado di applicare modelli di apprendimento supervisionato e non supervisionato a semplici casi di studio.
Autonomia di giudizio: lo studente maturerà la capacità di scegliere le strutture dati e gli algoritmi più adeguati a seconda del problema, valutando l’efficienza e i limiti delle soluzioni proposte e interpretando criticamente i risultati ottenuti.
Abilità comunicative: lo studente acquisirà la capacità di presentare in modo chiaro e rigoroso soluzioni algoritmiche e progetti di programmazione, anche attraverso la documentazione del codice e la discussione dei risultati.
Capacità di apprendimento: lo studente sarà in grado di approfondire in autonomia algoritmi e tecniche di IA non trattati nel corso, utilizzando testi specialistici e documentazione tecnica, e di applicare le conoscenze acquisite a nuovi contesti informatici e matematici.
Informatica 2 - 6 CFU - 47 ore totali
Organizzazione didattica
150 ore d'impegno totale
103 di studio individuale
35 di lezione frontale
12 di esercitazione
L'insegnamento prevede delle lezioni frontali e di laboratorio
NOTA BENE: Informazioni per studenti con disabilità e/o DSA
A garanzia di pari opportunità e nel rispetto delle leggi vigenti, gli studenti interessati possono chiedere un colloquio personale in modo da programmare eventuali misure compensative e/o dispensative, in base agli obiettivi didattici ed alle specifiche esigenze.
E' possibile rivolgersi anche al docente referente CInAP (Centro per l’integrazione Attiva e Partecipata - Servizi per le Disabilità e/o i DSA) del nostro Dipartimento o al Presidente del Corso di Studi.
Il corso introduce le basi della progettazione e dell’analisi degli algoritmi, con applicazioni pratiche all’informatica e alla matematica computazionale. Completa il percorso una parte introduttiva sull’Intelligenza Artificiale e il Machine Learning, con l’utilizzo di Python e librerie scientifiche.
Progettazione e complessità degli algoritmi
Strutture dati fondamentali
Grafi e algoritmi su grafi
Analisi di algoritmi ricorsivi e ordinamento
Laboratorio: Python per la matematica computazionale
Introduzione all’Intelligenza Artificiale e al Machine Learning
T. H Cormen
Introduction to Algorithms
The MIT Press
| Argomenti | Riferimenti testi | |
|---|---|---|
| 1 | Progettazione e complessità degli algoritmi | |
| 2 | Strutture dati fondamentali | |
| 3 | Grafi e algoritmi su grafi | |
| 4 | Analisi di algoritmi ricorsivi e ordinamento | |
| 5 | Laboratorio: Python per la matematica computazionale | |
| 6 | Introduzione all’Intelligenza Artificiale e al Machine Learning |
Per partecipare all'esame finale è necessario avere effettuato la prenotazione sul portale SmartEdu. Per eventuali problemi tecnici relativi alla prenotazione occorre rivolgersi alla Segreteria didattica.
L'esame si svolgerà in due parti.
La prima parte è un esame di laboratorio sugli argomenti in Python trattati nel corso.
La seconda parte consiste nella stesura di un progetto relativo ad uno degli argomenti trattati durante il corso.
La verbalizzazione sarà preceduta da una breve discussione sulle due prove sostenute e, nei casi dubbi, da una breve verifica orale.