CS 239: Topics in the intersection of systems and programming languages

Course ID: CS239 Current Topics in CS
Instructor: Konstantinos Kallas (he/they) (kkallas@ucla.edu) (Website)
Meeting Time & Location: TBD
Office Hours: By appointment

Synopsis

This graduate-level course covers advanced topics related to the design and implementation of software systems that either target real programming languages and environments, or use insights from the field of programming languages and compilers. Topics that we will cover include optimization systems for scripting languages like Python and Notebooks, as well as reasoning about the performance and correctness of real-world software systems.

The course has three main axes: paper reading, paper writing, and conducting research. Discussion-oriented classes focus on in-depth analysis of readings. Students will do a collaborative final research project on topic of their choice. The project is intended to align with the student interests, with the potential to contribute toward a publication in a top-tier venue. Guided by the final project and inspired by the papers we read, throughout the course students will also learn how to write a research paper.

By the end of the course, students should be able to:

The course is intended for any students (graduate or undergraduate) who are interested in the above. Since the size of the class is limited, not all students might be able to enroll. However if you are interested in the course, sign up for the waitlist and come to the first lecture. I will try to enroll as many waitlisted students as possible if there is significant interest.

Prerequisites

No strict prerequisites, but having taken courses on systems topics would be useful. Some example relevant courses are: Distributed Systems (CS 134), Compilers (CS 132), Programming Languages (CS 131), Operating Systems (CS 111), Web Applications (CS 144), Parallel and Distributed Computing (CS 133), Data Management Systems (CS 143), and Networks (CS 118).

Grading

Response papers (20%); Participation/Discussion (30%); Project (Paper + Presentation) (50%).

Response papers

Students will prepare an insightful critique of the assigned papers due at the beginning of class. These response papers should address the following three axes: problem statement, key insight, evaluation. Read this post for more context on important axes of systems papers. The response papers can be as short as 0.5 pages and no longer than 1 page.

Participation/Discussion

This course focuses heavily on class participation and discussion. Students are expected to read the assigned papers and prepare for discussions.

Project

Teams of up to four students will define and execute a research project in the area of systems and programming languages, broadly defined. The goal is for the project to align with the students' existing research and be a steping stone for a publication at a top-tier venue. Students will write a research paper and make a final presentation.

Reading list

We will be reading papers from conferences like: SOSP, PLDI, OSDI, ASPLOS, NSDI, EuroSys, POPL, ATC, OOPSLA, ICFP, and SoCC.

The precise reading list will be announced soon.