/CS443

Bilkent University / Computer Science Dpt. / CS443 – Cloud Computing & Mobile Applications

Primary LanguageDartGNU Lesser General Public License v3.0LGPL-3.0

CS443 – Cloud Computing & Mobile Applications

Catalog Description

Hands-on introduction to cloud computing and developing cloud-native (esp. mobile) applications. Cloud application models, services and infrastructures (virtualization, data center networking, distributed file systems), cluster computing systems (e.g. Spark), fundamental trade offs and methods (CAP theorem, NoSQL systems), architecture (modern n-tier, lambda, kappa) and applications (big data analytics, large-scale web services). Programming to develop scalable applications running on the cloud.

Basically, this course has the following learning outcomes:

  • What is cloud computing? Why we need it and in which cases we can use that paradigm (Module-1: What is it?).
  • How to implement a cloud system? What is essential to build an efficient cloud solution (Module-2: How to implement it?)
  • How to sustain a cloud application in both business and technical terms (Module-3: How to manage it?)

Staff

  • Instructor: Dr. Orçun Dayıbaş
  • T. Assistant: Mousa Farshkar Azari

Prerequisite(s)

Please refer to the web page of the course.

Minimum Requirements to Qualify for the Final Exam

Please refer to the web page of the course.

Assessment Methods

Item Type Weight
Quizzes/HWs Written/Imp. 10%
Midterm Essay/written 25%
Project Implementation 30%
Final Essay/written 35%

Project

Each student is expected to be part of a team (size of 3 people) to implement a cloud-native mobile-first application. Grading criteria will include the operational features of the application (we will cover these features in detail throughout the semester). During the classes each team will present: reports and demo/presentation on at least but not limited to the implementation details, external services, cloud characteristics, performance analysis, etc.

Presentation Schedule

Each group has 15 min. to present including demonstration of the application. You can find the ordered list for each session below.

Session Date List of groups
1 2021-04-26 / 10:30 1, 2
2 2021-04-26 / 11:30 11, 4, 5
3 2021-04-28 / 15:30 8, 12, 9
4 2021-04-28 / 16:30 7, 14
5 2021-05-03 / 10:30 6, 3, 13
6 2021-05-03 / 11:30 10, 15

Guest Speaker Session

  • Speaker: Ahmet Avcı (Software Engineer at Trendyol Group)
  • Date: 2021-05-05

Exams

  • Midterm: Online written exam / 10:30, April 05, 2021
  • Final: Online written exam / 17:30, May 23, 2021

Quizzes & Homeworks

  • Quiz-1: @Bilkent-Moodle / 11:00, March 22, 2021
  • Quiz-2: @Bilkent-Moodle / 17:00, April 14, 2021

Weekly Syllabus

Module Topics & Week Numbers Notes
Module-1: What is it? 1. Introduction to cloud computing (w#1)
2. Features of cloud (w#1)
3. Cloud application architectures (w#2)
4. Designing systems for scale (w#2, w#3)
5. Microservices (w#3)
Module content,
Project definition,
Team formations
Module-2: How to implement it? 6. Anatomy of a data center (w#6)
7. Virtualization & containers (w#4)
8. Resource management & coordination (w#8)
9. Programming models (w#9)
10. Cloud-native application development (w#9)
11. Mobile applications (w#12)
Module content,
Hands-on labs (w#5),
Spring break (w#7),
Midterm,
P. report(s)
Module-3: How to manage it? 12. Migrating to cloud (w#11)
13. Cloud vendors & tools
14. Governance & Case studies
Module content,
Feedback & review (w#11),
Project report(s),
demo & presentations (w#13)
Guest speaker (w#14)
Extension X-1. API Design (w#6)
X-2. Serverless (w#8)
X-3. UI/UX/DX Design (w#8)
Additional content for this term (clarifications and extensions)

Hands-on Sessions

Hands-on Labs Date Week # Prerequisites
Docker 2021-02-24 4 git 2.20.1+, docker 19.03.2+ (optional: a Docker ID)
Kubernetes 2021-03-03 5 Access to Katacoda k8s playground
Quarkus 2021-04-07 10 Maven 3.6.2+, JDK 8 or 11+ installed (with JAVA_HOME configured)
Flutter 2021-04-21 12 https://flutter.dev/docs/get-started/install

Weekly Schedule

2020-2021 Spring Semester

Regular Classes

  • Monday 11:30 - 12:20 (EB-202)
  • Wednesday 15:30 - 17:20 (EB-202)

Remote Instruction

  • Regular time slots are used for remote instructions.
  • Details for Zoom: https://web4.bilkent.edu.tr/zoom/
  • There is no any upfront arrangement for recording the Zoom sessions. Therefore, please continue to take regular notes like you did in the physical classroom environment.