Course Outline-Cloud Computing

Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

National Computing Education Accreditation Council

NCEAC

NCEAC.FORM.001-D

COURSE DESCRIPTION FORM Cloud Computing

INSTITUTION FAST School of Computing, National University of Computer


and Emerging Sciences, Islamabad

PROGRAMS TO BE Computer Science (BS) – Spring 2022


EVALUATED

Course Description
(Fill out the following table for each course in your computer science curriculum. A filled out form should
not be more than 2-3 pages.)

Course Code CS-4


Course Title Cloud Computing
Credit Hours 3
Prerequisites by Operating Systems, Concepts in Programming Languages Concurrent and Distributed
Course(s) and Topics Systems, Computer Networking and Unix Tools.
Grading Policy Relative grading
Policy about missed Retake of missed assessment items (other than midterm/ final exam) will not be held.
assessment items in For a missed midterm/ final exam, an exam retake/ pretake application along with necessary
the course evidence are required to be submitted to the department secretary. The examination
assessment and retake committee decide the exam retake/ pretake cases.
Course Plagiarism Plagiarism in an assignment will result in zero marks in the whole assignments category.
Policy
Plagiarism in the course project will result in zero marks in the project and also the deduction
of -75% of the total marks for the assessment from other evaluations.
For instance, plagiarism in the course project having 10 absolutes would result in 0 points for
the project and -7.5 absolutes would be deducted from achieved scores in other assessment
items.

Plagiarism in the midterm and the final exam would result in a disciplinary case forwarded to
the department disciplinary committee.

Assessment 100% Theory


Instruments with Assessment Item Number Weight (%)
Weights (homework,
quizzes, midterms, Assignments 4 10
final, programming Project 1 10
assignments, lab work,
etc.) Sessional Exams 2 30
Final Exam 1 50
Course Instructors Dr. Muhammad Tariq

1 NCEAC.FORM.001.D
National Computing Education Accreditation Council
NCEAC

NCEAC.FORM.001-D

Lab Instructors (if


any)
Course Coordinator Dr. Muhammad Tariq
URL (if any)
Current Catalog Cloud Computing has revolutionized the computing industry by opening the possibility
Description for infinite or at least highly elastic scalability in the delivery of enterprise applications
and software as a service (SaaS), platform as a service (PaaS) and infrastructure as a
service (IaaS). Amazon Elastic Cloud (EC2), Amazon Storage (S3), Microsoft’s Azure,
IBM Watson, Google App Engine, and many other Cloud offerings give mature
software vendors and new start-ups the option to deploy their applications to systems
of infinite computational power with practically no initial capital investment and with
modest operating costs proportional to the actual use. This undergraduate elective
course introduces the fundamentals of cloud computing and software development for
cloud platforms. It covers topics such as virtualization, architecture of cloud systems,
programming for the cloud, resource management, as well as privacy and security
issues. We will use open-source platforms and application of highly available clustering
computational environments, as well as RESTFul Web services, to build very powerful
and efficient applications in the form of regular programming assignments and semester
projects.

Textbook (or Textbook: Marinescu, Dan (2017) Cloud Computing Theory and Practice (2nd Ed.)
Laboratory Manual
for Laboratory
Courses)
Reference Material Recommended Reference Material: •
CS5412: Topics in Cloud Computing
(Spring 2022: Cornell University).
Distributed and Cloud Computing: Clusters, Grids, Clouds, and the Future Internet, K Hwang, J
Dongarra and GC. C. Fox, Elsevier, 1st Ed.
IEEE Transactions on Cloud Computing
Journal of Cloud Computing: Advances, Systems and Applications

Course Learning
A. Course Learning Outcomes (CLOs)
Outcomes
Upon successful completion of this course, students will be able to:
1. describe the key concepts and technologies in cloud computing
2. evaluate cloud computing technologies and platforms in the context of the
needs of a specific application
3. design data storage components for cloud-based software systems
4. assess and monitor resource use of applications in virtualized environments
5. design, implement, and deploy cloud applications for current cloud platforms
6. evaluate privacy and security issues for cloud infrastructure and cloud
applications

2 NCEAC.FORM.001.D
National Computing Education Accreditation Council
NCEAC

NCEAC.FORM.001-D

B. Program Learning Outcomes

For each attribute below, indicate whether this attribute is covered in this course
or not. Leave the cell blank if the enablement is little or non-existent.

1. Computing Apply knowledge of mathematics, natural sciences,


