BSc:CloudComputing

From IU
Jump to navigation Jump to search

Cloud Computing

  • Course name: Cloud Computing
  • Course number: XYZ
  • Knowledge area: Software Development Fundamentals, Software Engineering, Operating Systems

Administrative details

  • Faculty: Computer Science and Engineering
  • Year of instruction: 3rd year of BS
  • Semester of instruction: 1st semester
  • No. of Credits: 4 ECTS
  • Total workload on average: 144 hours overall
  • Class lecture hours: 2 per week
  • Class tutorial hours: 0
  • Lab hours: 2 per week
  • Individual lab hours: 2 per week
  • Frequency: weekly throughout the semester
  • Grading mode: letters: A, B, C, D

Prerequisites

Students are expected to be proficient in the deployment of applications on a *NIX platform and at least minimally proficient in front end programming. Moreover, they need to have passed:

  • Introduction to Programming I and II
  • Operating Systems and Networks

Course outline

Cloud computing is rapidly becoming the dominant delivery mechanism for computing services. A thorough understanding of the opportunities it offers and the challenges that need to be addressed is important in Data Science:

  • Developers need to know the background and the details of cloud platform and infrastructure offerings,
  • Directors and managers need to be able to decide among architectures and vendors, and
  • Project managers need to be proactive about the cloud.

This course provides working experience with, and an overview of the essential features of Cloud Computing, and puts them into a context of other computing architectures. Students will use multiple cloud providers’ platforms to implement fundamental algorithms as well as make use of these platforms for simpler purposes. This course describes the major variants and delivery models of Cloud Computing with their specific strengths, challenges, and the situations for which they might be best suited. Building on this background, we will then examine many of the quality attributes of software systems to see how well they are supported by the various Cloud architectures. We will pay particular attention to security and integration. Practical exercises will include:

  • Virtualization (Xen, Virtual Machines, Containers),
  • Distributed File Systems (HDFS), and
  • Programming models for distributed computations (MPI, Hadoop MapReduce, Apache Spark).
  • SQL and NoSQL databases (HBase, neo4j)

To build familiarity with the real-world use of Cloud Computing students will learn about and then apply a cost model for using traditional “on premise” deployment of a software system vs a Cloud deployment. Finally, students will build a very simple application on both PaaS and IaaS, starting with analyzing vendor offerings, then selecting a vendor and deploying into their environment.

Expected learning outcomes

  • Be able to identify available Cloud platforms (vendors and architectures) for development, maintenance, and deployment of a new application;
  • Be able to identify the major factors that determine the optimal platform choice for an application, identifying and mitigating risks and exploiting the strengths of the architecture;
  • Be able to analyze the major criteria for application location in light of the type of application;
  • Be a rock star at delivery: beat your deadlines, functionality, performance, and quality metrics;
  • Get hands on experience for big data handling;
  • Be able to pick right tool for data storage and processing.

Expected acquired core competences

  • Concepts and practice of cloud computing

Textbook

Reference material

Most of the materials for this class will be shared as links. A substantial portion of those are updated with each time this class is delivered and therefore will only be posted in the website of the course shortly before the relevant lectures.

Required computer resources

Any student at Innopolis should have the required resource, i.e., a laptop.

Evaluation

All lab assignments must be completed successfully or the course grade will be reduced by one grade for each incomplete or failed lab assignments. Other than potential deduction for incomplete lab assignments, the entire grade will be determined by results on lecture assignments (90%) and positive class participation (10%).