Programmazione web e mobile

A.A. 2025/2026
6
Crediti massimi
60
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
L'insegnamento introduce le principali tecnologie dei programmazione Web, più precisamente: i principi sui quali si fonda il Web; i principi fondamentali di progettazione di una applicazione Web; le principali tecnologie disponibili per lo sviluppo di applicazioni Web; i design pattern comunemente adottati nella programmazione di applicazioni Web per la risoluzione dei problemi ricorrenti.
Risultati apprendimento attesi
Al termine dell'insegnamento lo studente avrà acquisito le seguenti conoscenze, abilità e competenze:

Conoscenze
- Comprensione dei principi sui quali si fonda il Web e degli elementi che si sono consolidati durante la sua evoluzione.
- Comprensione dei principi fondamentali di progettazione di una applicazione Web.
- Conoscenza delle principali tecnologie disponibili per lo sviluppo di applicazioni Web.
- Conoscenza dei più comuni design pattern adottati per la risoluzione dei problemi ricorrenti nella programmazione di applicazioni Web.

Abilità
- Organizzare il progetto di una applicazione Web
- Verificare la diffusione di una tecnologia o modulo
- Testate il codice di una applicazione Web
- Valutare i risultati di performance di una applicazione Web
- Documentare le principali fasi di progettazione di una applicazione Web

Competenze
- Valutare gli strumenti tecnologici più adatti alla realizzazione di un progetto
- Valutare la coerenza di un progetto con gli obiettivi attesi
- Valutare interventi di miglioramento nelle performance di una applicazione
- Presentare le fasi di progettazione di una applicazione Web
Corso singolo

Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.

Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
Secondo semestre

Programma
corso si suddivide in cinque moduli che affronteranno gli argomenti dettagliati più sotto.

1. Storia e architettura del WWW
- Gli standard implementativi del Web
- Le ragioni della scalabilità del Web
- Web 2.0, Web mobile e Architetture Cloud
- Web 3.0 introduzione

2. Interfaccia
- HTML, sintassi e parsing
- XHTML e CSS
- AJAX e Javascript
- CSS3
- HTML5, nuovo vocabolario
- HTML5, Canvas e SVG
- HTML5, Communication API
- HTML5, applicazioni offline

3. Dati
- HTML come vocabolario di rappresentazione di documenti
- HTML come vocabolario di rappresentazione di interfacce
- La gestione dei dati in contesti multicanale
- I protocolli REST
- Dai database alle architetture Cloud
- JSON
- AJAX
- JQuery
- Storage client side

4. Procedure
- NodeJS, moduli
- NodeJS, gestione degli eventi
- NodeJS, creazione e manipolazione di file
- NodeJS, comunicazione http
- NodeJS, templating e rendering
- NodeJS, funzioni di middleware
- Design pattern per Applicazioni Web

5. MongoDB
- Ambiente e utilizzo
- Database, collection e gestione BSON
- CRUD
Prerequisiti
Si richiede una conoscenza dei concetti base di programmazione e la capacità di leggere un testo in inglese.
Metodi didattici
Gli argomenti del corso verranno affrontati mediante lezioni a distanza ed esercitazioni di auto verifica dell'apprendimento.
Materiale di riferimento
Materiale obbligatorio
· Lucidi ed esercizi proposti a lezione e attraverso la piattaforma didattica

Materiale facoltativo
· HTML 5 e CSS 3 - Gabriele Gigliotti, Milano: Apogeo, c2011
· Professional Node.js Building Javascript-Based Scalable Software - Pedro Teixeira: John Wiley & Sons, Inc. 2013
· HTML5, A vocabulary and associated APIs for HTML and XHTML: http://www.w3.org/TR/html5/
· Beginning JavaScript with DOM scripting and Ajax /- Russ Ferguson, Christian Heilmann. 2013
Modalità di verifica dell’apprendimento e criteri di valutazione
Le modalità di esame del corso sono le seguenti:

- due prove, una scritta e una progettuale
- la prova scritta sarà composta da 2 sottoparti, una a risposta chiusa a crocette e una a risposta aperta;
- in genera la prova scritta non dura più di un ora e mezza.
- La prova progettuale prevede che venga realizzata una applicazione web e l'attività deve essere svolta in modalità singola
- Il testo descrittivo del progetto viene rilasciato su Ariel alla fine di ogni anno del corso, nella sezione progetti.
- Il tema del progetto ha una validità indicata nel file descrittivo
- Il voto finale è una media pesata dei due voti della parti e il voto del progetto pesa il 70% del voto finale.
- Per iscriversi alla parte scritta bisogna utilizzare il sistema classico del sifaonline
- Per iscriversi alla discussione del progetto si deve caricare su upload.di.unimi.it il materiale richiesto.
INF/01 - INFORMATICA - CFU: 6
Laboratori: 24 ore
Lezioni: 36 ore
Docente/i
Ricevimento:
su appuntamento
stanza 7008