Welcome to Modern Data Systems: CS145

We rebuilt CS145 as a modern data systems course for the agent era. Earlier versions focused on web and cloud systems.

Twenty course questions arranged in four columns: data stacks for AI agents, reads at scale, writes at scale, and trust, security, and streaming. Each question includes the systems techniques the course uses to answer it.

Figure 1. CS145 starts with twenty production questions. Each answer introduces a systems technique you can reuse.

The course organizes modern data systems around these twenty questions. Each connects a production requirement to the mechanism that satisfies it. The Modules page lists every question and the level of the stack where the course answers it.

A four-column grid comparing banks and retail in the 1970s to 1980s, the web from 1995 to 2010, the cloud era from 2004 onwards, and AI agents from 2025 onwards. Four rows compare the products of each era, who is on the other end of the query, the hard question each era had to answer, and what the industry invested in during it, escalating from hundreds of clerks to millions reading to billions writing at human pace to machines at machine pace.

Figure 2. Each era shifted the party issuing the query. CS145 targets the agent era.

The rest of this page is how the class runs. For who built it and how the site is put together, see About.

Before You Start

Three panels. Python and Colab, marked required with an ink strip: read Python, run a notebook, open a Colab and execute a cell. Then CS 161 Algorithms, giving sort, hash and complexity, and CS 111 Systems, giving filesystems, the memory hierarchy and scheduling, both marked as helping rather than required.

Figure 3. The course leans on the concepts from CS161 and CS111 more than the coursework. Use PSET 0 to check where you stand.

How It Works

Every week runs the same three steps, in this order: you follow the lectures, you practice in section, and you read on your own time. Week 7 has a single lecture. The page used in lecture is the page you read afterward, at the same URL.

The top block is one week in three lanes, read top to bottom in the order you do them: LECTURES holds the Tuesday and Thursday lectures, PRACTICE shows section slots on Wednesday and Friday running the same Colab walkthrough, and READING, tagged own time, holds two smaller cards: the lecture page in Notes with its three to five minute video, and the week's reading list of required pages plus a case study. Students pick one section slot; timings are on Ed. A dotted rail down the left carries each lane into the next. Between the blocks, a line says section and the reading are your prep for the PSET, which is the same material on your own, graded. The bottom block is the quarter: eleven week columns with the module each covers, M1 SQL through M5 Distributed, a break at week ten and industry lessons at week eleven, then two rows of real deadlines. Six PSETs, M0 Sep 25, M1 Oct 5, M2 Oct 12, M3 Oct 19, M4 Nov 9 and M5 Dec 2, each landing after the module it covers. Three project milestones: Project 1 Oct 16, the Project 2 proposal Oct 30, and Project 2 Nov 20.

Figure 4. Section and the reading are your prep for the graded PSET. Lectures run Tuesday and Thursday; pick one section slot (timings on Ed). The bottom block is that same week across all eleven: a PSET follows its module.

How Grading Works

CS145 calculates two grading paths and automatically uses the higher score.

A hundred-point scale. The first fifty points are fixed for everyone: Project 1 worth ten, PSets worth fifteen, Project 2 worth twenty-five. From the fifty-point mark the bar splits: Path 1 accrues fifteen points from nano quizzes and puts thirty-five on the final, Path 2 is a final worth fifty, and a brace marks that you are given whichever scores higher.

Figure 5. Everyone earns 50 fixed points: Project 1 for 10, PSets for 15, Project 2 for 25. The remaining 50 points come from either Path 1 or Path 2, and the course uses the higher score. Path 1 accrues 15 points from nano quizzes across the term and puts 35 on the final. Path 2 assigns all 50 to the final.

Nano quizzes begin in Week 2. They are completion-graded submitted with your Stanford email. Each lecture quiz is worth 0.5 points (18 quizzes, 9 points available), and each section quiz is worth 0.75 points (10 quizzes, 7.5 points available). We cap the total at 15 of the 16.5 available points, so you can miss a few. Everyone receives full credit for Lecture 2 and the Week 1 section.

Lecture quizzes close at 6:30 pm Pacific on the day of lecture; students watching synchronously on Panopto may submit them. For section, the CA shares a password during the first hour, and credit requires attending that full hour. Do not share quiz links or section passwords. There are no makeups. See the nano-quiz announcement on Ed for full details.

Grade = Projects + PSets + max(Final @ 35% + Quizzes @ 15%, Final @ 50%)

Grade scale

  • ≥ 97: A+, ≥ 93: A, ≥ 90: A−

  • ≥ 87: B+, ≥ 83: B, ≥ 80: B−

  • ≥ 77: C+, ≥ 73: C, ≥ 70: C−

  • ≥ 60: D, < 60: F

