---
Title: Assignment Details
Prev:
Next:
---

# YREA SLS
*Kyler Olsen*  
*October 2025*  
*Snow College*  
*SE 3250 Survey of Languages Final Project*

Language Code Name: YREA **SLS** (*Stack Language Specification*)  
Language Specifications: [sls.purplecello.org](https://sls.purplecello.org)  
Language Specification Repository (Private): [git.purplecello.org](https://git.purplecello.org/KylerOlsen/LangsFinalPlaning)  
Language Implementation Repository (Private): [git.purplecello.org](https://git.purplecello.org/KylerOlsen/YREA-SLS)  
Language Implementation Repository (Mirror on GitHub) (Private): [github.com](https://github.com/SnowSE/final-project-KylerOlsen)  
Assignment Page (Private): [snow.instructure.com](https://snow.instructure.com/courses/1154808/assignments/16233203)

## Assignment Description

**Overview**

In your final project for this course, you will do the following:

- Decide on a modest personal project to complete in a new-to-you
programming language (during class time, we will randomize the list of
people in the class and allow languages to be selected uniquely on a
first-come, first-served basis; be prepared to pick the language you want
and to advocate for the languages that you don't want).
- Without using AI generated or suggested code, complete your project in
your assigned language including automated testing. Find a way to make your
useful implementation concise and elegant enough that you would be able to
recreate it reasonably quickly without AI assistance (be prepared to
demonstrate this ability during a one-on-one interview to ensure credit).
- Using AI help as desired, create a faithful port of your implementation
(including tests) to:
    - Rust
    - Python
    - Java (optional, but it might be interesting and userful for your
    resume)
    - C# (optional, but it might be interesting)
    - typescript (optional, but it might be interesting)
- For each ported implementation, add one addition feature (not present in
the original or other ports).
- Prepare a report that describes:
    - the problem that your project solves and why you are interested in it
    - a brief description of how the language that you chose and the port
    languages were or were not each a good fit for the project
    - three examples of ideas you learned in the course that you leveraged
    to the implementation in your assigned language elegant, efficient, and
    concise/maintainable (at least one idea should specifically come from
    functional programming) -- make sure to be specific and teach the reader
    something valuable for each of these
    - at least one struggle that you faced (or that you imagine that others
    would likely face) for each language implementation, and what you
    learned from working with the port languages during the porting process.
- Prepare slides that help you teach the key ideas from your report to the
class.
- In a 5-8 minute presentation during the final exam slot, use your slides
to teach the class and demonstrate your running project including the
addition port features.

Project Scope

- Please do something that will be fun and interesting for you!
- Make sure that the project actually solves a problem that you care about.
(Entertainment counts, but if that is the problem you care about, then make
sure that you can make something that actually is entertaining!)
- I'm expecting you to dedicate about 15-30 hours to the entire project
(including all three implementations and the report/presentation
preparation). I'm expecting that your initial implmentation should feel
like about twice the scope of implementing the game of life in PostScript
or K.

**Languages**

For what it is worth, here are a few resources that rank or compare different
programming languages in terms of popularity or jobs (but they don't equally
capture how programming in the languages will give you tools for thinking
about and solving problems):

- https://spectrum.ieee.org/top-programming-languages-2025 
- https://www.tiobe.com/tiobe-index/
- https://survey.stackoverflow.co/2025/technology#admired-and-desired
- https://survey.stackoverflow.co/2025/technology#most-popular-technologies-language-prof
- https://tjpalmer.github.io/languish/
- https://www.geeksforgeeks.org/blogs/top-programming-languages/
- https://github.com/breck7/pldb

Here is the list of programming languages that you will be able to choose from
for your initial implementation (each language will be chosen by at most one
student; we will choose during class time on Oct 27):

- **C** Kyler

**Submission**

Submit all material (including report and slides) via github classrooms repo.
Also, submit your github repo link and the path to the report and slides file
in the canvas text box for this assignment. The grace period for submission
ends at 3pm on Monday, Dec 8. Presentations will be 3:30pm - 5:30pm. For full
credit, you must present and watch the presentations of your classmates.
