Web and cloud applications

A.Y. 2019/2020
Overall hours
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.
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, 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

- 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
By appointment only
At Dipartimento di Informatica (Room BP71) in via Bramante 65, Crema (CR)