| Component | Weight |
|---|---|
| Assignment 1 — use an agent | 15% |
| Assignment 2 — design an agent | 15% |
| Assignment 3 — serve your own agent | 15% |
| Assignment 4 — optimize the full stack | 15% |
| Cache Competition | 10% |
| Final Exam — live agentic optimization sprint | 20% |
| Paper Presentation | 5% |
| Class Participation — discussion plus the four student sharing sessions | 5% |
| Bonus (course feedback & problems AI cannot solve) | up to 10% |
There is no graded course project. The open-ended build it used to carry now lives as an ungraded optional project, for students who want it; its former weight sits on the four assignments and the final exam. The final exam is a three-hour hands-on sprint, not a written paper — see the exam policy below and the exam page. There is no curve set in advance; if the class as a whole finds an assessment harder than intended, the instructor may adjust upward, never downward.
The final exam is worth 20% and is a hands-on session, not a written paper. You bring the agentic system you built in Assignment 4, receive a task it has never seen, and have roughly three hours to adapt it while the class competes on accuracy and speed. Full format, rules, and scoring are on the exam page.
You have four late days for the semester, to spend as you like across the four assignments. Late days are counted in whole days: a submission one minute past the deadline consumes one full late day.
Regrade requests are accepted for seven days after grades are released. Submit them in writing (Canvas or email) with a specific explanation of what you believe was misgraded and why. Please do not open a regrade request over a single point — use it when you think a substantive part of your work was misread.
A regrade is a re-evaluation of the entire question or artifact, not just the disputed part, so your score may go up or down.
We plan to host guest speakers from industry who build the systems we study. These are among the most valuable sessions of the course and attendance is expected. Please come with questions — the speakers are giving up their time and a silent room is a wasted opportunity.
Recording, photographing, or redistributing guest lectures is not permitted unless the speaker explicitly agrees.
Up to 10% of bonus credit is available, from two sources.
This field moves faster than model training runs, so a great deal of what these systems "know" about GPUs, serving frameworks, and kernel APIs is quietly out of date. Finding those gaps is a genuinely useful skill and it is the point of this exercise. A submission needs all four of:
You may use AI tools throughout this course. This is a course about the systems underneath these tools, and pretending they do not exist would be strange. Two conditions apply.
Disclose. Every submitted artifact must include a short note describing which tools you used and for what — a couple of sentences is enough. Undisclosed AI use is an integrity violation; disclosed AI use never is.
Own it. You are responsible for everything you submit. If an AI tool generates code with a subtle bug, a benchmark with a methodological flaw, or a claim about a paper that the paper does not make, that is your error. In discussion, in your presentation, and in questions afterwards, you will be expected to explain your own work without assistance — which is, in practice, the check that matters.
Attendance is expected. Participation is 5% of the grade and cannot be earned from an empty seat. Paper discussion sessions in the second half of the term depend on the room having read the paper — a discussion class with an unprepared audience does not work.
Laptops and tablets are welcome for note-taking and for following along with code. Please keep them closed during student presentations and guest lectures; presenting to a wall of screens is dispiriting, and your classmates deserve the same attention you will want when it is your turn.
If you must miss a class, no permission is needed — but let the instructor know in advance if it falls on a day you are presenting.
Harvard supports students in observing their religious and spiritual traditions while participating fully in their academic work. If a religious or spiritual observance conflicts with a class meeting, an assignment, or any other course requirement, please contact me as early as possible so that we can try to identify an appropriate academic flexibility consistent with course requirements and University policies.
Because observances and practices vary across traditions and individuals, you do not need to limit requests to dates included on a published religious calendar. Students are encouraged to review the Harvard Multifaith Calendar and the Harvard Chaplains resources at the beginning of the term, and to communicate anticipated conflicts early whenever possible.
Concretely, in this course:
You do not need to explain or justify your tradition or your practice to me. “I have a religious observance on date” is a complete request.
Discussing ideas with classmates is encouraged. Reading papers together, arguing about a design, and debugging alongside each other are all part of how systems work gets done.
What is not acceptable: submitting work you did not do, copying text or code without attribution, fabricating experimental results, or misrepresenting what a measurement shows. Fabricated numbers are the one thing in this course that will be treated as a serious violation without exception — a systems paper whose evaluation cannot be trusted is worthless, and the same holds here.
Cite your sources: papers, blog posts, repositories, and AI tools alike. All work is subject to the Harvard College Honor Code and to GSAS academic integrity policy where applicable.
This course is intended for students of all backgrounds. Students come to AI systems from machine learning, from operating systems, from architecture, and from industry, and the mix is what makes the discussions good. Nobody arrives knowing all of it.
If anything about the course — its pace, its assumptions about prior knowledge, its examples — is making it harder for you to participate, please tell the instructor. That feedback is genuinely useful and it will be acted on.
Students needing academic accommodations should contact the Disability Access Office and let the instructor know as early in the term as possible, ideally within the first two weeks.
Auditors are welcome if there is room. Please email the instructor before the first class. Auditors are expected to do the reading for discussion sessions they attend — the discussion format depends on it — but do not submit assignments and are not graded.
Graduate systems courses have a way of expanding to fill all available time. The four assignments are substantial, and the optional project makes it easy to overcommit on top of them — it is optional precisely so you can decline it. If the workload is becoming unmanageable, talk to the instructor before it becomes a crisis; scope can usually be adjusted.
Harvard has resources available at any hour:
Your health matters more than any deadline on this page.
Questions that come up most often. If yours is not here, email the instructor or come to office hours — if it is a good question it will end up on this page.
At least one of CS61, CS1610, or CS2620. What actually matters is that you are comfortable reasoning about memory, caches, and concurrency, and that you can read and write Python and PyTorch. Prior ML coursework helps but is not required — we care about the systems, not about training models to convergence.
No, and no assignment requires it. Lecture covers attention kernels and the roofline at the level needed to reason about serving cost; GPU architecture and Triton kernel programming are an optional track rather than lecture material. Work through that track if you want the kernel-level optimization path in Assignment 4 — there are other paths that do not need it.
No. We never ask whether a model is accurate — we ask what it costs to train and serve. If you want to study architectures, objectives, or learning theory, this is the wrong course. If you want to know why inference is memory-bound and what anyone can do about it, this is the right one.
Python and PyTorch for most work, Triton if you go down the kernel path, and some C/C++ if your work takes you into a runtime. Reading code is at least as important as writing it here.
Attendance is expected and participation is 5% of the grade. The second half of the course is discussion based and does not work if the room has not read the paper. See the attendance policy.
To be confirmed. Guest lectures will not be recorded unless the speaker agrees.
Yes, subject to two conditions: disclose what you used, and take responsibility for the result. There is bonus credit for finding questions in this subject area that ChatGPT, Claude, and Gemini all get wrong. See the AI use policy.
Yes, if there is room — email the instructor before the first class. Auditors are expected to read the papers for any discussion session they attend.
Yes, but not a written one. There is no midterm. The final is a three-hour hands-on session in the December exam period: you bring your Assignment 4 system, are given a task it has never seen, and adapt it while the class competes on accuracy and speed. It is worth 20%; the rest is four assignments (15% each), the cache competition (10%), your paper presentation (5%), and class participation (5%). There is no graded course project. See the grading breakdown, the exam policy, and the exam page.
Not by memorising anything — there is nothing to recite. You prepare by making your Assignment 4 system easy to change: task details as configuration rather than constants, profiling on by default, a tagged commit you can roll back to, and one rehearsal against a workload it was never tuned for. How to prepare spells this out.
Yes — teams of two or three work best. The optional project is ungraded, so team composition is entirely up to you; the four graded assignments are individual.
No. Compute will be available through FASRC and CloudLab; details are on the optional project page. The assignments and the cache competition are sized for a single GPU — scope your work to the hardware you can actually get, and start early, because queue time is real.
Yes, and it often makes for the best projects. Since it is ungraded there is nothing to declare — but tell the instructor what you are working on if you want feedback or compute.
Four class meetings — Oct 1, Oct 15, Oct 29, and Nov 24 — given over to students presenting what they built for the assignment that just came due. Short, informal, and not separately graded; they count toward the 5% participation component. Bring something that runs and one number you did not expect. A result that did not work is as useful to the room as one that did.
Plan on the reading (one to two papers per discussion class) plus the four assignments, which are substantial and spaced roughly three weeks apart. Assignments 3 and 4 dominate the second half of the term; start them the week they come out rather than the week they are due.
Yes — OSTEP for systems background, the Ultra-Scale Playbook for distributed training, the CUDA programming guide for GPU details — it is the entry point for the optional GPU programming track — and the AI resources list on the optional project page.
Email the instructor or come to office hours. If it is a good question it will end up on this page.