Applicazioni web e cloud

A.A. 2023/2024
6
Crediti massimi
64
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
L'insegnamento ha lo scopo di introdurre i concetti fondamentali riguardanti il design e lo sviluppo di applicazioni web e cloud, illustrando i principi di funzionamento, i modelli di servizio e le tecnologie alla base della programmazione web e del paradigma cloud computing.
Risultati apprendimento attesi
Al termine dell'insegnamento lo studente dovrà conoscere i concetti fondamentali della programmazione web e i principi di funzionamento del paradigma cloud computing. Inoltre, attraverso prove di laboratorio, lo studente dovrà essere in grado di progettare e sviluppare applicazioni web e cloud mostrando una buona padronanza delle metodologie e tecnologie apprese durante l'insegnamento.
Corso singolo

Questo insegnamento può essere seguito come corso singolo.

Programma e organizzazione didattica

Edizione unica

Periodo
Primo semestre

Programma
L'insegnamento ha come primo obiettivo l'analisi dei concetti fondamentali e tecnologie alla base del design e dello sviluppo di applicazioni web. L'insegnamento discuterà successivamente i concetti fondamentali, i principi di funzionamento, i modelli di servizio, i modelli di deployment e le tecnologie alla base del cloud computing. Per la realizzazione degli obiettivi sopra enunciati, sono previste lezioni frontali (32 ore - 4 cfu) e lezioni in laboratorio con esercitazioni pratiche (32 ore - 2 cfu).

In particolare, la parte teorica si compose di due moduli principali.

Nel primo modulo dell'insegnamento verrà posto l'accento sui concetti fondamentali e alcune tecnologie alla base del design e dello sviluppo di applicazioni web e cloud.
1. Pre-concetti. URL, HTTP.
2. HTML, CSS.
3. Javascript.
4. Panoramica di framework e linguaggi avanzati per lo sviluppo web.

Nella seconda parte dell'insegnamento verranno presentate le caratteristiche principali, i modelli di servizio e le tecnologie alla base del funzionamento del cloud computing. Verranno inoltre approfondite le applicazioni cloud basate su servizi RESTful discutendo inoltre i principali modelli di rappresentazione del dato XML e JSON.
1. Cloud Computing. Predecessori del Cloud computing. Requisiti e caratteristiche. Modelli di servizio. Modelli di deployment.
2. IaaS, PaaS, SaaS: Definizioni. Tecnologie. Casi di studio.
3. Migrazione verso la cloud. Costi del cloud computing (Cloudonomics). Problematiche del cloud computing.
4. Applicazioni REST

La parte pratica in laboratorio approfondirà i concetti discussi nella parte teorica attraverso esercizi e prove pratiche in laboratorio con particolare riferimento allo sviluppo di applicazioni web e cloud.
Prerequisiti
Conoscenza dei concetti base delle architetture dei calcolatori e fondamenti di programmazione.
Metodi didattici
La parte di teoria viene svolta mediante lezioni frontali. La parte di laboratorio consta di esercitazioni e attività pratiche che mirano ad approfondire i concetti appresi in teoria.
Materiale di riferimento
Dispense e slide disponibili alla pagina web dell'insegnamento (http://cardagnaawc.ariel.ctu.unimi.it/v5/home/Default.aspx)

HTML5, CSS3, JavaScript
- G. Gigliotti, HTML5 e CSS3, Apogeo
- in alternativa HTML5 digital classroom, Osborn, Jeremy, 2011
- W3School tutorials, https://www.w3schools.com/

CLOUD
- L. Badger, T. Grance, R. Patt-Corne, J. Voas, Cloud Computing Synopsis and Recommendations, NIST, http://csrc.nist.gov/publications/nistpubs/800-146/sp800-146.pdf
- B. Sosinsky, Cloud Computing Bible, 2011

REST services
- R.T. Fielding, Architectural Styles and the Design of Network-based Software Architectures, https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
- L. Richardson and S. Ruby, RESTful Web Services, http://www.crummy.com/writing/RESTful-Web-Services/
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste in una prova scritta, un progetto e una prova orale, tutte obbligatorie. La prova scritta, della durata di due ore, punta ad accertare, tramite una serie di domande a risposta aperta e chiusa, le conoscenze dello studente su tutti gli argomenti trattati nell'insegnamento. Il progetto mira ad approfondire gli aspetti pratici di uno degli argomenti trattati nell'insegnamento. La discussione orale si concentra sugli argomenti affrontati nello sviluppo del progetto e mira a valutarne la qualità. Una volta superate tutte le prove, viene formulata la valutazione complessiva, espressa in trentesimi, tenendo conto dei seguenti parametri: grado di conoscenza degli argomenti, capacità di applicare le conoscenze alla risoluzione di un progetto concreto, qualità del progetto sviluppato, capacità di ragionamento critico, chiarezza espositiva e proprietà di linguaggio.
INF/01 - INFORMATICA - CFU: 6
Laboratori: 32 ore
Lezioni: 32 ore
Siti didattici
Docente/i
Ricevimento:
Su appuntamento
Ufficio docente presso il Dipartimento di Informatica in Via Celoria 18, Milano (MI)
Ricevimento:
su appuntamento
stanza 7008