Skip to main content

ICS 663 Cloud Application Design and Development

Through analysis of research literature, lectures, and hand-on projects, this course aims to equip students with the fundamental knowledge and skills necessary to design, develop, deploy, and manage cloud-based solutions. Topics covered include fundamental cloud concepts (e.g., virtualization, multi-tenancy, elasticity, scalability, fault tolerance, and reliability), categories of cloud services (e.g., compute, storage, networking, data management and analytics), and cloud programming models and frameworks (e.g., containers, serverless, Hadoop, and web services). Students will develop a software system utilizing cloud services provided by popular cloud service providers (e.g., Amazon Web Services (AWS), Google Cloud Platform (GCP) or Microsoft Azure).

Special information

First day attendance is mandatory.
Prerequisites: Distributed and Parallel Programming (equivalent to ICS 440), Networks and Security (ICS 460), and Operating systems (equivalent to ICS 462). Note: Graduate standing. Students are responsible to both be aware of and abide by prerequisites for ICS courses for which they enroll, and will be administratively dropped from a course if they have not met prerequisites.
4 Graduate credits

Effective January 1, 2024 to present

Learning outcomes

General

  • Discuss the computer science issues that lays the foundations for cloud computing.
  • Understand the cloud computing concept, its history, motivation, and the implications of utilizing on-premises versus off-premises compute resources.
  • Discuss compute, network and storage virtualization and outline their role in enabling the cloud computing system model.
  • Compare and contrast the types of cloud service models.
  • Explain alternative methods of interacting with provisioned resources (e.g., CLI, GUI, API).
  • Build, deploy, manage, and administer containers and container clusters and architect containerized applications using container registries.
  • Develop and deploy a service utilizing serverless compute services.
  • Explain, compare, and contrast the various cloud data storage abstractions including block storage, object stores, relational databases, and NoSQL stores.
  • Create, populate, access, and manipulate cloud data storage suitable for storing structured or unstructured data.
  • Implement an application using a cloud-based programming framework.
  • Demonstrate expertise in reading, presenting, and criticizing peer-reviewed papers in cloud computing.

Fall 2024

Section Title Instructor books eservices
01 Cloud Application Design and Development Ghanem, Thanaa M Books for ICS-663-01 Fall 2024 Course details for ICS-663-01 Fall 2024