Course Description:
This course teaches cloud computing concepts and cloud programming skills
on the real cloud platforms(AWS/Openstack).
The course will be mixed between labs and lectures.
The goal of this class is to let you be able to implement a diverse range
of applications in a short period time by taking advantage of a cloud
platform.
Therefore, a final project will be taken place in the form of a hackathon
event.(Explain in details below.), and some coding assignments will also be
given after each lab.

Course Agenda:
PartI: Introduction (All lectures)
(1)Cloud Computing Intro
(2)AWS Intro

PartII: Public Cloud Platform: AWS (All labs)
(1) Administration management: IAM
(2) Basic Compute: EC2
(3) Elastic System Architecture: ELB, Auto-scaling, Cloud Watch, SNS
(4) Multi-tier System Architecture: S3, RDS, SQS
(5) Auto-deployment: Beanstalk
(6) Serverless System Architecture: Lambda
(7) AWS Programming SDK: Java, javascript, Python
(8) Mobile Applications: Cognito, API Gateway, Mobile SDK
(9) IoT Applications: IoT platform

PartIII: Container & Kubernetes (All labs)

Grading:
70% Lab assignments
30% Final Project (Start from the last month of the semester)
Part I(10%): Hackathon(A topic will be given, and you(as a team) need to
implement its application on one of the cloud platform in 12 hours.)
Part II(10%): Presentation in the class
Part III(10%): Code review by demo

Prerequisite:
You have to apply your own AWS education account in order to participate in
this class.
None. But you should be good at programming, and the main programming
language in this class will be Python (with some Java and web programming).

Project demonstrations from last year:
https://www.youtube.com/watch?
v=D5zGeFtmIx0&index=3&list=PLjDTfVVV3qgzIh5V0VP3KaXpkPJahx8fr
https://www.youtube.com/watch?
v=B1JDpl6juq4&list=PLjDTfVVV3qgzIh5V0VP3KaXpkPJahx8fr&index=12