Programmazione web e mobile

A.A. 2021/2022
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
Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
Terzo quadrimestre
Programma
Il corso si suddivide in cinque moduli che affronteranno gli argomenti dettagliati più sotto.

1. Storia e architettura del WWW
- Da Internet al Web
- Gli standard implementativi del Web
- I primi anni e la competizione per gli standard di rappresentazione
- Le ragioni della scalabilità del Web
- Web 2.0, Web mobile e Architetture Cloud

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

4. Procedure
- CGI e linguaggi di scripting lato server
- 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. Progettare applicazioni Web
- L'economia dei beni digitali
- Modelli di business per il Web
- Esternalità della rete
- Principi di usabilità architettura dell'informazione
- Ambienti e framework di programmazione Web e Mobile
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 frontali, con l'ausilio di lucidi e di materiali didattici che il docente metterà di volta in volta a disposizione sulla piattaforma Ariel. Durante le lezioni saranno inoltre svolti esercizi e dimostrazioni che aiuteranno il percorso di apprendimento dello studente.

La frequenza, per quanto non obbligatoria, è fortemente consigliata.
Materiale di riferimento
Materiale obbligatorio
· Lucidi ed esercizi proposti a lezione e attraverso la piattaforma Ariel

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
L'esame di Programmazione Web e Mobile è costituito da due prove:

Prova scritta: esercizi + domande a risposta aperta;
Prova orale: progetto (con relazione scritta) + discussione orale del progetto.

Per il superamento dell'esame è necessario ottenere la sufficienza in entrambe le prove. Ognuna delle prove superata con successo verrà considerata entro l'ultimo appello dell'anno accademico nel quale è stato sostenuta la prima prova. Entro questo termine, è necessario completare con successo anche la seconda prova e registrare il voto; viceversa l'intero esame deve essere nuovamente sostenuto.
Per entrambe le prove è necessario iscriversi agli appelli tramite terminale SIFA. Le due iscrizioni sono tra loro indipendenti. Gli orali sono sempre fissati il pomeriggio del giorno dell'appello scritto. Il voto finale è espresso in trentesimi e dipende in ugual misura dall'esito dell'esame scritto e dell'esame orale.

Prova Scritta

L'esame scritto comprende:
esercizi: validare documenti in base ad uno schema, comprendere la semantica di frammenti di codice, indicare il risultato di una selezione, modifiche e formulare commenti relativi a parti di codice;
domande di teoria: le domande possono avere per oggetto qualunque argomento trattato durante il corso.
Non è ammesso l'uso di alcun materiale relativo al corso durante la prova d'esame.

Progetto

Il progetto consiste nella realizzazione di un'applicazione Web o mobile.
Per prima cosa si richiede di definire i requisiti fondamentali che l'applicazione soddisferà. A questo punto l'obiettivo è progettare, attraverso le tecnologie presentate a lezione, un'applicazione che realizzi le scelte tecnologiche coerentemente con i requisiti applicativi.
Per la valutazione della prova orale vengono tenuti in considerazione i seguenti aspetti:

capacità di usare tutte le tecnologie presentate a lezione;
complessità del progetto sviluppato;
qualità della progettazione e della relazione che la documenta;
esposizione: capacità di presentare il progetto e di motivare le scelte tecnologiche.

Sono ammessi gruppi composti al massimo da 2 studenti.
L'applicazione deve usare in maniera integrata tutte le tecnologie discusse.
L'applicazione deve essere il risultato originale del lavoro esclusivo dei componenti del gruppo di progetto.
Tutti i componenti del gruppo devono conoscere ogni dettaglio del progetto presentato.
Durante l'orale verranno discussi tutti gli aspetti del progetto: organizzazione, uso delle tecnologie, realizzazione (cioè verrà esaminato il codice).

Il tema di applicazione del progetto potrà essere proposto dagli studenti oppure scelto tra le proposte del docente (pubblicate nell'apposita sezione della pagina Ariel dell'insegnamento).
INF/01 - INFORMATICA - CFU: 6
Laboratori: 24 ore
Lezioni: 36 ore
Docente: Ceravolo Paolo
Docente/i
Ricevimento:
Giovedì 14.00 - 15.00
Dipartimento di Informatica