cs-4400-sp26

Miniproject: Implementing a Custom Language

Due dates: (All deadlines 11:59pm unless specified otherwise)

This project will serve as a capstone for everything you’ve learned in the class. You will:

More detailed instructions given below.

Deliverables

What to submit:

Implementation

Your implementation should be done either in Plait or Lean, the two supported languages in this class. If you have a burning desire to use a different language for your implementation, we may allow this in some special cases (if you have a specific reason); please consult with course staff.

We expect your code to consist of a way to:

If you are at a loss for a set of features that would be interesting to investigate, here are some ideas:

Documentation

Documentation will be provided in the following forms:

Presentation

Expected content:

Grading Rubric

GenAI policy and considerations

The purpose of this project is for you to make your own design and implementation choices based on what you have learned in this class, demonstrating an understanding of the implications of various decisions for language design. We will be asking you to explain your decisions during the presentation, and you should be prepared to defend them. We will not police your use of GenAI tools to help you with the ideation process, but please consider alternatives (such as discussion your design with the instructor or TA) before you do this, and make sure you can justify all design and implementation choices as your own.

All writing and code in your deliverables should be authored by you, reflecting your thought process. Using GenAI to produce written text or code that you submit for grading will be considered an academic integrity violation, equivalent to hiring another person to write it for you.