TECNOLOGIE E APPLICAZIONI WEB
- Anno accademico
- 2024/2025 Programmi anni precedenti
- Titolo corso in inglese
- WEB APPLICATIONS AND TECHNOLOGIES
- Codice insegnamento
- CT0142 (AF:491728 AR:264960)
- Lingua di insegnamento
- Inglese
- 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
Inquadramento dell'insegnamento nel percorso del corso di studio
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.
Risultati di apprendimento attesi
- Basi di funzionamento del protocollo HTTP
- Tecniche di gestione dell'autenticazione e autorizzazione in applicazioni WEB
- Framework e tecnologie per sviluppare applicazioni web e mobili;
Competenze:
- Saper utilizzare framework e tecnologie all’avanguardia per sviluppare applicazioni web e mobili;
- Definire le funzionalità di un'applicazione e realizzarle definendo delle API in stile REST
- Gestire l'autenticazione in un'applicazione web
- Implementare soluzioni web full-stack di tipo MEAN utilizzando JavaScript e TypeScript
Prerequisiti
Contenuti
----------------------------
- Evoluzione del WEB: SPA e frameworks full-stack
- Il protocollo HTTP
- Cookies e il concetto di Sessione
- 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
Testi di riferimento
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
Modalità di verifica dell'apprendimento
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
Modalità di esame
Metodi didattici
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.