Prospectus

nl en

Cloud Computing

Course
2023-2024

Admission requirements

Assumed prior knowledge

This is an advanced computer systems course. Students are assumed to have taken courses in programming, computer architecture/organization and operating systems at a BSc level. As such we assume profiency using Linux command line, using ssh and scp, using basic network utilities (e.g., ping, host, ip, ss), in Python programming and in a compiled programming language.

Description

Easily accessible and responsive web-based services play a prominent role in modern society. Examples include data storage (documents, photos, etc.), content delivery (video streaming), social media, mapping and route planning, document editing and traditional web sites. Many of these services are empowered by cloud infrastructure. In the last decade, we have witnessed a large-scale transition from systems and software managed "on-premises" to infrastructure and software run in the cloud. Adoption of the cloud is expected to continue to increase in the coming years.

Academic interest in the cloud is twofold. Firstly, Cloud Computing is a multidisciplinary area of research involving issues in theory, algorithms, computer systems, performance measurement and modeling, and middleware and application design. Secondly, the use of the cloud as a platform within which to conduct research is increasing due to the availability of data management and analytics in the cloud, Infrastructure as a Service (IaaS) and High Performance Computing in the cloud.

In this course we will give a broad overview of the multidisciplinary field of Cloud Computing. Topics to be discussed include XaaS, deployment models, technical fundamentals of cloud systems, networking, scaling and elasticity, resource management & availability, programming cloud applications and emerging topics in the field. After a number of introductory lectures, all participating students will present a recent paper published in one of the premier conferences, or journals, on cloud computing. Finally, the aim of the accompanying lab assignments is to become familiar with a number of aspects of cloud systems such as container management, autoscaling, cloud infrastructure simulation and cloud platform dashboards and APIs.

Course objectives

  • The student can describe the hardware and (operating system) software requirements for successful and performant virtualization.

  • The student can characterize different services that are typically present within cloud environments such as (virtualized) networks, storage infrastructure, resource management, middleware and IaaS frameworks.

  • The student is able to construct and compose small cloud applications that use different services and APIs present within cloud environments (such as IaaS, object stores, message queues, web frameworks).

  • The student can reason about cloud resource management, elasticity, availability, reliability and security concerns.

  • The student can use the knowledge acquired in this course to reason about performance of software solutions using cloud systems and propose experiments to test hypotheses.

  • The student is able to understand and form opinions on recent academic literature on cloud computing.

Timetable

The most recent timetable can be found at the Computer Science (MSc) student website.

You will find the timetables for all courses and degree programmes of Leiden University in the tool MyTimetable (login). Any teaching activities that you have sucessfully registered for in MyStudyMap will automatically be displayed in MyTimeTable. Any timetables that you add manually, will be saved and automatically displayed the next time you sign in.

MyTimetable allows you to integrate your timetable with your calendar apps such as Outlook, Google Calendar, Apple Calendar and other calendar apps on your smartphone. Any timetable changes will be automatically synced with your calendar. If you wish, you can also receive an email notification of the change. You can turn notifications on in ‘Settings’ (after login).

For more information, watch the video or go the the 'help-page' in MyTimetable. Please note: Joint Degree students Leiden/Delft have to merge their two different timetables into one. This video explains how to do this.

Mode of instruction

  • Lectures.

  • Seminar (student presentations with peer review).

  • Students are expected to work on the lab assignments autonomously, outside of the lectures.

Course load

Total hours of study: 168 hrs. (= 6 EC)
Lectures (including homework and preparation of presentation): 58:00 hrs.
Practical work (self-study, so unsupervised): 90:00 hrs.
Examination: 20:00 hrs.

Assessment method

The assessment consists of three parts:

  • Written exam with open questions. (35%)

  • Two lab assignments. (40%)

  • Oral paper presentation. (25%)

The final grade is computed as a weighted average of these three parts. The minimum grade of each part is "1". All three individual parts must be sufficient (>= 5.5) to pass the course, in case this requirement is not met the final grade is maximized to "5". A final grade will be established for all students that are enrolled in the course after the third week, for parts that are not handed in the grade "1" will be entered. A re-sit exam is scheduled by default. If the presentation grade is insufficient, but the exam and lab grades are sufficient, a possbility for a presentation resit can be discussed with the lecturer.

With regard to the lab assignments: all lab assignments must be submitted in order to receive a final lab grade. The lab grade is the weighted average over the lab assignments, weights to be announced at the start of the couse. If the lab grade is insufficient, but the exam and presentation grades are sufficient, a possibility for a lab resit can be discussed with the lecturer.

Once the exam results have been announced, inspection of the exam is possible by appointment only up to two months after publication of the results.

Reading list

There is no prescribed textbook. Lecture slides and reading list of papers are provided on BrightSpace.

Registration

Due to the format of the course, at most 30 students can participate each year. It is mandatory to register for this course in advance; only enrolment for the lectures (in uSis/MyStudyMap) will count. In case more than 30 students register for the course, we determine who can be admitted to the course as follows:

  • Given that the course is mandatory for the Advanced Computing and Systems (ACS) track, ACS students are admitted first. A place is guaranteed for ACS students, also if this number is higher than 30.

  • To allocate students who follow other programs to the remaining places, a ranking will be used. This ranking is based on three components: (1) quiz to test computer systems background knowledge, (2) initial homework, (3) one paragraph motivation for taking this course.

From the academic year 2022-2023 on every student has to register for courses with the new enrollment tool MyStudyMap. There are two registration periods per year: registration for the fall semester opens in July and registration for the spring semester opens in December. Please see this page for more information.

Please note that it is compulsory to both preregister and confirm your participation for every exam and retake. Not being registered for a course means that you are not allowed to participate in the final exam of the course. Confirming your exam participation is possible until ten days before the exam.

Extensive FAQ's on MyStudymap can be found here.

Contact

Lecturer: dr. K.F.D. Rietveld

Remarks

Note that due to the format of the course, there is a limit on the number of participants: at most 30 students can participate in this course. Therefore, it is mandatory to register in advance (see also the section on Registration).