Grades and deadlines

Overview

Esoteric programming languages are languages which are interesting, often fun in some way, and which are Turing complete so in principle they could be used for any programming task. But these languages are generally not designed for serious work, and do not have a large user base; rather, they exist as “fun” programming challenges, or to demonstrate a proof of concept that some technique or idea is even possible.

You will form teams of 2 or 3 Midshipmen, select an esoteric programming language from the list below, and then build an exciting 7 minute presentation for your peers.

At most one team can select each language in a given section.

You must upload the slides for your presentation to a shared google folder that your instructor will email out, and each team member must individually complete and submit the YAML file to get credit for the lab.

YAML file

Download, fill in, and submit this file to indicate the work you did and to vote for the best presentations in three categories:

lab6.1.yml

Use of GenAI

We encourage you to use generative AI tools such as Gemini to help research and build your presentation in the short amount of time you have. These tools might be useful to find resources, understand and help generate code snippets in your language, and build parts of the slides.

However, remember that LLMs can and do make mistakes. It is YOUR responsibility to make sure that (1) what you present is accurate to the best of your ability, and (2) you understand what is on your slides and are able to answer clarifying questions about it.

Presentation requirements

Your presentation must not be longer than 7 minutes. It’s December and your classmates have short attention spans, so keep it exciting and engaging!

You should include the following elements in your presentation:

Throughout your presentation, you should try and connect with topics and vocabulary we have learned this semester in SI413. Remember, your audience has never seen this particular language, but they have all written compilers and interpreters for other languages. Leverage that shared knowledge to make your short presentation time more effective.

The languages

In no particular order, here are the languages you can choose from for today’s lab. I am not giving links to these, although many (all?) should have a page on https://esolangs.org which might be a good place to start: