WEB APPLICATIONS AND TECHNOLOGIES

Academic year
2024/2025 Syllabus of previous years
Official course title
TECNOLOGIE E APPLICAZIONI WEB
Course code
CT0142 (AF:402008 AR:264960)
Modality
On campus classes
ECTS credits
6
Degree level
Bachelor's Degree Programme
Educational sector code
ING-INF/05
Period
2nd Semester
Course year
3
Where
VENEZIA
This course provides in-depth insights into the cutting-edge technologies that every modern web developer is supposed to master. After an initial high-level introduction to the protocols and patterns empowering the contemporary web, students will be guided to many of the technologies commonly involved in developing rich web applications. Based on JavaScript, a language that has become the de-facto standard for every web developer, the course provides the skills necessary to create a full-stack "MEAN" WEB application using Node.js, MongoDB, Express, and Angular.
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 MEAN applications in JavaScript and TypeScript
- Implement hybrid application for desktop and mobile
Object-oriented programming and networking.
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


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


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


Optional insights
----------------------------
- 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
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 grading scale (how grades will be assigned) is defined as follows:

A. Scores in the range of 18-22 will be assigned when:
- sufficient knowledge and applied understanding of the programme;
- limited ability to implement software solutions the given problems.
- sufficient communication skills, especially regarding specific terminology used in computer vision.
B. Scores in the range of 23-26 will be assigned when:
- good knowledge and applied understanding of the programme;
- fair ability to implement software solutions to the given problems.
- adequate communication skills, especially regarding specific terminology used in computer vision.
C. Scores in the range of 27-30 will be assigned when:
- good knowledge and applied understanding of the programme;
- reasonable ability to implement software solutions to the given problems.
- fully appropriate communication skills, especially regarding specific terminology used in computer vision.
D. Honors will be awarded in the presence of an excellent understanding of web-related technologies and their implementation in a complex software project
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: 29/02/2024