Intelligenza Artificiale e Sistemi Informatici 'Pietro Torasso' (ex Sistemi per il Trattamento dell'Informazione)

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 anche alle basi di dati di nuova generazione, i NoSQL databases, adatti a gestire grandi moli di dati non strutturati e ad 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 come analisi dei messaggi testuali nei microblogs quali Twitter.


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).

L'obiettivo principale del corso è di fornire le basi teoriche e pratiche per l'utilizzo di linguaggi, metodologie e tecniche per la modellazione concettuale di dati e processi al fine di realizzare efficaci sistemi informativi. La prima parte del corso tratterà sulla modellazione dei dati, con enfasi sugli approcci fact- e object-oriented al fine di comprendere le entità rilevanti, le relazioni e i vincoli esistenti tra di esse. La seconda parte del corso ha il fine di fornire gli strumenti per modellare e valutare processi, in particolare (business) process che regolano l'organizzazione del lavoro delle aziende per raggiungere i propri fini strategisci. In particolare, lo scopo è di fornire agli studenti le competenze generali e pratiche di base sull'analisi organizzativa e funzionale delle aziende e sulla ingegnerizzazione e re-ingegnerizzazione dei loro processi. Il corso comprende il trattamento degli aspetti sia modellistici che metodologici legati al trattamento dei dati e dei processi aziendali. Per quanto riguarda gli aspetti modellistici, verranno introdotti linguaggi e modelli per la specifica delle strutture, delle informazioni e delle funzionalità delle aziende, per modellare i processi e simularne il funzionamento al fine di valutare i parametri necessari ad una loro successiva ristrutturazione. Per quanto riguarda gli aspetti metodologici, verranno discusse le fasi principali come la raccolta e analisi dei requisiti, l'analisi dell'organizzazione e il progetto e l’ottimizzazione dei nuovi processi dell'azienda.

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 on data of the analysis results and their interpretation.

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 experiences of data analysis on public and real datasets (UCI).