Politecnico di Torino | |||||||||||||||||
Anno Accademico 2016/17 | |||||||||||||||||
01RLCPG Piattaforme mobili e servizi cloud |
|||||||||||||||||
Corso di Laurea Magistrale in Ingegneria Gestionale - Torino |
|||||||||||||||||
|
|||||||||||||||||
|
|||||||||||||||||
Presentazione
Questo corso si propone di completare la formazione dello studente nel campo dei sistemi ICT (Information & Communication Technologies) affrontando aspetti fondamentali per la creazione di soluzioni informatiche moderne, quali la loro capacità di adattarsi a dispositivi mobili e la possibilità fare ricorso a risorse di archiviazione ed elaborazione distribuite e disponibili on-demand secondo i paradigmi del cloud computing.
Per quanto riguarda l’ambito correlato alla progettazione e realizzazione di applicazioni per dispositivi mobili, verranno studiati gli aspetti relativi all’esistenza di vincoli connessi alle caratteristiche peculiari dei dispositivi, alla disponibilità di soluzioni alternative per l’interazione con l’utente, alla possibilità di sfruttare informazioni di localizzazione ed alle criticità associate alla gestione delle basi di dati e delle comunicazioni di rete. Verrà usata come principale piattaforma di riferimento l’ambiente di sviluppo rappresentato dal sistema Android (per smartphone e tablet, ma anche per dispositivi indossabili, domestici, ecc.), con collegamenti all’ecosistema iOS. Con riferimento ai contenuti correlati alle architetture distribuite, verranno analizzate le soluzioni cloud di tipo privato e pubblico, con una panoramica sulle strategie di virtualizzazione e le tecnologie le per la realizzazione di servizi Web e di infrastrutture di tipo SaaS, PaaS e IaaS. |
Risultati di apprendimento attesi
- Conoscenza dei principi basilari della programmazione su dispositivi mobili. Capacità di applicare tali principi alla progettazione di soluzioni applicative concrete per dispositivi diversi.
- Conoscenza delle caratteristiche di base ed avanzate dell’ambiente Android. Capacità di applicare la conoscenza delle peculiarità delle tecniche di programmazione in ambiente Android alla soluzione di problemi complessi. - Conoscenza delle tecnologie chiave del Web 2.0. Capacità di applicare tali tecnologie nella realizzazione di servizi distribuiti. - Conoscenza degli approcci di virtualizzazione e delle piattaforme di archiviazione ed elaborazione cloud private e pubbliche disponibili. Capacità di progettare soluzioni cloud basate sulle principali tecnologie commerciali ed open source, ed integrazione nell’ambito di casi di studio concreti. |
Prerequisiti / Conoscenze pregresse
Conoscenza della programmazione ad oggetti e capacità di programmare in linguaggio Java. Fondamenti delle reti di calcolatori (cablate e wireless) e della rete Internet (e relative applicazioni). Basi relative alle tecnologie ed ai linguaggi del Web.
|
Programma
Programma di massima delle 53 ore di lezione:
- Programmazione su dispositivi mobili, tecnologie abilitanti (2 ore) - Introduzione ad Android e confronto con altre piattaforme, es. iOS (2 ore) - Ambiente di sviluppo ed emulatore, progettazione e realizzazione di applicazioni (2 ore) - Il linguaggio Java, dal mondo desktop a quello mobile (3 ore) - Componenti della piattaforma e gestione delle risorse (3 ore) - Gestione degli eventi, interazione con l’utente, definizione dell’interfaccia grafica (6 ore) - Persistenza: dati locali al dispositivo ed accesso a database esterni (9 ore) - Comunicazioni di rete (3 ore) - Mappe, servizi di localizzazione ed altre funzionalità avanzate (6 ore) - Tecnologie cloud, paradigmi PaaS, SaaS e IaaS (3 ore) - Servizi Web e virtualizzazione (6 ore) - Piattaforme cloud private (OpenStack, OpenNebula) e pubbliche (Amazon, Google, Microsoft) (4 ore) - Servizi cloud in mobilità (4 ore) |
Organizzazione dell'insegnamento
Il corso include 27 ore di esercitazioni di laboratorio. Le esercitazioni mirano a sperimentare le funzionalità principali dell’ambiente Android e a supportare lo sviluppo delle capacità relative alla risoluzione di problemi di progettazione e codifica in questo, ma anche altri, ambienti. Le esercitazione includono, inoltre, attività volte a supportare la comprensione delle strategie di configurazione delle piattaforme cloud considerate ed alla realizzazione di servizi sperimentali, e prevedono lo svolgimento di esercizi specifici di approfondimento delle parti teoriche, propedeutici alla predisposizione del progetto eventualmente oggetto dell’esame.
|
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
In aggiunta al materiale utilizzato dal docente in aula ed in laboratorio (lucidi, dispense, progetti Java, ecc.), reso disponibile in formato elettronico tramite il Portale della Didattica, potrà essere utile consultare alcuni testi per approfondire determinati aspetti del corso:
- Android 6. Guida per lo Cviluppatore, Apogeo, 2016 - Android Application Development Cookbook, Packt Publishing, 2016 - Android 6 for Programmers: An App-Driven Approach, Pearson, 2015 - Cloud Computing: Concepts, Technology & Architecture, Prentice Hall, 2013 - Architecting the Cloud: Design Decisions for Cloud Computing Service Models (SaaS, PaaS, & IaaS), Wiley, 2014 - Amazon Web Services in Action, Manning, 2015 |
Criteri, regole e procedure per l'esame
L’esame consiste in una prova scritta che verte su tutto il programma. La prova scritta può essere interamente sostituita con un lavoro individuale o di gruppo che preveda la realizzazione di un’applicazione per dispositivi mobili concordata con il docente ed un eventuale committente esterno, in grado di interagire in maniera efficace con l’utente e con il contesto, oltre che di accedere alle informazioni ed ai servizi cloud disponibili o realizzati al fine di risolvere un particolare problema e/o soddisfare una determinata esigenza.
|
Orario delle lezioni |
Statistiche superamento esami |
|