Web and Cloud Applications
A.Y. 2024/2025
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.
Lesson period: First semester
Assessment methods: Esame
Assessment result: voto verbalizzato in trentesimi
Single course
This course can be attended as a single course.
Course syllabus and organization
Single session
Responsible
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.
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/
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
Lessons: 32 hours
Professors:
Ardagna Claudio Agostino, Bellandi Valerio
Shifts:
Educational website(s)
Professor(s)
Reception:
By appointment only
At Dipartimento di Informatica, Via Celoria 18, Milan (MI)
Reception:
On appointment
room 7008