Knowledge computing fundamentals, and a computing
specialization to the solution of complex computing
problems.
2. Problem Identify, formulate, research literature, and analyze 
Analysis complex computing problems, reaching
substantiated conclusions using first principles of
mathematics, natural sciences, and computing
sciences.
3. Design/ Design solutions for complex computing problems 
Develop and design systems, components, and processes
Solutions that meet specified needs with appropriate
consideration for public health and safety, cultural,
societal, and environmental considerations.
4. Investigation & Conduct investigation of complex computing
Experimentation problems using research-based knowledge and
research based methods.
5. Modern Tool Create, select, and apply appropriate techniques, 
Usage resources and modern computing tools, including
prediction and modelling for complex computing
problems.
6. Society Apply reasoning informed by contextual knowledge
Responsibility to assess societal, health, safety, legal, and cultural
issues relevant to context of complex computing
problems.
7. Environment Understand and evaluate sustainability and impact
and Sustainability of professional computing work in the solution of
complex computing problems.
8. Ethics Apply ethical principles and commit to professional
ethics and responsibilities and norms of computing
practice.
9. Individual and Function effectively as an individual, and as a
Teamwork member or leader in diverse teams and in multi-
disciplinary settings.
10. Communicate effectively on complex computing
Communication activities with the computing community and with
society at large.
11. Project Demonstrate knowledge and understanding of
Management and management principles and economic decision
Finance making and apply these to one’s own work as a
member or a team.
12. Lifelong Recognize the need for and have the preparation
Learning and ability to engage in independent and life-long
learning in the broadest context of technological
changes.

3 NCEAC.FORM.001.D
National Computing Education Accreditation Council
NCEAC

NCEAC.FORM.001-D

C. Mapping of CLOs on PLOs


(CLO: Course Learning Outcome, PLOs: Program Learning Outcomes)
PLOs

1 2 3 4 5 6 7 8 9 10 11 12

1   
2   
CLOs

3   
4   
5   
6   
Topics covered in Topics Lectures
the course with
Introduction to Cloud computing 2
number of lectures
on each topic Scalability and Key-Value Sharding 2
(assume 15 weeks of
instruction and 1.5 Pool model for Microservices 1
hour lecture duration)
Implementing a smart farm 1

IoT and Cloud 2

Time and Causality - Actual Clocks, Logical Clocks 2


Challenges of Dealing with Timestamped IoT Data 2

BlockChain and Cloud Computing 2

Accessing collections from modern programming languages 2

Laboratory
Projects/Experiments
Done in the Course
Programming Almost all assignment will be programming based. Programming assignments are
Assignments Done in related to problem solving, design and analysis of algorithms.
the Course
Problem Analysis Social and Ethical
Class Time Spent per Theory (%) Solution Design (%)
(%) Issues (%)
Week (in percentage)
50 25 20 5
Oral and Written
Communications
4 NCEAC.FORM.001.D
National Computing Education Accreditation Council
NCEAC

NCEAC.FORM.001-D

Every student is required to submit at least __1___ written reports of typically _5_ pages and
make _1___ oral presentation of typically ____15___ minutes’ duration.

COURSE CONTENTS (Theory):

**Courseware Events
Comments (if
any)
Weeks Contents/Topics (MM/ IT Lab/Case Study/
Text Book
Assignment/
Topic
Presentation etc.)
Cloud Computing Overview

Overview of the course. Azure IoT model:


Sensors, Azure IoT Edge roles, Azure Intelligent
Edge and IoT Hub, u-services model, data center
file system and database infrastructures, big-data
Week-01
analytics infrastructures.

We focus on Azure just for coherency, but Amazon


AWS has completely analogous components. If
you know one cloud, you'll easily be able to adapt
to any other cloud!
Scalability and Key-Value Sharding

Introduction to cloud scalability techniques:


hierarchy, point of presence mini-datacenters, full
datacenters, (key-value) sharding and simple fault-
Week-02 Quiz-01
tolerance techniques, use of a DHT plus
notifications to implement a publish-subscribe
message bus, a DDS, or a message queue.
Putting it all together: Akamai CDN and Facebooks
massive content delivery infrastructure.
Pool model for Microservices
In Week 3, we will look at the issues raised by this
idea of managed microservices that live in elastic
pools. Some of the issues involve what is called
Week-03 stateless programming (we'll explain; it doesn't Assignment-01
mean what the word sounds like). Another issue is
virtualization using a hypervisor such as Xen
versus container virtualization using Kubnetes with
help from an OS like Mesos.
Implementing a smart farm
Here the focus will be on the puzzle of actually
using DHTs and other cloud platform ideas to
implement a smart farming system. A big part of
Week-04 the challenge is that we end up with an event-by-
event computing model, implemented using cloud
functions (small pieces of code that the platform
runs for you when the event occurs), but
sometimes we have logic that requires some form
5 NCEAC.FORM.001.D
National Computing Education Accreditation Council
NCEAC

NCEAC.FORM.001-D

of state that spans multiple events. The function


tier is stateless... so we use a DHT to hold the state!
We'll see one clever idea as part of this: if the DHT
put API allows you to specify which version of a
(key,value) object you think you are creating, we
can avoid locking entirely and still get consistency.
Revision
Week-05 Sessional 1
IoT and Cloud

