15-819: Domain-Specific Languages

Assignments

Course assignments consist of reading responses and presentations. Students are expected to write a reading response for each lecture and present at least twice during the course of the semester. There will also be a final project.

Getting Started

If you choose to enroll in the course, make sure you do the following:

Reading Responses

You will be expected to write a reading response for the required paper for each class. (You may also find it helpful and/or interesting to read the optional reading to enhance your understanding of your material.) You are allowed to miss two reading responses.

In your response, please address the following questions:

  • What domain does the paper address?
  • What issues does the paper identify as problems with expressing programs in this domain?
  • What solution does the paper propose for addressing these problems?
  • What does the advantages does the solution provide, in terms of correctness, performance, and expressiveness?
  • What does one give up by using this language?
  • How does the paper evaluate the language? What are the strengths and weaknesses of the language with respect to the evaluation? What are the strengths and weaknesses of the evaluations?
  • How does this language compare with other programming solutions in this domain?

Readings may have lecture-specific questions posted on the corresponding assignment entry in the private course blog. These questions will largely refine the above questions, so you may find it helpful to read those before reading the paper(s).

Please upload your reading response to the course blog as a post with "[[course date] response]" as the prefix (for example "[9.8.16 response]") by 10am the day of class. Here are instructions about how to schedule the post. (Email the instructor to be added as an author.)

Students will receive credit for all responses that address the questions.

Presentations

Each class will begin with a 30 minute presentation on the reading. Students are expected to present at least twice during the semester. Presenters are expected to read the optional papers. Presentation materials will be posted to the course website after lecture.

Presentations should cover the answers to the reading responses. Half of the presentation should focus on the technical aspects of the work and half of the presentation should address the motivation, context, and evaluation. A recommended presentation format is as follows:

  • Motivation, including additional domain context.
  • Discussion of the specific problems of the domain.
  • The paper's solution and technical contributions.
  • A closer look at the technical aspects of the paper: formalization, implementation, etc.
  • Evaluation and meta-evaluation (discussion of the paper's evaluation).
  • Related work and context.
Presentations may make use of author slides from the original conference presentations for the papers.

Presentations are graded as follows:

CategoryPoints
Content of high-level presentation2
Clarity of high-level presentation2
Content of technical presentation2
Clarity of technical presentation2
Mechanics of presentation (slides and presentation style)2
Total10

Final Projects

Students are expected to complete a final project, either alone or in groups, incorporating ideas from the course. While the projects do not need to represent original research, they need to represent a serious endeavor to either understand or develop on a domain-specific language. The work for the final project will include the following:

  • Project proposal. Students should turn in a two-page proposal describing the problem, the proposed solution, and evidence that the proposed solution is viable. Proposals should include a list of key milestones, as well as a proposed timeline. If this is a team project, the proposal should explain the roles of each of the team members.
  • Project pitch. Teams should prepare three-minute pitch of the proposal for expaining the project to the rest of the class.
  • Final presentation. Teams should prepare a presentation for explaining the goals and results of the project to the rest of the class.
  • Final report. Teams should prepare a writeup of the goals and results of the project. There are no page restrictions, but teams will be evaluated on the quality of the writeup as well as the content.

The instuctor will evaluate presentations and reports on both the content and the ability to communicate the goals and results of the project. Students are encouraged to work closely with the instructor to determine a suitable project.