72796 - PROGRAMMAZIONE DI APPLICAZIONI DATA INTENSIVE

Scheda insegnamento

Anno Accademico 2017/2018

Conoscenze e abilità da conseguire

Al termine del corso lo studente è in grado di progettare e sviluppare componenti e applicazioni per gestire ed elaborare dati strutturati e destrutturati in scenari di interesse aziendale, impiegando moderne architetture e tecnologie di rete e di accesso a basi di dati remote.

Programma/Contenuti

Il corso fornisce competenze teoriche e pratiche sull'impiego di metodi e tecnologie per lo sviluppo di applicazioni data-intensive secondo moderne architetture computazionali e di rete. In questo contesto, il termine data-intensive indica applicazioni orientate alla gestione ed elaborazione sia di dati strutturati in database relazionali, sia di dati destrutturati testuali, come documenti, pagine Web, tweets, e-mail etc.  

Sito web del corso (https://datascienceunibo.github.io/dia/)

 

MOTIVAZIONI

Tra le applicazioni data-intensive aziendali, i sistemi di e-commerce rappresentano un case study esaustivo poiché richiedono applicazioni per la gestione e l'elaborazione di dati strutturati e destrutturati sviluppate con tecnologie Web, client-server e applicazioni mobili:

  • per quanto riguarda i dati strutturati, occorrono componenti e applicazioni con cui  effettuare acquisti e anche applicazioni per l'elaborazione intelligente dei dati, come quelle di recommendation che dallo storico delle combinazioni di acquisto, prevedano le propensioni di acquisto di ogni cliente;
  • per quanto riguarda i dati destrutturati, occorrono applicazioni che dai commenti dei clienti/utenti, postati anche su social network come twitter, blog, formi etc., siano in grado di rilevare automaticamente la soddisfazione della clientela, la reputazione aziendale, aspetti positivi e negativi dei prodotti/servizi etc.  

 

PROGRAMMA

Il programma è suddiviso in due parti: 

applicazioni data-intensive per la gestione dei dati

  • Paradigmi client-server a 2 e 3 livelli, architetture e componenti ODBC/JDBC di accesso a db, applicazioni Java/JSP con transazioni e object-relational mapping
  • Metodologia di progettazione e sviluppo Interaction Flow Modeling Language (IFML), web e mobile web applications
  • Metodi e tecnologie per la raccolta e gestione di dati destrutturati: documenti, pag. web, tweets, blogs, email etc. 

Applicazioni data-intensive per l'elaborazione dei dati

  • prevedere le propensioni di acquisto dei clienti (i.e. recommendation) e la soddisfazione dalle loro recensioni attraverso metodi di collaborative filtering, svd etc.
  • impiego via API di librerie e tool (open source) per l'elaborazione intelligente dei dati
Casi di studio ed esercitazioni di laboratorio
  • sviluppo di applicazioni per l'e-commerce con dati reali di Amazon: carrello della spesa e transazioni, combinazioni di acquisto e applicazioni di recommendation, elaborazione di commenti (e.g. tweets, recensioni etc.) per rilevare la soddisfazione della clientela.

Testi/Bibliografia


  • Dispense e riferimenti bibliografici forniti dal docente
  • Software e data set disponibili in laboratorio e scaricabili gratuitamente 
  • Interaction Flow Modeling Language – Model-Driven UI Engineering of Web and Mobile Apps with IFML. Marco Brambilla and Piero Fraternali.  

 

Metodi didattici

Lezioni in aula affiancate da esercitazioni in laboratorio dove sviluppare soluzioni e applicazioni presentate in aula.

Modalità di verifica dell'apprendimento

Progetto di laboratorio svolto in gruppo con discussione orale individuale.

Strumenti a supporto della didattica

  • Attività di laboratorio assistite
  • Software open source disponibile in laboratorio e online

Link ad altre eventuali informazioni

https://datascienceunibo.github.io/dia/

Orario di ricevimento

Consulta il sito web di Gianluca Moro

Consulta il sito web di Roberto Pasolini