WEB APPLICATIONS AND TECHNOLOGIES

Academic year
2023/2024 Syllabus of previous years
Official course title
TECNOLOGIE E APPLICAZIONI WEB
Course code
CT0142 (AF:360606 AR:189064)
Modality
On campus classes
ECTS credits
6
Degree level
Bachelor's Degree Programme
Educational sector code
INF/01
Period
2nd Semester
Course year
3
Where
VENEZIA
Moodle
Go to Moodle page
This course provides in-depth insights to the cutting-edge technologies that every modern web developer is supposed to master. After an initial high-level introduction of the protocols and patterns empowering the modern web, students will be guided to many of the technologies commonly involved in the development of rich web applications. Based on Javascript, the de-facto language for the web, the course will span from web-based middleware running on the Node.js runtime, NOSQL and in-memory databases, to front-end frameworks like the popular Google Angular and Twitter Bootstrap.
Finally, we discuss how web technologies are now effectively used for the agile development of software previously confined to native applications, like mobile applications and classical GUI programs for desktop environments.
After the course, the students will be able to:
- Understand the principles of the HTTP protocol
- Manage the user authentication in a web application
- Define and implement all the application requirements through REST-style APIs
- Implement full-stack solutions with common technologies of the Javascript ecosystem
- Implement hybrid application for desktop and mobile
Knowing the JavaScript programming language is a useful prerequisite although not strictly required. During the course, some of the most important aspects of the language will be summarized.
HTTP and beyond
----------------------------
- Evolution of the World Wide Web: SPA and full-stack frameworks
- The HTTP protocol
- Cookies and Sessions
- Authentication: Basic, Digest Access Authentication and JSON web token (JWT)
- Websocket
- REST-style APIs
- Docker containers

Languages for the WEB
----------------------------
- JavaScript
- TypeScript


Node.js server-side JavaScript runtime
----------------------------
- History and overview
- The Npm package manager
- Async non-blocking IO model and event-driven programming
- Interfacing with the operating system
- HTTP APIs


Storage
----------------------------
- MongoDB
- REDIS


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


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


Mobile hybrid and progressive apps
----------------------------
- jQuery Mobile
- Apache Cordova
- Ionic framework


Cross-platform web-based native applications
----------------------------
- 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
Development of a software project and a written essay that will be further discussed during an oral exam. The exam is designed to test the student ability to develop a modern web application and evaluate her/his understanding of the theoretical aspects related to web technologies.
The course is composed of frontal lessons, typically comprising practical case studies to better understand all the presented concepts and technologies.
Together with the referral texts, additional material will be provided by means of PowerPoint slides and source code.
Italian
oral
Definitive programme.
Last update of the programme: 08/03/2023