Web and Cloud Applications

A.Y. 2020/2021
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 cannot be attended as a single course. Please check our list of single courses to find the ones available for enrolment.

Course syllabus and organization

Single session

Lesson period
First semester
TEACHING METHOD
Live lessons will be streamed and recorded on Microsoft Teams following the semester schedule. Recorded lessons will be available on Microsoft Teams for asynchronous access by the students.

PROGRAM AND TEACHING RESOURCES
Program and teaching resources will be the same with no changes.

ASSESSMENT METHODS AND CRITERIA
The exam will consists of the traditional written exam, project, and oral exam, all mandatory.

The written exam (2 hours) will be delivered on EXAM.NET + SEB + Zoom. To participate you will need two devices, one to write the exam (e.g., a laptop), and another one (e.g., a smartphone or a tablet) with a webcam and a microphone for surveillance.

The oral exam with project presentation will be face to face, where possible. If not possible, the oral exam will be delivered on Microsoft Teams or, as an alternative, Zoom.

The assessment criteria will be the same with no changes.
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, HTML, CSS.
2. HTML5, CSS3, Javascript, REST services.
3. Overview of advanced frameworks and languages.

The second module will present principles, service delivery models, and technologies at the basis of cloud computing.
1. Virtualization technologies. Virtualization taxonomy. Hypervisor. Virtualization costs. VMware suite.
2. Cloud Computing. History of Cloud computing. Requirements and characteristics. Service delivery models. Deployment models. Migration to the cloud. Cloud computing costs (Cloudonomics). Issues and challenges.
3. IaaS, PaaS, SaaS: Concepts. Technologies. Use cases.

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 consists of traditional lectures. The practical part consists of laboratory lessons and exercises.
Teaching Resources
Slide deck available on the course web site (http://cardagnaawc.ariel.ctu.unimi.it/v5/home/Default.aspx)

HTML5 and CSS3
- G. Gigliotti, HTML5 e CSS3, Apogeo
- (alternative book) HTML5 digital classroom, Osborn, Jeremy, 2011

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 (duration 2 hours) aim to verify, by means of open and closed questions, the knowledge of the student about all arguments discussed during the course. The project aims to deepen the practical aspects of a single topic discussed during the course. The oral exam concentrates on the topic faced in the project development and aims to evaluate the project quality. When the student successfully passes all exams, a final evaluation is computed, expressed in thirtieths, considering: the knowledge of the topics, ability of applying the learned knowledge to the resolution of a practical project, project quality, critical thinking skills, clarity of exposition, and property of language.
INF/01 - INFORMATICS - University credits: 6
Laboratories: 32 hours
Lessons: 32 hours
Professor(s)
Reception:
By appointment only
At Dipartimento di Informatica, Via Celoria 18, Milan (MI)
Reception:
On appointment
room 7008