NETS 2120
Scalable and Cloud Computing
Spring 2024
Course Description
What is the "cloud"? How do we build software systems and components that scale to millions of users and petabytes of data, and are "always available"?
In the modern Internet, virtually all large Web services run atop multiple geographically distributed data centers: Google, Yahoo, Facebook, iTunes, Amazon, eBay, Bing, etc. Services must scale across thousands of machines, tolerate faults, and support thousands of concurrent requests. Similar capabilities, provided on a commercial basis, now form the backbone of virtually every tech company -- including the tech companies at the forefront of AI, data engineering, commerce, social media, and more.
This course, aimed at a sophomore with exposure to basic programming within the context of a single machine, focuses on the issues and programming models related to such cloud and distributed data processing technologies: data partitioning, storage schemes, stream processing, and "mostly shared-nothing" parallel algorithms.
NETS2120 is a required course for the NETS program and a core requirement for the Data Science Minor. It also counts as a project elective for CSCI and ASCS, and as an Information Systems Elective for SSE.
Logistics
Prerequisites: CIS 1200 and CIS 1600, or equivalent
Lectures are MW 12:00-1:30 pm (STIT 261)
Occasional video recitations will be used to supplement the "how-to" aspects of the course.
We will use Canvas in a minimal way for this course, primarily relying on Gradescope and Ed Discussion.
Grading rubric:
Homework 30%
Term project 30% 47.5%
Exams 35% 17.5%
Participation/quizzes 5%