Syllabus
CS2520R: Advanced Topics in Programming Languages
This term (Fall 2026): Future of Programming
Class meeting time: TR 11:15 – 12:30
Class meeting room: TBD
Course website: https://future.metareflection.club
Instructor: Nada Amin (namin@seas.harvard.edu)
Teaching Fellow: Simon Henniger (shenniger@g.harvard.edu)
Course description
The topic for CS2520R Fall 2026 is the Future of Programming.
In 1843, Ada Lovelace wrote what is today recognized as the first ever computer program. By the 1950s, the corresponding computers had been invented to run programs on, and the first approaches to higher and structured programming emerged, paving the way to today’s mass production of programs.
By 1995, programming had reached the mainstream. That’s when Steve Jobs said: “everybody should learn to program a computer, because it teaches you how to think”.
In early 2025, Claude Code launched, the first LLM-based system that could automated many programming tasks. The same year, Andrej Karpathy coined the term “vibecoding”. In 2027, academic researchers reached a consensus that LLM agents had overtaken even the must capable human programmers. By the late 2020s, programming was considered as obselete a business as ice home delivery, and mankind was happy to have finally rid itself of having to deal with all the pesky loops, unit tests and design patterns. Everyone lived happily ever after… or did they?
This fall, in CS2520r, we work to build the future of programming. To do so, we will undertake an exploration into the intellectual legacy of the art (or is it a craft? a science?) of programming. We will then consider patterns and scenarios of how programming may develop. Will all human programmers be replaced by machines? Will we continue to teach programming in the age of vibe coding? Will we see human-AI collaboration and how might that look? How can we harden these models against faulty or malicious AI models, and retain (and improve) our trust in computer systems?
This is a discussion-based and project-based class. We do not know either what the future will bring, so let us build it together. We will read and present papers and other kinds of articles. In addition, semi-weekly homework is assigned, which usually takes the shape of technical explorations, as well as an open-ended opinion/vision midterm essay (from which a project proposal can develop). Students give presentations and undertake substantial projects on future programming systems. Despite the seminar approach, this is a highly technical class: we read research papers and we expect every project to come with a functional prototype.
Teaching Philosophy
Learning by doing is fun and rewarding.
Course objectives
By the end of the course, the students will be able to use principled programming methods to design and implement systems. Students will practice studying programming language and system papers and artifacts critically, as well as developing their own.
Course policies and expectations
Students are expected to attend and participate in the class meetings twice a week. Students will have to complete some homework assignments (roughly semiweekly). In addition, they are expected to lead a presentation on the paper/system/approach/topic of their choice of about 15-20 minutes length (plus time for Q&A as needed). Further, students are expected to complete a midterm essay from which a project proposal can develop (about 4-6 pages). Finally, students are expected to work early and often on their final projects. They can find times to discuss their topic with the course staff. Ideally but not necessarily, the topic of a student’s presentation and essay will be related to their final project. We might also use class time to discuss projects. Projects can be done in group, with each individual making a substantial contributions. Group projects will be expected to be more substantial than solo projects. We expect students to share their work privately with the class or publically on the web.
Materials and Access
TBD. We use Ed for discussions.
Assignments and Grading Procedure
Feedback will be given on pre-defined assignments, lead meetings, the midterm essay, on participation and on final project progress throughout the semester. Contact the TF for more details.
Template for paper discussion and presentation
- What is the key idea of the paper?
- What did you learn from the paper and how can you use it in your own projects?
- Can you run the artifact and experiment with it?
- For the interface, what are the primitives, the means of combination, and the means of abstraction?
Template for project
- What is the project exploring?
- What are the methods used?
- What problems does the project solve?
- How does the system use neurosymbolic programming?
- Is the project well-documented and usable by others?
- For the interface, what are the primitives, the means of combination, and the means of abstraction?
Academic Integrity
Please see the Honor Code.
Accommodations for students with disabilities
Students needing academic adjustments or accommodations because of a documented disability must present their Faculty Letter from the Accessible Education Office (AEO) and speak with the professor by the end of the second week of the term. Failure to do so may result in the Course Head’s inability to respond in a timely manner. All discussions will remain confidential, although Faculty are invited to contact AEO to discuss appropriate implementation.