1952R/2952R: Systems Transforming Systems
Automatically improve existing systems—in terms of performance, security, correctness, and beyond!
Do not worry about CAB, we will approve all override requests after the first lecture—everyone who wants to take this course will take this course!
Course description
This seminarQuick Links: Schedule
& Topics, Reading &
References, Projects &
Milestones, Other Details.
combines cutting-edge systems research authentic to the
discipline with academic communication, especially technical writing. It
explores novel techniques for automatically augmenting software systems
with new capabilities—including parallelism, distribution, isolation,
correctness, and security. With an equal focus on advanced scientific
topics and technical writing, the seminar is centered around group
projects of 4–5 members designed carefully, and with appropriate
support, to result in paper publications at top-tier conferences in the
field of software systems.
The seminar comes in two versions:See research results from prevous iterations: 2024
COEX
- and WRIT
-designated 1952R
or 2952R (see combined syllabus).
Successful outcomes from last year’s seminar
include a Best Paper Award (Usenix ATC’26), publications at some of the
finest computing outlets in the world (e.g., HotOS’25, ATC’25,
and NSDI’26),
some press coverage (e.g., The
Register, InfoWorld),
and many other paper submissions.
Examples of transformations: Techniques and systems developed in the seminar will automatically secure the following code against entire classes of supply-chain threats…
let fs = require("fs"), lp = require("leftpad");
fs.readFile('./book.txt', 'utf-8', (data, erro) => {
console.log(lp(data);
});
…and automatically transform the following processing pipeline—which calculates record temperatures across the U.S. in 2025—to run on as many computers as there are available:
S="ftp://ftp.ncdc.noaa.gov/pub/data/noaa/2023" # This can point to our server, so that we don't overload NOAA's servers
curl -s $S | grep gz | tr -s ' ' | cut -d ' ' -f9 | sed "s;^;$S;" | xargs -n1 curl -s | gunzip | cut -c 89-92 | grep -v 999 | sort -rn | head
What to expect: As part of the primary focus, scientific research, we will investigate state-of-the-art systems research—e.g., building real systems, systematizing prior literature, and crafting evaluation benchmarks. As part of the secondary focus, technical writing, we will work on our academic and technical communication—with an emphasis on all aspects of writing and publishing scientific papers. Throughout the semester, we will be using the various topics of the former as vehicles to explore, study, and practice the latter.
Schedule & Topics
Here is a tentative schedule. The final schedule will depend on participant interests.
Date | Science (project # ) |
Writing (recipe; tips) | Milestone |
---|---|---|---|
1:09/03 | Intro; projects | Intro; examples; overview | Form, foundations: 1, 2, 3 |
2:09/10 | Transformorphic computing | Paper structure; foundations | Project selection, team matching, writing warmup |
3:09/17 | Least privilege (#7 ) |
Related work; basics | All presentations |
4:09/24 | Benchmarks (#2 ) |
Running example; correctness | Running example |
5:10/01 | μServices & scaleout (#3 ) |
Thesis & questions; actions | re:example, thesis notes |
6:10/08 | Fault tolerance (#9 ) |
Evaluation; characters | Evaluation structure |
7:10/15 | Static analysis (#11 , #13 ) |
Figures; cohe{sion,rence} | re:evaluation, intro notes |
8:10/22 | Specification mining (#12 ) |
Introduction; emphasis | Introduction |
9:10/29 | Reactivity (#1 ) |
Abstract & title; framing | Re:intro, abstract, title, rewrite |
10:11/05 | Sandboxing (#4 ) |
Visuals; concision | Visuals, e2e rewrite |
11:11/12 | Serverless (#8 ) |
Semantics & related; shape | Related work |
12:11/19 | Compartmentalization (#5 ) |
Tech sections; Elegance | Technical sections |
– | |||
13:12/03 | Everything else & AMA | Conclusion; next steps | Full paper |
The start: Week 1 focuses on project selection, situation within a project, and project organization and planning. Week 2 focuses on related work—all teams will prepare their paper presentations this week. Implementation starts around week 3 and proceeds in parallel with other milestones, to ensure teams get results early. Please attend the first lecture!
Reading & References
The primary source is the lectures—i.e., there is no required textbook for this course, and thus there are no costs for students. The seminar’s two foci, scientific research and academic communication with technical writing, will draw content from multiple sources.
Scientific research: The research component will draw from classic and recent literature on systems—including one developed by past seminar students. The first week will focus on 2.5 foundation papers, common for all groups:
Zhicheng Huang, Ramiz Dundar, Yizheng Xie, Konstantinos Kallas, and Nikos Vasilakis. Fractal: Fault-Tolerant Shell-Script Distribution, USENIX NSDI 2026.
George Christou, Grigoris Ntousakis, Eric Lahtinen, Sotiris Ioannidis, Vasileios P. Kemerlis, and Nikos Vasilakis. BinWrap: Hybrid Protection Against Native Node.js Add-ons, ACM AsiaCCS, 2023.
Lukas Lazarek, Seong-Heon Jung, Evangelos Lamprou, Zekai Li, Anirudh Narsipur, Eric Zhao, Michael Greenberg, Konstantinos Kallas, Konstantinos Mamouras, and Nikos Vasilakis. From Ahead-of- to Just-in-Time and Back Again: Static Analysis for Unix Shell Programs, ACM HotOS, 2025.
The second week will focus on project-specific papers—i.e., literature related to each project, which the corresponding group will eventually present to the class later in the semester.
Academic communication: The communication and writing component will draw from multiple sources, including:
Style: Lessons in Clarity and Grace, by Joseph Williams and Joseph Bizup, Pearson (12th edition, ISBN 978-0134080413; copies borrowable from the instructor or about $65 on Amazon).
Elements of Style, 4th Edition, by Strunk and White, Pearson (ISBN 978-0205309023). A copy (e.g., $7 on Amazon) can be read online or borrowed from Brown.
The Sense of Style, by Stephen Pinker, Viking (ISBN 978-0670025855). A copy (e.g., $16 on Amazon) can be borrowed from the instructor.
At times, we will use video or other media to get inspiration on or insights into other aspects of the course that are not easily covered through traditional textbooks or research papers — but also to work on our oral technical communication skills. Examples include videos on the thesis statement and research paper writing.
Typesetting: We will be using LaTeX to typeset our papers professionally—likely with the acmart class, all bundled under the 2952R template repository. For a quick start, check out Learn LaTeX in 30 minutes or the slightly longer Very Short Guide to LaTeX.
Projects & Policies
Projects: Specific projects will be discussed in the first class. Example projects inlude (i) language-based module-level compartmentalization, (ii) ahead-of-time black-box performance analysis, (iii) effect control subsystems, and (iv) distribution-oblivious transformation to microservices. Milestones include all phases (and corresponding sections) of writing a systems paper, including (i) overview of prior research, (ii) introduction, thesis, and contributions, (iii) system evaluation and characterization, (iv) a running example, and more.
Policies: Contrary to many classes, this one encourages collaboration within and across teams: the subject of the class as well as some of the tools are complex—as a result, it may be necessary to collaborate as a class on figuring out how to best internalize the content, use existing tools, and produce the results you want. This collaboration additionally helps get different perspectives on the same subject, and even catch or correct misconceptions early on. Students are thus encouraged to interact with each other as much as possible.
Other Details
To facilitate course interactions, we will use a dedicated Discord server and GitHub organization. In the first weeks, participants need to complete a form to get access to resources.
Prerequisites: The expectation is that students will have taken at least one systems course—at Brown CS0300/1310: Systems Fundamentals, CS0320: Software Engineering, CS0330/1330: Systems Intro, CS1260: Compilers & Analysis, CS1380: Distributed Systems, and CS1650: Software Security. Familiarity with a programming language and excitement are important; the course will cover the rest—attend the first lecture to find out!
Whereabouts & Contact: We meet on Wednesdays, 3–5:30pm, CIT 227 and Zoom. Here is a Google Calendar with all the important info.
More info: The 2025 syllabus.