Hack Your Language!

An upper-level undergrad course on programming langauges

Some resources for the course:

Hack Your Language!
A talk with a brief overview of the course.
PLDI 2011 panel on teaching programming languages
Current offering of the course (sp13)
We are making sme changes, such as the project will now compile Lua to JavaScript, rather than interpret it.
UC Berkeley CS164
The course as taught in sp13
The last version of the course.
UC Berkeley CS164
Course calendar
An overview of how lectures, projects, and homeworks fit together in time and knowledge space.
UC Berkeley CS164
Slides, screencasts, reading assignments, homeworks.
UC Berkeley CS164
The nine weekly assignments that build a coroutine interpreter, parser generator, and a browser.
UC Berkeley CS164
Sample of final projects
After building their browser, students design and implement a small language, to gain confidence that they can accomplish this on their own in two weeks.
UC Berkeley CS164
paper: Small languages in an undergraduate PL/Compiler course
Design philosophy for this course, somewhat evolved since this paper was published.
SIGPLAN programming language curriculum workshop (2008)
paper: Discussion Summaries and recommendations
The course follows some of the recommendations we came up at this workshop
SIGPLAN programming language curriculum workshop (2008)


Course on program synthesis

Emina Torlak and I have given an invited tutorial at CAV 2012. The tutorial is being expanded this semester into a graduate course, which you can follow as we add lectures and homeworks. CAV tutorial slides: (ppt, pdf, screencast). The graduate course.

Postdoc position position in synthetic biology

We are looking for postdocs in synthetic biology. We need curious, well-rounded computer scientists with expertise in algorithms, hacking, and with interest in biology.

NSF Expedition in Computing for program synthesis

The multi-university ExCAPE project aims to change computer programming from the tedious task to one in which a programmer and an "automated program synthesis tool" collaborate to generate software that meets its specifications.

Looking for a postdoc position?

We are looking for postdocs in program synthesis and computer-aided programming.

2nd Dagstuhl Seminar in Program Synthesis

Several communities related to synthesis of programs and other computational artifacts will meet again in wine cellars of the castle.

Layout based on BASIC by Download Website Templates