Course Project

There are three requirements for your project in this class. Your job:

  • Explore some specific aspect of programming languages in more depth
  • drawing comparisons across multiple languages
  • in a way that draws together the theory of languages (What is the idea?) and the practice (How does it affect the code programmers write? and/or How is this thing implemented?).

Beyond these requirements, you have wide lattitude in your project’s topic. Some ideas:

  • Compare several language’s different approaches to the same feature or problem.
  • Trace the history of a specific programming language feature or idea.
  • Invesitage an early or unusual programming language, and show how it is unlike more common languages.
  • Study a unique feature of one language, showing the problem it solves and how it solves it.
  • Add a feature to Wordy, describing how you implemented it and how it compares to that feature in full-sized languages.

You also have some latitude in the form your project takes. It could be:

  • a paper written in an academic style,
  • a writeup in a “blog post” style,
  • a coding project with a short explanation,
  • or something else that you propose.

Whatever your topic, ask:

  • What problem does this solve?
  • What are the tradeoffs?
  • How does this affect the work of programmers?

Your project should be medium-sized: larger than a capstone, smaller than a capstone. Writeups usually run around 8–10 pages (or shorter if there is a coding component), but I hesitate to give any sort of page count. You should focus instead on having a point and stating it clearly. (If you are running much longer than 10 pages, that is a warning sign. Check your work for filler language and meandering; try to get to the point sooner!)

You may do projects individually or in pairs. I recommend pairing up based on shared topic interest, but the choice is up to you.