IoT sensor registration.


Risk of sensor inaccuracy.

The Azure IoT hub and the concept of a secure


sensor with a managed life-cycle. Sensor
properties. Fault-tolerance. The META system
and its model of fault-tolerance for IoT devices.

Week-06 The State Machine Replication Model Assignment-02

Sharded data often must be replicated for higher


availability. We will discuss various ways that
systems have approached this, starting with really
simple ways and will also see some of the potential
issues, such as inconsistency or data loss. This
will lead us to define the gold standard computing
model for keeping backups: state machine
replication. Chain replication is one way to solve
this problem.
Paxos and Derecho

In this lecture we will be discussing Paxos and


Cornell's Derecho system, which is a cutting-edge
version of the Paxos idea, but restructured to
match better with fast datacenter networking.
You'll also hear about how we are creating
Cascade, a new cloud DHT, using Derecho.
Week-07
Time and Causality - Actual Clocks, Logical
Clocks

Timestamped data. Clocks and clock


synchronization.
Causal ordering and causal clocks. Snapshots
and consistent cuts

Challenges of Dealing with Timestamped IoT


Data
Week-08
Indexing into DHT data. Issues of heavy temporal
computing and some of the solutions people are
starting to propos

6 NCEAC.FORM.001.D
National Computing Education Accreditation Council
NCEAC

NCEAC.FORM.001-D

Strongly Consistent Geoscale Computing

Availability zones. WAN replication. Mirroring


versus active update models. Google's Spanner
system. 5G mobility.

Tracking state in big data-center systems

This lecture will look at the concept of Gossip


communication protocols, where we use little one-
to-one data exchanges to track information like the
total storage capacity available on the Amazon S3
storage servers. We'll discuss the concept of
gossip, and then will look at two examples of how
gossip can be used.
Week-09
Case studies in disaster: How datacenter
gossip can go wrong

The idea of tracking storage capacity in S3 using


gossip was a big success at Amazon... but it also
revealed some really bizarre and unexpected
issues with gossip that required more work in their
deployment. We'll talk about some of the stories
that became public and how Amazon fixed the
issues.
BlockChain and Cloud Computing

Definitions. Anonymity, Byzantine DDoS attacks.


Using Ethereum or Hyperledger to encode smart
contracts. Permissionless and permissioned
Week-10
models, and how they differ. Gossip in wide-area
environments. Proof of work, proof of stake, proof
of elapsed time.

Sessional II
Blue Origin Space Exploration. Amazon
Robotics

IoT shows up in many robotics and robotic-like


settings.
Week-11 Assignment-03
BlockChain Puzzles and Concerns

BlockChain has been adopted so enthusiastically


that early users are seemingly ignoring a great
many puzzles. We'll discuss a few of them.

Blockchain with multiple organizations


Week -12

7 NCEAC.FORM.001.D
National Computing Education Accreditation Council
NCEAC

NCEAC.FORM.001-D

A puzzle for big enterprises is that many activities


span more than one company, and each might
need to keep its own blockchain. We'll look at how
this makes access control and querying more
difficult than it would have been with just one
company using the blockchain

More on Security and Privacy in Cloud


Computing

Security and Privacy in Cloud will be discussed in


details
Accessing collections from modern
programming languages

In this lecture we will look at technologies for


accessing databases or other kinds of collections
from programming languages like Python or C++.
Week 13 Assignment-04
Specifically, we'll look first at Pandas, which is a
Python add-on package for doing database
accesses right in your program. Then we'll pivot to
Azure and will look at LINQ, a general framework
available from every programming language
offered by Microsoft.
Making The Cloud Friendlier for Object-
Oriented Computing

Many modern systems are object oriented, yet


Linux was born in a world of record-oriented
databases and files containing things like binaries
or text data. As a result there has been a push to
make the cloud more object-friendly. We saw this
in lecture 18 when we discussed the LINQ tools for
embedding database access directly into
programming languages by extending the concept
Week-14 of a collection with a variety of OO primitives. Semester Project
This is a two-part lecture. First, we will discuss
Ceph, an open-source file system designed using
the Apache architecture that has a number of
optimizations for object oriented computing (Ceph
is not a component of Apache "per se" but is very
often used in Apache applications). Next, we will
look at an overhead issue that can arise when an
object oriented application buys fully into this
always-distributed, multiple-component mindset,
and also at how that issue was solved in a specific
setting (an air traffic control system in Europe).
Social networking data: How the cloud deals
Week-15 with huge graphs

8 NCEAC.FORM.001.D
National Computing Education Accreditation Council
NCEAC

NCEAC.FORM.001-D

We will look at one example of an existing big data


infrastructure (Facebook TAO) and how modern
systems access social networking graphs.

Project Demos and Presentations

9 NCEAC.FORM.001.D

You might also like