Il corso si pone l'obiettivo di studiare nelle sue principali funzionalità uno strumento reale e di ampia diffusione per la gestione delle basi di dati come Oracle. 

Il corso introduce alle basi di dati di nuova generazione, i NoSQL databases, adatti a gestire grandi moli di dati non strutturati e architetture di gestione distribuita dei dati come Hadoop e Map Reduce (in applicazione ai cosiddetti big data). 

Si propongono esperienze in laboratorio durante le quali si svilupperanno applicazioni di gestione e analisi di grossi molti di dati quali analisi dei messaggi testuali nei microblogs quali Twitter.

Il corso ha l’obiettivo di introdurre gli aspetti principali dei sistemi multiagente, ossia sistemi composti di elementi computazionali che interagiscono, noti come agenti. Gli agenti sono sistemi computazionali capaci di eseguire azioni in modo autonomo, e di interagire con altri agenti svolgendo attività sociali come cooperazione, coordinamento, negoziazione. I sistemi multi agente costituiscono una metafora naturale per modellare un ampio spettro di “artificial social systems”. Il corso consiste di una parte metodologica e di una di laboratorio. Nella parte metodologica verranno trattate le architetture di singoli agenti e le principali problematiche legate all’interazione fra agenti. Nella parte di laboratorio saranno presentati alcuni linguaggi e ambienti per agenti, e sarà proposto qualche semplice sistema multiagente da implementare con questi strumenti.

 Obiettivi formativi

  • Il corso ha l’obiettivo di approfondire le conoscenze di Intelligenza Artificiale con particolare riguardo alle capacità di un agente intelligente di fare inferenze sulla base di una rappresentazione esplicita della conoscenza sul dominio. Alle competenze metodologiche si affiancano competenze progettuali perché il corso prevede la sperimentazione di metodi di ragionamento basati sul paradigma della programmazione logica e lo sviluppo di un agente intelligente in grado di esibire sia comportamenti reattivi che deliberativi (utilizzando ambienti basati su regole di produzione).

Prerequisiti e propedeuticità


    • Competenze attese in ingresso (richieste all'inizio del corso).

      Per essere proficuamente seguito, il corso richiede conoscenze di base di Intelligenza Artificiale in particolare per quanto riguarda la nozione di agente intelligente, le problematiche di risoluzione automatica di problemi e i concetti basilari di rappresentazione della conoscenza. Per quanto riguarda le competenze di sviluppo/implementazione è richiesta la conoscenza di tecniche di programmazione e le nozioni di base di ingegneria del software.

    • Eventuali corsi propedeutici (forniscono le "competenze attese in ingresso").

      Il corso di "Sistemi Intelligenti" della laurea triennale (o il corso da esso mutuato di “Istituzioni di sistemi intelligenti” per la laurea magistrale) fornisce le conoscenze attese in ingresso. Gli studenti che non abbiano esperienza nel settore troveranno utile documentarsi con attenzione sul testo S. Russell, P. Norvig. Intelligenza Artificiale, Un approccio moderno, terza edizione, Pearson/Prentice Hall concentrando l’attenzione sui capitoli 2, 3, 6, 7, 8 e 9.

Competenze attese in uscita

Al termine del corso lo studente deve aver acquisito sia competenze metodologiche relative a meccanismi di ragionamento (anche in presenza di incertezza), che confidenza con i formalismi per la rappresentazione della conoscenza e con le strategie per la pianificazione automatica. Mentre queste conoscenze possono essere ascritte alle problematiche di Know What, il corso attraverso la parte di laboratorio sviluppa anche le competenze di Know How, in particolare la capacità di progettare e implementare un agente intelligente con capacità sia deliberative che di monitoraggio del proprio piano di azione. In particolare, lo studente sperimenterà lo sviluppo di metodi intelligenti utilizzando strumenti basati sulla programmazione logica, su linguaggi a regole e sul paradigma dell’Answer Set Programming.

Nell’ambito del corso e dell’esame verrà incoraggiata e valutata la capacità di integrare le conoscenze metodologiche con quelle progettuali al fine di fare scelte motivate su quali strategie/metodologie/strumenti adottare, valutando i benefici e le criticità di tali scelte. La richiesta di presentare in sede d’esame una relazione sulla parte progettuale svolta presuppone che lo studente abbia maturato la capacità di comunicare le principali scelte effettuate, argomentando in modo chiaro le motivazioni di tali scelte.

Lo studio di problematiche complesse (di cui non sempre è disponibile un trade–off) fornisce le basi per una esperienza di apprendimento in gran parte autonomo, che sarà utile nelle fasi successive della carriera di ricerca o professionale.