phone icon Chiamaci 800.128.606

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

 L’esame finale si svolge in forma scritta e consiste in un test a risposta multipla con 31 domande, così da garantire la possibilità di conseguire la lode. I quesiti sono formulati per valutare il livello di raggiungimento dei risultati di apprendimento attesi. Il voto finale tiene conto del voto ottenuto dallo studente attraverso la partecipazione alla didattica interattiva e del voto ottenuto nell’esame finale ed è determinato, quindi, dalla somma delle due valutazioni. Il voto finale è espresso in trentesimi.

Propedeuticità

 Nessuna propedeuticità obbligatoria.

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

Le attività di didattica, suddivise tra didattica erogativa (DE) e didattica interattiva (DI), saranno costituite da 6 ore per CFU e ripartite secondo una struttura di almeno 2,5 ore di DE (tenuta in considerazione la necessità di riascolto) e di 1 ora di DI per ciascun CFU.

Attività didattica erogativa (45 ore)

45 lezioni frontali videoregistrate, della durata di circa 30 minuti ciascuna (tenuta in considerazione la necessità di riascolto) sempre disponibili in piattaforma.

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.