P/NP: need at least a C− (≥ 70) to pass.

Units

4 units is the default. The material and pacing match 4 units. You may enroll for 3. The course expectations stay the same.

Final Exam

Exam conflict policy: no rescheduling of the final exam.

  • OAE accommodations: same day, extended hours, alternate location

  • Verify conflicts before enrolling in CS145

  • For illness or emergencies on exam day, see the "When life gets in the way" section below

When life gets in the way

The class offers built-in slack: 2 PSET late days, 2 project late days, Path 2, and CA sessions.

For final-exam emergencies, please contact us through a private Ed post or email the course staff directly.

Incompletes from a missed final resolve the next time CS145 runs (usually once a year). See Stanford's Incomplete policy and talk to your undergrad advisor.

Frequently Asked Questions

Q: What time are PSETs and projects due?

PSETs and projects are due at 11:59 pm Pacific on the stated deadline. You have 2 PSET late days and 2 project late days for the quarter; they cannot be exchanged. Each adds exactly 24 hours, including weekends and holidays. Use one day on each of two assignments or both on one, within the same category. Submissions beyond your allowed extension receive no credit. No late days apply to the Project 2 proposal, due October 30 at 11:59 pm Pacific.

In case of extenuating circumstances, only the head CA can grant additional extensions. Please reach out through a private Ed post before the deadline, or as soon as you can if circumstances prevent that.

Q: Are lectures and sections optional?

Yes. If you miss class, Path 2 applies automatically. No form and no penalty. If you attend, live nano quizzes can lower the final's weight from 50% to 35%. You are responsible for the material either way. It carries into your PSets, your projects, and every assessment.

Q: Why nano quizzes?

Nano quizzes are a low-stakes way to help you stay in sync with the course material. Together they are worth 15 points, so there is no separate midterm. Path 2 covers missed quizzes automatically.

Q: I'm a CGOE student or can't get to campus. Can I still take the course?

Yes. Every lecture page and its three-to-five-minute video are available on this site. Every lecture will be on Canvas. At least one of the section walkthroughs will be posted as a video on Ed. All PSets and projects are submitted online. Path 2 applies automatically, with the final worth 50%.

Q: How should I prepare for the final exam?

The PSETs and your project work provide the best preparation. See CS145 Exam Prep for the exam format and practice-exam release timing.

Q: Are there PDFs?

Yes. The live slides are usually the best version because they stay current and include the interactive material. If you prefer a fixed, printable copy, use the lecture PDF archive.

Q: Can I audit the class?

Stanford community members are welcome to audit CS145 and complete the PSets. Sign up over here with your Stanford account. We periodically add auditors to Ed and Canvas. We cannot accept project or exam submissions from auditors.

Q: Do I have to choose a path?

No. At the end of the course, we calculate both totals and you get the higher one. Nano quizzes can only improve your Path 1 score.

Q: I missed a lecture. How do I catch up?

Open the Schedule and find the pages listed for that day. Each page includes a short video. For section, use the posted Colab walkthroughs and run the notebook when convenient. Path 2 automatically accounts for the missed quiz points.

Accessibility

Students with OAE needs are a valued part of Stanford. If you already have an Academic Accommodation Letter, upload it to Gradescope at the earliest opportunity so we can partner with you and OAE to identify any barriers to access in this course.

OAE accommodations apply to the final exam (extended time, alternate location, alternate timing) and to deadline accommodations on PSets and projects.

AI Policy: Learn Like You'll Work

Two panels. On the projects, every AI tool is allowed and credited for learning, brainstorming and debugging; you get practice drafting the SQL yourself, and the grade is on verifying the answer, fixing the semantics, cutting the cost and defending the design. On the paper test there is no AI, since it stands in for a whiteboard interview and measures systems thinking you carry yourself.

Figure 6. On projects, draft your code first, then any AI tool and credit it; your grade is on verifying the answer, fixing the semantics, cutting cost, and defending the design. The paper test is AI-free, a stand-in for the whiteboard interview.

Teaching Team

Shiva

ShivaInstructor · CS145 '94 · Teaching since 2018

Jason Hu

Jason HuHead CA · CS145 '24

Ananya GanapathiAnanya Ganapathi

Aryan KatiyarAryan Katiyar

Ganesh Venu

Ganesh VenuCS145 '25

Jason ShinJason Shin

Owen Jung

Owen JungCS145 '25

Qirui ZhengQirui Zheng

Yixiao Zhang

Yixiao ZhangCS145 '25

Yufei LiuYufei Liu