Programmazione web e mobile
A.A. 2025/2026
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
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
Periodo: Secondo semestre
Modalità di valutazione: Esame
Giudizio di valutazione: voto verbalizzato in trentesimi
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
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
· 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.
- 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
Lezioni: 36 ore
Docenti:
Bellandi Valerio, Maghool Samira
Docente/i
Ricevimento:
su appuntamento
stanza 7008