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