Programmazione web e mobile
A.A. 2022/2023
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
Il 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
- 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
- Ambienti e framework di programmazione Web e Mobile
- Cenni di architetture a microservizi
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
- 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
- Ambienti e framework di programmazione Web e Mobile
- Cenni di architetture a microservizi
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.
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
· 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 consiste in un progetto e una prova orale, entrambe obbligatorie. Il progetto mira ad approfondire gli aspetti pratici di uno o più argomenti trattati nell'insegnamento. La discussione orale si concentra sugli argomenti affrontati nello sviluppo del progetto e mira a valutarne la qualità. Le tematiche e le specifiche del progetto saranno proposte alla fine dell'insegnamento ed esso potrà essere svolto, solo individualmente, entro i 12 mesi successivi alla data di pubblicazione.
Per poter effettuare la prova orale è necessario iscriversi ad una delle sessioni d'esame indicate da calendario e inviare il materiale prodotto secondo le specifiche del progetto.
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.
Per poter effettuare la prova orale è necessario iscriversi ad una delle sessioni d'esame indicate da calendario e inviare il materiale prodotto secondo le specifiche del progetto.
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: 24 ore
Lezioni: 36 ore
Lezioni: 36 ore
Docenti:
Bellandi Valerio, Maghool Samira
Docente/i
Ricevimento:
su appuntamento
stanza 7008