Tecnologie del Linguaggio Naturale
Corso "Tecnologie del Linguaggio Naturale" per la Laurea Magistrale in Informatica.
Intelligenza Artificiale e Laboratorio 18/19
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).
Agenti Intelligenti
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”.
Nella prima parte del corso vengono forniti gli strumenti metodologici
per comprendere i sistemi multiagente discutendo le architetture di
singoli agenti e le principali problematiche legate all’interazione fra
agenti. La seconda parte del corso presenta alcuni linguaggi e ambienti
specifici per sistemi multiagente, in modo da consentire agli studenti
di implementare alcuni esempi significativi.
Modelli e architetture avanzati di basi di dati, a.a. 2018/19
Modelli e Architetture Avanzate di Basi di Dati (MAADBD) è un corso avanzato su modelli di dati ed architetture dei sistemi databases.
Consiste di due moduli, il primo dedicato agli aspetti architetturali, tenuto in aula.
Il secondo modulo è dedicato ai Nosql databases.
Il corso si pone un duplice obiettivo.
Per quanto riguarda i modelli, l'obiettivo è che lo studente sia in grado di affrontare con successo applicazioni in una vasta gamma di ambienti diversi, avendo competenze sui principali modelli per dati strutturati alternativi al modello relazionale (object-oriented e object-relational), e sui NoSql databases. Questi ultimi sono un paradiogma di rappresentazione e gestione dei dati molto ampio e variegato, che va dai grafi alle mappe chiave-valore, dai documenti in JSON alle strutture dati condivise sul WEB.
Per quanto riguarda le architetture, l'obiettivo è che lo studente sia in grado di migliorare la performance per applicazioni critiche, avendo una precisa comprensione dei problemi e delle soluzioni di implementazione ed architetturali per sistemi database centralizzati e distribuiti, con particolare riferimento ai sistemi database relazionali e con l'inclusione della gestione dei malfunzionamenti e della concorrenza.
Per quanto riguarda le architetture, si vedranno anche le architetture in cluster per la gestione distribuita dei dati, anche tramite repliche e partizionamento dei dati, con algoritmi paralleli e soluzioni algoritmiche che fanno uso del paradigma di Map Reduce.
Gli studenti potranno realizzare una applicazione software che acceda ad entrambe le tipologie di DBMS (relazionale e NOSQL) e potranno confrontare le due soluzioni in termini prestazionali.
Modellazione Concettuale per il Web Semantico
Il corso permette di acquisire la conoscenza di base dei linguaggi e delle tecnologie del Web Semantico per la rappresentazione della conoscenza, incluse: capacità di progettare e realizzare semplici ontologie con editor di ontologie (Protégé); familiarità con il ragionamento automatico; conoscenza delle risorse ontologiche e linguistiche utili per lo sviluppo di applicazioni interattive intelligenti; capacità di gestire la pubblicazione, l’integrazione e l’interrogazione dei dati nel paradigma Linked Data e di configurare e utilizzare una Linked Data Platform.
Modellazione di Dati e Processi Aziendali
Apprendimento Automatico / Introduction to Data Mining, a.a. 18/19
Il corso copre le basi per comprendere e affrontare i problemi dell'Apprendimento Automatico e del Data Mining e più in generale le problematiche relative al processo di estrazione della conoscenza da basi di dati (KDD).
Oltre all'esposizione delle principali tematiche che caratterizzano l'apprendimento automatico (classificazione, clustering, estrazione di pattern ricorrenti) si vuole fornire allo studente una base di conoscenza di statistica e di teoria dell'informazione necessari per capire e utilizzare i fondamenti teorici di questi approcci.
Inoltre, si vogliono proporre alcune tecniche per affrontare l'analisi dei dati su grandi volumi di dati, quali le tecniche di pre-processing (pulizia dei dati, il campionamento, selezione delle dimensioni) e la validazione sui dati dei risultati dell'analisi e la loro interpretazione.
Infine si vuole proporre allo studente un ambiente di programmazione e analisi dati. Si utilizzerà Sci-kit Learn in Python e si proporranno alcune esperienze pratiche di analisi dataset pubblici e reali (UCI).
This course covers the fundamentals to understand and tackle the problems of Machine Learning and Data Mining.
More in general, it treats the tasks and the steps of the Knowledge Discovery Process from Data (KDD).
Beyond the main topics that characterise Machine Learning (classification, clustering, pattern discovery) we wish to provide a base knowledge of statistics and information theory, which are needed to understand the theoretical foundations of these approaches.
Furthermore, we wish to illustrate some techniques to afford the data analysis on big data, such as for the pre-processing steps (data cleaning, sampling, feature selection) and the evaluation of the analysis results and their interpretation on data.
Finally, we wish to use a programming and data science environment. We will use Sci-kit Learn in Python and we will propose some practical experience of data analysis on public and real datasets (UCI).