On this page:
Chosen Projects
DrRacket

Project

wooorrk

The purpose of the project is summarized in General Information.

Preliminary Deadlines

Item

 

Draft to Mr. Fong

 

Final version

approval of topic

 

n/a

 

13 Feb 2015

proposal memo

 

20 Feb 2015

 

27 Feb 2015

project report

 

31 Mar 2015

 

7 Apr 2015

Stage 1 Pick a topic that you and your partner consider interesting in the context of this course. Here a "topic" refers to three mutually exclusive possibilities:
  1. You choose a paper that describes a domain-specific language in your research area. The paper should be reasonably short, meaning an expert in PL should be able to read it in a couple of hours.

  2. You pick a paper from a mainstream programming language conference. This option should especially interest PL or FM PhD students but is open to all students in class.

  3. You use a paper from the list at the end of this page. In order to provoke some searching and thinking on your side, the list will become available only two days before the decision deadline.

Get approval by 13 February 2015 for your chosen topic. Send me an email that (1) indicates which option you chose and (2) summarizes the topic in your words. CC your project partner.

Stage 2 A first reading of a technically complex paper should leave you with a shallow understanding and a desire to understand certain aspects in more depth. The best way to express this desire is to articulate your understanding and to phrase your remaining questions in this context. These questions tend to tell you which "tools" (mathematical techniques, implementation, measurements, etc) you will need to use to find answers.

Write up a one-page memo in journal-paper style that (1) summarizes your current understanding of the paper, (2) states which aspects of the paper you would like to understand in depth, and (3) explains which tools (Redex and otherwise) you wish to use to model the paper’s insights so that you gain the desired insight. Researchers tend to think of this memo as a proposal.

You must submit a printed draft memo by 20 February 2015 to Andy Fong and make an appointment to meet with him for feedback on your write-up. Email me your final PDFed proposal memo by 27 February 2015 at 1pm.

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 me if you’re stuck!

Stage 4 Report on your experience in a two-page "result" memo. The revised memo should consist of four parts: (1) the fixed-up summary from the "proposal" memo; (2) a revised and concrete set of questions that you tackled; (3) a description of the approach used to answer them; and (4) your answers (abstractly, because you have a limited amount of space). Do not write an essay on what you did in the past two weeks but imagine yourself writing a final report for a scientific grant that you obtained from a funding agency.

To format the paper, use (1) an 11-point font, (2) 1.5in margins all around, (3) a header that specifies the paper title and the authors of the memo, (4) no section or subsection headings. If you wish to label a passage, use the so-called paragraph style, which boldfaces the initial phrase of a paragraph.

You must submit a printed draft memo by 20 March 2015 31 March 2015 to Andy Fong and make an appointment to get feedback from him. It is common that new content flows into the final draft; if you have any doubts about the wording of the new content, ask Mr. Fong before you submit.

The revised memo is due, in PDF form, on 27 March 2015 at 1pm 7 April 2015 at 5pm. Email it as an attachment together with one Redex file (if needed). Both file names should use the last names of the partners, plus a suitable suffix (.pdf and .rkt).

Stage 5 Prepare a joint 40-minute whiteboard lecture that describes (1) the paper’s problem, including the motivation, and background, (2) your questions, (3) the approach you used to answer these questions, and (4) the insight you gained.

Divide the talk between the two partners but each partner should be prepared to answer questions about the entire talk.

Grading Your "deliverables" are: (1) the "proposal" memo, (2) the "report" memo, (3) the lecture; and (4) an appendix that documents your work (usually a Redex model).

Your project grade consists of four different pieces:
  • the initial formulation of a question concerning the topic;

  • the description of your answer or attempts, i.e., the ’revised memo’;

  • the in-class lecture; and

  • the Redex model in support of your answer

Both memos are judged at two levels: the content and its English (unit-level organization, style, grammar, typos). Similarly, the lecture 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 or " less is more." 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. – Good technical writing focuses on the essence of a topic and avoids emotional verbs (e.g., "believe") or judgmental adjectives (e.g., "wonderful"). – Start a unit of writing with a ’thesis’ and use the rest of the unit with support of the thesis. – Also, use active voice over passive voice. Connect sentences by starting sentences with idea-words near the ending of the preceding one; then introduce a new one. Doing so is 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).

Chosen Projects

Partners

 

 

Project Title

Andersen

 

 

A Nanopass Framework for Compiler Education

Anderton

 

Aziz

 

FACTORIE: Probabilistic Programming via Imperatively Defined Factor Graphs

Bashir

 

Rynderman

 

Green-Marl: A DSL for Easy and Efficient Graph Analysis

Greenman

 

Cobb

 

Simply Easy! An Implementation of a Dependently Typed Lambda Calculus

Gualtieri

 

LaChance

 

Operational Semantics for Multi-Language Programs

Clancy

 

Pais

 

L3: A Linear Language with Locations

Dong

 

Wang

 

A Model-Learner Pattern for Bayesian Reasoning

Irannejad

 

Liaee

 

Static Prediction of Heap Space Usage for First-Order Functional Programs

Panda

 

Viereck

 

Higher-Order Symbolic Execution via Contracts

Saksono

 

Shamekhi

 

Using HCI Techniques to Design a More Usable Programming System

Zhang

 

Zhong

 

Frenetic: A Network Programming Language