Applicazioni web e cloud

A.A. 2024/2025
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 (https://myariel.unimi.it/course/view.php?id=2960)

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 dello sviluppo di applicazioni web e cloud. 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
Docente/i
Ricevimento:
Su appuntamento
Ufficio docente presso il Dipartimento di Informatica in Via Celoria 18, Milano (MI)
Ricevimento:
su appuntamento
stanza 7008