Ingegneria Informatica e dell’Intelligenza Artificiale Applicata LM-32
Intelligenza artificiale distribuita
Settore scientifico disciplinare | Numero crediti formativi (CFU) | Docente |
ING-INF/05 | 9 | -- Nessun gestore -- |
Risultati di apprendimento attesi
• Conoscenza e comprensione dei principi base e delle proprietà dei sistemi distribuiti complessi.
• Conoscenza e comprensione dei principali algoritmi distribuiti.
• Conoscenza e comprensione dei principi base e delle principali tecnologie per lo sviluppo di sistemi software distribuiti.
• Comprensione del concetto di intelligenza artificiale distribuita.
• Capacità di programmare algoritmi distribuiti.
• Capacità di applicare tecniche di coordinamento distribuito.
• Conoscenze e capacità di comprensione:
• Capacità di programmare simulazioni di sistemi distribuiti.
Conoscenza e capacità di comprensione
Gli studenti acquisiranno una solida base sui principi, gli algoritmi e le tecnologie dei sistemi distribuiti complessi, con attenzione particolare ai sistemi software adattivi basati su intelligenza artificiale. Al termine del percorso, gli studenti saranno in grado di:
- comprendere i concetti fondamentali e le metodologie per la progettazione di sistemi distribuiti;
- applicare gli algoritmi studiati alla risoluzione di problemi tipici;
- affrontare semplici casi di sviluppo, formulando soluzioni originali a partire dalle competenze acquisite.
Abilità di giudizio
Gli studenti acquisiranno la capacità di:
- collegare concetti di base provenienti da diversi ambiti dell’ingegneria informatica e dell’intelligenza artificiale distribuita, per comprendere meglio il funzionamento dei sistemi distribuiti;
- valutare e discutere soluzioni progettuali lavorando in un team.
Abilità di comunicare
Gli studenti svilupperanno la capacità di:
- comunicare i principi, le metodologie relativi a sistemi di intelligenza artificiale distribuita;
- presentare e discutere soluzioni progettuali con interlocutori specialisti (ad esempio nell’ambito dell’ingegneria del software) e non specialisti (stakeholder, utenti finali);
Capacità di apprendimento
Gli studenti svilupperanno la capacità di:
- aggiornarsi sugli sviluppi teorici e applicativi nel campo dei sistemi distribuiti e dell’intelligenza artificiale;
- affrontare nuove problematiche progettuali di livello introduttivo, applicando metodologie apprese e ampliando progressivamente le proprie competenze.
ROGRAMMA DEL CORSO
- Intelligenza artificiale distribuita e sistemi complessi;
- Algoritmi distribuiti;
- Coordinamento;
- Sistemi multiagente;
- Attività di laboratorio finalizzata ad offrire agli studenti la possibilità di comprendere la gestione pratica di sistemi distribuiti basati su intelligenza artificiale attraverso l’implementazione di sistemi multi-agente e la progettazione di algoritmi distribuiti per il coordinamento e la cooperazione tra tali sistemi.
Modalità di accertamento dei risultati di apprendimento acquisiti dallo studente
L’accertamento dei risultati di apprendimento avviene attraverso una combinazione di metodi:
- Discussioni svolte durante le lezioni interattive, utili a verificare la capacità degli studenti di argomentare, confrontarsi e applicare i concetti affrontati.
- Valutazione dei risultati dell’esame finale, che misura il raggiungimento complessivo dei risultati di apprendimento attesi, sia in termini di conoscenza teorica che di capacità applicative.
Modalità di esame
Propedeuticità
Prerequisiti
Per partecipare con profitto al corso, è auspicabile che lo studente possieda:
- conoscenze di base di programmazione (preferibilmente in linguaggi orientati agli oggetti come Java o Python);
- fondamenti di algoritmi e strutture dati, utili per comprendere e implementare algoritmi distribuiti;
- basi di matematica (logica, probabilità, algebra lineare), necessarie per la formalizzazione e l’analisi di modelli distribuiti;
- nozioni introduttive di reti di calcolatori e protocolli di comunicazione;
- comprensione di base dei servizi web.
Modalità di erogazione del corso
Il corso prevede una combinazione di attività didattiche erogative e interattive, così da integrare lo studio individuale con momenti di confronto e chiarimento. Le lezioni videoregistrate permettono un apprendimento autonomo e flessibile, mentre le sessioni interattive online favoriscono la discussione e l'approfondimento.
Risorse
Il docente consiglia l’integrazione del materiale fornito (videolezioni, slides, esercitazioni) con i seguenti testi, a cui il docente può fare riferimento durante le lezioni:
[1] Coulouris GF, Dollimore J, Kindberg T. Distributed systems: concepts and design. pearson education.
[2] M. Wooldridge: An Introduction to MultiAgent Systems. John Wiley and Sons, Second edition (Chichester, England).
Attività didattiche previste
Attività didattica erogativa (45 ore)
Attività di autoapprendimento
- Studio individuale dei materiali didattici (slide, dispense, videoregistrazioni, tesi consigliate).
- Svolgimento delle esercitazioni fornite dal docente durante il corso.
L'articolazione tra DE e DI, per ciascuna unità didattica, sarà organizzata coerentemente con gli obiettivi formativi specifici dell’insegnamento.
Ricevimento studenti
- Sull’ appuntamento
Obiettivi Formativi
- L’insegnamento si propone di fornire agli studenti le conoscenze e le competenze necessarie alla gestione e sviluppo di sistemi software adattivi basati su componenti distribuiti intelligenti.
- L’insegnamento contribuisce anche al potenziamento delle capacità trasversali Autonomia di giudizio, Abilità comunicative e Capacità di apprendimento degli studenti.