Future of Programming
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.