TECNOLOGIE E APPLICAZIONI WEB

Anno accademico
2024/2025 Programmi anni precedenti
Titolo corso in inglese
WEB APPLICATIONS AND TECHNOLOGIES
Codice insegnamento
CT0142 (AF:542934 AR:264960)
Modalità
In presenza
Crediti formativi universitari
6
Livello laurea
Laurea
Settore scientifico disciplinare
ING-INF/05
Periodo
II Semestre
Anno corso
2
Sede
VENEZIA
Spazio Moodle
Link allo spazio del corso
Il corso fornisce una panoramica dettagliata sulle più recenti tecnologie legate al web. E' composto da una introduzione teorica ai protocolli e pattern di programmazione che supportano il web moderno per continuare con uno studio guidato su alcuni dei framework oggi utilizzati per lo sviluppo di applicazioni web.
Basato su JavaScript, linguaggio divenuto standard de-facto per ogni web-developer, il corso fornisce le competenze necessarie a realizzare un'applicazione WEB full stack di tipo "MEAN" usando Node.js, MongoDB, Express e Angular.
Infine, si discuterà di come le tecnologie legate al web possono essere utilizzate per lo sviluppo agile di applicazioni tradizionalmente confinate in ambiente nativo, come le app per sistemi mobile e gli ambienti desktop.
Al termine del corso, gli studenti saranno in grado di:
- Conoscere le basi di funzionamento del protocollo HTTP
- Gestire l'autenticazione in un'applicazione web
- Definire le funzionalità di un'applicazione e realizzarle definendo delle API in stile REST
- Implementare soluzioni web full-stack di tipo MEAN utilizzando JavaScript e TypeScript
Programmazione ad oggetti e basi di networking.
HTTP
----------------------------
- Evoluzione del WEB: SPA e frameworks full-stack
- Il protocollo HTTP
- Cookies e il concetto di Sessione
- Authentication: Basic, Digest Access Authentication and JSON web token (JWT)
- Websocket
- API in stile REST
- Docker containers


Linguaggi per il web
----------------------------
- JavaScript
- TypeScript


Node.js server-side JavaScript runtime
----------------------------
- Storia e panoramica del sistema
- The Npm package manager
- modello di IO asincrono / non-bloccante
- programmazione event-driven
- Interfaccia con il sistema operativo
- HTTP APIs


Middleware
----------------------------
- Express


Front-end
----------------------------
- Angular


Approfondimenti opzionali
----------------------------
- Apache Cordova
- Electron framework
Simon Holmes, "Getting MEAN with Mongo, Express, Angular, and Node", Second edition, Manning Publications, 2019. ISBN 9781617294754
Eric Elliott, "Programming JavaScript Applications: Robust Web Architecture with Node, HTML5, and Modern JS Libraries", O'Reilly Media, 2014. ISBN-10: 1491950293
Fernando Doglio, "Pro REST API Development with Node.js", Apress, 2015. ISBN-10: 1484209184
Steve Fenton, "Pro Typescript", Apress, 2014. ISBN 978-1-4302-6790-4
Adam Freeman, "Pro Angular", Apress 2017. ISBN 978-1-4842-2307-9
La verifica dell'apprendimento prevede lo sviluppo di un progetto software che utilizzi tecnologie e metodi sviluppati durante il corso. Il progetto va consegnato congiuntamente ad una relazione che sarà poi discussa mediante prova orale.
Il progetto e la relazione hanno lo scopo di verificare la conoscenza dei concetti teorici appresi durante il corso e di dimostrare la capacità dello studente di sviluppare applicazioni web con le tecnologie illustrate a lezione.

La gradazione del voto è stabilita come segue:

A. punteggi nella fascia 18-22 verranno attribuiti in presenza di:
- sufficiente conoscenza e capacità di comprensione applicata in riferimento al programma;
- limitata capacità di sviluppare soluzioni software ai problemi dati;
- sufficienti abilità comunicative, specie in relazione all'utilizzo del linguaggio specifico della materia;
B. punteggi nella fascia 23-26 verranno attribuiti in presenza di:
- discreta conoscenza e capacità di comprensione applicata in riferimento al programma;
- discreta capacità di sviluppare soluzioni software ai problemi dati;
- sufficienti abilità comunicative, specie in relazione all'utilizzo del linguaggio specifico della materia;
C. punteggi nella fascia 27-30 verranno attribuiti in presenza di:
- buona o ottima conoscenza e capacità di comprensione applicata in riferimento al programma;
- buona o ottima capacità di sviluppare soluzioni software ai problemi dati;
- buone o ottime abilità comunicative, specie in relazione all'utilizzo del linguaggio specifico della materia;
D. la lode verrà attribuita in presenza capacità eccellenti di comprensione delle tecnologie legate al web e alla loro implementazione in un progetto software complesso
Il corso è composto da lezioni frontali comprendenti casi di studio pratici per contestualizzare i concetti appresi nell'ambito delle tecnologie web.
Congiuntamente ai testi di riferimento, materiale di studio aggiuntivo sarà fornito in forma di presentazioni PowerPoint e codice sorgente da utilizzare come template per lo sviluppo di applicazioni full-stack.
Italiano
orale
Programma definitivo.
Data ultima modifica programma: 29/02/2024