Università Magna Graecia di Catanzaro
Il corso presenta le principali problematiche, metodologie, infrastrutture di calcolo, ambienti di programmazione, algoritmi e strumenti software per la memorizzazione, gestione ed analisi efficiente dei principali dati biomedici, con particolare riferimento ai dati sperimentali generati in biologia (es. dati omici quali dati genomici, proteomici, interattomici) ed ai dati utilizzati in medicina (es. biosegnali, bioimmagini, dati clinici e sanitari).
Inoltre, il corso fornisce le basi per progettare e sviluppare applicazioni parallele, distribuite, web-based o cloud-based, per la gestione ed analisi di grossi quantitativi di dati biomedici.
Infine, il corso presenta le principali tecniche per l'estrazione di conoscenza dai dati con particolare riferimento alle tecniche di preprocessing e agli algoritmi di data mining.
Collegamenti Veloci:
i. Conoscenza e capacità di comprensione (knowledge and understanding)
Conoscenza delle principali architetture di calcolo parallele e distribuite, dei principali modelli ed ambienti di programmazione parallela e distribuita;
Conoscenza delle principali metodologie per la progettazione e sviluppo di applicazioni parallele, distribuite e web-based;
Conoscenza delle principali tecniche di preprocessing dei dati e di analisi data mining
ii. Capacità di applicare conoscenza a comprensione (applying knowledge and understanding)
Capacità di effettuare l'analisi dei requisiti, la progettazione e l'implementazione di applicazioni parallele o distribuite web-based per l'analisi di grossi volumi di dati biomedici,
Capacità di valutare le principali prestazioni (speed-up e scale-up) delle applicazioni parallele o distribuite.
Capacità di condurre un esperimento di analisi dati comprendente preprocessing, scelta della tecnica di data mining (es. classificazione, clustering, regressione), valutazione della qualità dei risultati.
Capacità di utilizzo dei linguaggi/librerie/ambienti software per la progettazione e sviluppo di applicazioni parallele o distribuite o web/cloud-based (MPI,WebML).
Capacità di utilizzo dei linguaggi/ambienti software per l'analisi dati (Python, Weka).
iii. Autonomia di giudizio (making judgement)
Capacità di raccogliere e interpretare i dati rilevanti ai fini della progettazione di applicazioni parallele o distribuite o al fine di condurre di un esperimento di analisi dati;
Capacità di integrare le conoscenze di diverse tipologie di dati (es. dati omici) e di gestire la complessità di un esperimento di analisi dati che comprende vari passi.
Capacità di impostare un esperimento con dati incompleti.
iv. Capacità di apprendimento (learning skills)
Capacità di studiare in un modo ampiamente auto-gestito o autonomo.
Capacità di studiare e analizzare articoli scientifici nel settore informatico.
v. Abilità comunicative (communication skills)
Capacità di comunicare la progettazione di un sistema software o di un esperimento di analisi dati tramite la stesura di relazioni tecniche o la presentazione orale tramite slides
Introduzione al corso: Motivazioni e casi applicativi.
PARTE I: Calcolo Parallelo
Architetture parallele (Tassonomia di Flynn, Tassonomia estesa di Tanen baum)
Richiami di Sistemi Operativi (Processi, Scheduling dei processi, Multiprogrammazione, Comunicazione e Interazione tra processi)
Modelli di calcolo parallelo: ambiente globale (shared-memory) e ambiente locale (message-passing)
Cenni a Semafori e Monitor
Paradigmi a memoria condivisa: OpenMP
Paradigmi a scambio messaggi: MPI
Data Parallelism e Task Parallelism
Thread: Programmazione Multithreaded in Java
Metriche ed indici per la valutazione delle prestazioni (legge di Amhdal, speed-up, scale-up)
PARTE II: Cloud Computing
Introduzione al Cloud Computing
Virtualizzazione
La Definizione NIST (National Institute of Standards and Technology) di Cloud Computing:
Caratteristiche: on demand self service, broad network access, resource pooling, rapid elasticity, measured services
Modelli di Cloud Computing: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS)
Tipi di Cloud: Public Cloud, Private Cloud, Community Cloud, Hybrid Cloud
Principali Piattaforme Cloud Industriali: Amazon Web Services, Google AppEngine, Microsoft Azure
Principali Piattaforme Cloud Open Source: OpenNebula, Eucapyptus
Sviluppo di applicazioni Cloud su Google AppEngine
PARTE III: Analisi e progettazione di applicazioni web-based
Richiami ad Internet, World Wide Web, protocollo HTTP
Evoluzione Web: distribuzione di contenuti vs erogazione di applicazioni
Architettura multi-tier delle applicazioni Web-based
° Elaborazione lato client: Client-side scripting & programming (JavaScript, Java Applet)
° Elaborazione lato server: Server-side scripting and programming (JSP, Java Servlets)
° Accesso ai dati: Data access layer (JDBC)
Analisi e progettazione delle applicazioni Web
° Analisi dei requisiti, Specifica, Progettazione, Realizzazione e rilascio, Verifica e manutenzione
° Uso del linguaggio di specifica WebML: modellazione dei dati, dell'ipertesto, della navigazione
° Uso dello strumento WebRatio per la progettazione e sviluppo di applicazioni web-based
PARTE IV: Data Mining
Preprocessing dei dati in biologia e medicina (data cleaning, data reduction, normalization, data transformation, distribuzione statistica dei dati)
Esempi di analisi data mining di dataset in biologia e medicina
Principali misure di qualità nella classificazione (accuratezza, precisione)
Valutazione di un esperimento di classificazione (10-fold cross validation, leave-1-out)
Didattica Frontale 72 Ore
Studio Individuale 153
Testi di Riferimento
PARTE I
° A. Grama, A Gupta, G. Karypis, V. Kumar. Introduction to Parallel Computing, Addison-Wesley, 2003
° Bruce Eckel - Thinking in JAVA, 4th Edition, Prentice Hall, Capitolo Concurrency sui thread.
Scaricabile qui: https://ia800103.us.archive.org/20/items/TIJ4CcR1/TIJ4-cc-R1.pdf
° I. Foster. Designing and Building Parallel Programs. Addison-Wesley, 1995, Versione online
disponibile qui: http://www.mcs.anl.gov/dbpp.
PARTE II
Christian Baun, Marcel Kunze, Jens Nimis, Stefan Tai. Cloud Computing. Web-Based Dynamic IT Services, Springer Science & Business Media, 2011. ISBN 978-3-642-20916-1 http://www.springer.com/gp/book/9783642209161
Rajkumar Buyya, Christian Vecchiola, S. Thamarai Selvi: Mastering Cloud Computing - Foundations and Applications Programming. Morgan Kaufmann, 468 Pages, May 2013, ISBN: 978-0-12-411454-8. http://www.buyya.com/MasteringClouds/
PARTE III
Stefano Ceri, Piero Fraternali, Aldo Bongio, Marco Brambilla, Sara Comai, Maristella Matera, Progettazione di dati e applicazioni per il web, McGraw Hill, 2003, ISBN: 8838661389 http://www.ateneonline.it/LibroAteneo.asp?item_id=1588
WebML: www.webml.org
WebRatio: www.webratio.com
Core Web Programming: http://www.corewebprogramming.com/
PARTE IV
Ian H. Witten, Eibe Frank, Mark A. Hall. Data Mining: Practical Machine Learning Tools and Techniques, Morgan Kaufmann Series in Data Management Systems.
Articoli scientifici forniti dal docente
Diapositive fornite dal docente
Le modalità sono indicate dal Regolamento didattico d’Ateneo.
L'esame finale sarà svolto attraverso: (1) l'elaborato di un progetto individuale o di gruppo, (2) l'approfondimento di un argomento inerente il corso; (3) una prova orale.
1. Il progetto comprenderà l'analisi dei requisiti, la progettazione e lo sviluppo di un'applicazione parallela o distribuita o web-based, eventualmente usando metodologie e ambienti di progettazione software assistita da computer (es. WebML e WebRatio). In alternativa, il progetto comprenderà la realizzazione di un esperimento completo di analisi dati (preprocessing, feature selection, data mining, valutazione qualità dell'analisi, visualizzazione dei risultati) a partire da un dataset fornito dal docente e utilizzando piattaforme open source di analisi data. Il progetto dovrà contenere il codice realizzato, una relazione tecnica ed una presentazione che verrà presentata dallo studente durante la prova orale.
2. L'approfondimento consisterà nella stesura di una relazione tecnica individuale riguardante l'approfondimento di uno dei temi svolti a lezione.
3. La prova orale verterà sul programma svolto a lezione.
Voto finale in trentesimi
Il voto finale è una media ponderata dalla valutazione del progetto (40%), della tesina (30%) e della prova orale (30%)
|
Conoscenza e comprensione argomento |
Capacità di analisi e sintesi |
Utilizzo di referenze |
Non idoneo |
Importanti carenze. Significative inaccuratezze |
Irrilevanti. Frequenti generalizzazioni. Incapacità di sintesi |
Completamente inappropriato |
18-20 |
A livello soglia. Imperfezioni evidenti |
Capacità appena sufficienti |
Appena appropriato |
21-23 |
Conoscenza routinaria |
E’ in grado di analisi e sintesi corrette. Argomenta in modo logico e coerente |
Utilizza le referenze standard |
24-26 |
Conoscenza buona |
Ha capacità di a. e s. buone gli argomenti sono espressi coerentemente |
Utilizza le referenze standard |
27-29 |
Conoscenza più che buona |
Ha notevoli capacità di a. e s. |
Ha approfondito gli argomenti |
30-30L |
Conoscenza ottima |
Ha notevoli capacità di a. e s. |
Importanti approfondimenti |