On this page:
Chosen Projects
DrRacket

Project

wooorrk

The purpose of the project is summarized in General Information.

Preliminary Deadlines

Item

 

Draft to me

 

Final version

approval of topic

 

n/a

 

7 Feb 2020

proposal memo

 

17 Feb 2020

 

24 Feb 2020

project report

 

30 Mar 2020

 

8 Apr 2020

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 four days before the decision deadline.

Get approval by 7 February 2020 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 email me a draft memo by 17 February 2020 at 2pm and make an appointment to meet with me for feedback on your write-up. Email me your final PDFed proposal memo by 24 February 2020 at 2pm.

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-inch 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 30 March 2020 and make an appointment to get feedback from me. It is common that new content flows into the final draft; if you have any doubts about the wording of the new content, ask me before you submit.

The revised memo is due, in PDF form, on 8 April 2020 at 2pm. 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

Paracha

 

Weintraub

 

 

Move: A Language With Programmable Resources

 

Kumar

 

Moy

 

 

Correct blame for contracts: No more scapegoating

 

Complete Monitors for Behavioral Contracts

MacLaughlin

 

Muther

 

 

Gradual Typing for Functional Languages

 

Lu

 

Shen

 

 

Distance Makes the Types Grow Stronger: A Calculus for Differential Privacy

 

Von Hippel

 

Wallin

 

 

Proving Laxy Folklore with Mixed Lazy/Strict Semantics

 

Teng

 

Wang

 

 

The Call-by-Need Lambda-Calculus, Revisited

 

Biemer

 

Ghosh

 

 

Stan: A Probabilistic Programming Language

 

Saffo

 

South

 

 

Vega-Lite: A Grammar of Interactive Graphics

 

Esmaeili

 

McInerney

 

Stites

 

An Introduction to Probabilistic Programming

 

Church: A Language for Generative Models