G7400 F'10


The purpose of the project is summarized on the general syllabus page.

Stage 1 Pick a paper that you want to understand via a Redex model. A list of papers will appear on this web page by the fourth week and you are welcome to choose one of them.

If you would like to be more ambitious, look at the conferences or journals discussed in class. Read the abstracts and motivational sections. If it interests you, figure out what part of the paper you want to elaborate (semantics, types, implementation, etc). Students in PL/SE should probably focus on recent results; others may wish to look at old results.

Get approval by 8 October 2010 for your chosen paper. We will ensure that you have mutually disjoint topics.

Stage 2 Formulate a problem statement as a one-page tex'ed or word'ed memo. This is the very first step a researcher must take, and a good amount of time is often spent on working out what the problem is. Here you should think of the problem statement as a goal statement, namely, which part of the chosen paper you wish to turn into a Redex model and what you hope to learn. The problem statement is due 2 November 2010.

Stage 3 Just do it! There is nothing like working on your chosen topic. Experience the feeling of understanding what the author really meant; what the author could have done. -- Do not hesitate to consult with the instructor if you're stuck!

Stage 4 Report on your experience in a revised version of the memo; don't use more than two pages. That is, elaborate your problem statement because you will have insights that improve it. Then add a couple of paragraphs on what you learned. The revised memo is due on 19 November 2010. A print out of the Redex model should be an appendix to the model memo.

Stage 5 Prepare a joint 30 minute presentation that describes the problem, its motivation, its background, the Redex model, and your insight. Divide the talk between the two partners but each partner should be prepared to answer questions about the entire talk.

Deliverables Your final deliverables are: (1) the presentation; (2) two-page memo; and (3) an appendix that documents your project work.

Grading Your project grade consists of four different pieces:

  1. the initial formulation of a question concerning the paper;
  2. the description of your answer or attempts, i.e., the 'revised memo';
  3. the in-class presentation; and
  4. the Redex model in support of your answer.
Both memos are judged at two levels: the content and its English presentation (typos, grammar, unit-level organization). Similarly, the presentation is about both content and oral communication skills of technical matters. Finally, the Redex model must support the conclusion and must show that you have understood the basic modeling techniques.

A note on writing: "less is more". Or, concise language is superior to a lot of weasel words and paragraphs. The two limits (one and two pages, respectively) are upper limits not lower limits and not required writing. -- Good technical writing focuses on the essence of a topic and avoids emotional words (e.g., "believe") or judgmental adjectives (e.g., "wonderful"). Also, use the active voice over passive voice, and connect sentences. Start a unit of writing with a 'thesis' and use the rest of the unit with support of the thesis. This is both accepted American style of writing and technical writing. For a short elegant book on writing, see Strunk and White's "Elements of Style" (3rd edition).

The Paper Pool

  1. Crank, Felleisen. Parameter-Passing and the Lambda Calculus. POPL 1991
  2. Flanagan, Sabry, Duba, Felleisen. The Essence of Compiling with Continuations. PLDI 1993
  3. Flanagan, Felleisen. The Semantics of Future and Its Use in Program Optimizations. POPL 1995
  4. Ariola, Felleisen. The Call-by-Need Lambda-Calculus. JFP 1996 assigned to: Hari Prashanth and Jose Falcon
  5. Flatt, Felleisen. Units: Cool Modules for HOT Languages. PLDI 1998
  6. Clements, Flatt, Felleisen. Modeling an Algebraic Stepper. ESOP 2001
  7. Findler, Felleisen. Contracts for Higher-order Functions. ICFP 2002
  8. Clements, Felleisen. A Tail-Recursive Semantics for Stack Inspections. ESOP 2003
  9. Flatt, Findler, Felleisen. Scheme with Classes, Mixins, and Traits. ASPLAS 2006 assigned to: Xiaohai Yu and Abhishek Samanta
  10. Krishnamurthi, Findler, Graunke, Felleisen. Modeling Web Interactions and Errors. In: Goldin, Smolka, Wegner (editors). Interactive Computations. 2006 assigned to: Bahar Qarabaqi and Yue Huang
  11. Felleisen, Findler, Flatt, Krishnamurthi. A Functional I/O System (or Fun for Freshman Kids). ICFP 2009 assigned to: Peter Golbus and Lazlo Ring
  12. Eastlund, Felleisen. Making Induction Manifest in Modular ACL2. PPDP 2009
  13. Guha, Saftoiu, Krishnamurthi. The Essence of JavaScript. ECOOP 2010 assigned to: Zach Donovan and Patrick Redmond

last updated on Tue Nov 16 09:10:22 EST 2010generated with PLT Scheme