This experimental course will showcase new programming language features and analyses. The goal is to bring you up-to-date on advanced tools that are available, as well as helping you learn how to read and present research papers in this area.

This class will be structured as follows: each week we'll hear presentations on a paper from a student, before the class every student will turn in a review of the paper, after the class every student will turn in a review of presenter. If a paper is particularly confusing, I'll take the next day to go over some of the necessary theory. The best presentations will demo the language feature or tool.


1/6Course OverviewChoose topics and dates, then email me.
1/8Cryptographic Protocol Explication and End-Point ProjectionPresented by Jay
1/13Lexer and Parser Generators in SchemePresented by Brett
1/20A Stepper for Scheme MacrosPresented by Neil
1/27Modeling an Algebraic StepperPresented by Stephen
2/3Compiling Java into PLT SchemePresented by Rani
2/10Laziness Without All the Hard WorkPresented by Brett
2/17No class
2/19No class
2/24Hop Client-Side CompilationPresented by Neil
2/26Matthew Flatt @ ColloquiumGo to colloquium also.
3/3Automatically Restructuring Programs for the WebPresented by Stephen
3/10Slideshow: Functional PresentationsPresented by Rani
3/17Modular Object-Oriented Programming with Units and MixinsPresented by Neil
3/24The Structure and Interpretation of the Computer Science CurriculumPresented by Brett
3/31Embedding Dynamic Dataflow in a Call-by-Value LanguagePresented by Stephen
4/7DrScheme: A Programming Environment for SchemePresented by Rani
4/14Programming at NEUPresented by Matthias Felleisen

Paper Reviews

These should contain a summary of the paper (5 sentences-ish), a summary of the primary contributions (3 sentences-ish), a discussion of strengths (3) and weaknesses (3), and a description of unaddressed challenges (3 sentences.)

Presentation Reviews

Review the presenter's (1) coverage, (2) clarity, (3) style, (4) insight, and (5) grasp.

Paper List

Look for papers at the following locations:

Here are some suggestions: