Web and Cloud Applications

A.Y. 2024/2025
6
Max ECTS
64
Overall hours
SSD
INF/01
Language
Italian
Learning objectives
The objective of the course is to introduce the fundamental concepts at the basis of the design and development of Web and Cloud applications, discussing the operating principles, the service models, and the technologies at the basis of web programming and cloud computing paradigm.
Expected learning outcomes
At the end of the course, the student shall know the fundamental concepts of web programming and the operating principles of the cloud computing paradigm. Moreover, through laboratory activities, the student shall acquire the ability to design and develop web and cloud applications showing a good knowledge of metodologies and technologies learnt during the course.
Single course

This course can be attended as a single course.

Course syllabus and organization

Single session

Lesson period
First semester
Course syllabus
The course will first analyze the fundamental concepts and technologies at the basis of web application design and development. The course will then discuss the fundamental concepts, the working principles, the service delivery models, the deployment models, and the technologies at the basis of cloud computing. To achieve the above objectives, the course will consist of both traditional lectures (32 hours - 4 cfu) and practical laboratory lessons (32 hours - 2 cfu).

More in detail, the theoretical part is composed of two modules.

The first module will focus on analyzing the fundamental concepts and technologies at the basis of web and cloud application design and development.
1. Basic concepts. URL, HTTP
2. HTML, CSS.
3. Javascript.
4. Overview of advanced frameworks and languages.

The second module will present principles, service delivery models, and technologies at the basis of cloud computing. It will also present cloud applications based on RESTful services, also discussing the main XML and JSON data representation models.
1. Cloud Computing. History of Cloud computing. Requirements and characteristics. Service delivery models. Deployment models.
2. IaaS, PaaS, SaaS: Concepts. Technologies. Use cases.
3. Migration to the cloud. Cloud computing costs (Cloudonomics). Issues and challenges.
4. REST applications

The practical part will clarify all concepts discussed in the theoretical part by means of practical exercises in laboratory, mainly focusing on the development of web and cloud applications.
Prerequisites for admission
Basic knowledge of computer architectures and fundamentals of programming languages
Teaching methods
The theoretical part comprises traditional lectures, while the practical part includes laboratory sessions and exercises designed to reinforce the concepts learned in the theoretical part.
Teaching Resources
Slide deck available on the course web site (https://myariel.unimi.it/course/view.php?id=2960)

HTML5 and CSS3
- G. Gigliotti, HTML5 e CSS3, Apogeo
- (alternative book) HTML5 digital classroom, Osborn, Jeremy, 2011
- W3School tutorials, https://www.w3schools.com/

CLOUD
- L. Badger, T. Grance, R. Patt-Corne, J. Voas, Cloud Computing Synopsis and Recommendations, NIST, http://csrc.nist.gov/publications/nistpubs/800-146/sp800-146.pdf
- B. Sosinsky, Cloud Computing Bible, 2011

REST services
- R.T. Fielding, Architectural Styles and the Design of Network-based Software Architectures, https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
- L. Richardson and S. Ruby, RESTful Web Services, http://www.crummy.com/writing/RESTful-Web-Services/
Assessment methods and Criteria
The exam consists of a written exam, a project, and an oral exam, all mandatory. The written exam, lasting 2 hours, is designed to assess the student's understanding of all topics covered in the course through a combination of open and closed questions. The project aims to explore the practical aspects of web and cloud application development. The oral exam focuses on the topic addressed in the project development and aims to evaluate the quality of the project. Upon successfully passing all exams, a final evaluation is calculated, expressed on a scale of thirtieths, taking into account various criteria: the knowledge of the topics, application of acquired knowledge to solve a practical project, quality of the project, critical thinking skills, clarity of presentation, and language proficiency.
INF/01 - INFORMATICS - University credits: 6
Laboratories: 32 hours
Lessons: 32 hours
Shifts:
Professor(s)
Reception:
By appointment only
At Dipartimento di Informatica, Via Celoria 18, Milan (MI)
Reception:
On appointment
room 7008