Teaching

Fall 2024: CSCI 5980 - Cloud Computing

Meeting time: 9:45 AM‑12:00 PM TTh 

Instructor: Ali Anwar

Cloud computing serves many large-scale applications ranging from search engines like Google to social networking websites like Facebook to online stores like Amazon. More recently, cloud computing has emerged as an essential technology to enable emerging fields such as Artificial Intelligence (AI), the Internet of Things (IoT), and Machine Learning. The exponential growth of data availability and demands for security and speed has made the cloud computing paradigm necessary for reliable, financially economical, and scalable computation. The dynamicity and flexibility of Cloud computing have opened up many new forms of deploying applications on infrastructure that cloud service providers offer, such as renting of computation resources and serverless computing.

This course will cover the fundamentals of cloud services management and cloud software development, including but not limited to design patterns, application programming interfaces, and underlying middleware technologies. More specifically, we will cover the topics of cloud computing service models, data centers resource management, task scheduling, resource virtualization, SLAs, cloud security, software defined networks and storage, cloud storage, and programming models. We will also discuss data center design and management strategies, which enable the economic and technological benefits of cloud computing. Lastly, we will study cloud storage concepts like data distribution, durability, consistency, and redundancy.

Registration prerequisites: CSCI 4061, CSCI 2021, or undergraduate level computer systems course.

Fall 2023: CSCI 5980 - Cloud Computing

Meeting time: 9:45 AM‑12:00 PM TTh 

Instructor: Ali Anwar

Cloud computing serves many large-scale applications ranging from search engines like Google to social networking websites like Facebook to online stores like Amazon. More recently, cloud computing has emerged as an essential technology to enable emerging fields such as Artificial Intelligence (AI), the Internet of Things (IoT), and Machine Learning. The exponential growth of data availability and demands for security and speed has made the cloud computing paradigm necessary for reliable, financially economical, and scalable computation. The dynamicity and flexibility of Cloud computing have opened up many new forms of deploying applications on infrastructure that cloud service providers offer, such as renting of computation resources and serverless computing.

This course will cover the fundamentals of cloud services management and cloud software development, including but not limited to design patterns, application programming interfaces, and underlying middleware technologies. More specifically, we will cover the topics of cloud computing service models, data centers resource management, task scheduling, resource virtualization, SLAs, cloud security, software defined networks and storage, cloud storage, and programming models. We will also discuss data center design and management strategies, which enable the economic and technological benefits of cloud computing. Lastly, we will study cloud storage concepts like data distribution, durability, consistency, and redundancy.

Registration prerequisites: None.

Fall 2022: CSCI 8980 - Topics in Modern Distributed Systems

Meeting time: 11:15 AM‑12:30 PM TTh 

Instructor: Ali Anwar

Distributed Systems enable large scale modern applications ranging from internet-scale applications like Facebook, Google to web-based services like AWS, Azure, Amazon Lambda to distributed machine learning like Federated Learning. This course will cover various topics of distributed system, storage, and networking; including but not limited to cloud object stores, serverless frameworks, AI/deep learning, scheduling internet scale applications, containers, resource management, key value stores, and so on. We will discuss research papers from top conferences to fuel brainstorming sessions to generate cool and novel ideas. Students will also get the opportunity to build real world large scale distributed systems to realize the new ideas discussed in class.

Registration prerequisites: Have taken undergraduate-level Operating System or a similar course.