Project

Project Goal

The final project is intended to give you hands on experience with the material taught in the course and also to allow you to explore in more depth a topic of your own interest. As such, the project should:

  • be graduate level -- citations! Put stuff in context!
  • be interesting to you
  • be relevant/related to something we are covering in this course, or something we would cover in this course if we had time (i.e. in PL research/design)
  • involve you learning something new

Acceptable projects can be a programming project, a survey of recent research on some relevant topic, or a small research paper. If your project involves programming, it should ideally be primarily in a language that is (mostly) new to you as of this course.

All projects should involve some programming (and/or formalization) and some citations, but there is a large gradient. If you are doing a survey project, code up a couple small examples from the papers you are reading. If you are doing an implementation project, it is still important to put your project into a larger context.

Proposal

This should be a 1 to 2 pages paper arguing what is expected to be learned from the project (why is it interesting to you) and giving a work schedule and risk assessment. Make sure to budget time for writing a short paper describing the project and for preparing a short presentation during the last week or two of classes. Projects can be individual or in small groups. The main purpose of this is to allow me to give you feedback on the feasibility of the project (in case you propose to solve the halting problem by the end of the semester)

The project proposal should be submitted as a pdf to Canvas (see Canvas for the due date).

Final Report

The project report should have an Introduction describing the tackled problem, its motivation and a very brief summary of the accomplishment. Then you should write a description of your notations if they are different from what we used in class. Then you continue with the body of the material. The paper should end with a Conclusion putting the perspective the accomplishment of the project and mentioning the open problems and with a Bibliography of cited papers. Research papers should also have a Related Work section in which they compare the work with previous research results. Sample report.

The paper should be typeset and submitted on Canvas (see Canvas for the due date).

Project Presentation (Optional)

The presentation should be about 10 minutes and should describe in few details what the problem was, what the difficulties were and what was accomplished or learned. It should use slides (perhaps 7 slides excluding the title, depending on your speed). While preparing the talk keep in mind who your audience is: your colleagues who are eager to find out (1) about new exciting facets of programming languages and (2) how much fun you had. Plan to motivate the project (why is it important) and to describe what you learned from it. Keep in mind that your colleagues have not read all the papers that you have read to do the project.

You will need to have a "buddy" for your presentation, who listens to a full-length dry run of your presentation before your class presentation, and gives you detailed, constructive feedback on how to improve your presentation. Please remember to thank your buddy by name as part of your presentation.