From 7d6f56afdbd631be7e06890815122be4e7a4f339 Mon Sep 17 00:00:00 2001 From: Kyler Olsen Date: Mon, 27 Oct 2025 16:13:42 -0600 Subject: [PATCH] First Commit --- LICENSE | 21 +++++++++++++ README.md | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 LICENSE create mode 100644 README.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..12c9ec4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Kyler Olsen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..cedd5c4 --- /dev/null +++ b/README.md @@ -0,0 +1,93 @@ +# YREA SLS +*Kyler Olsen* +*October 2025* +*Snow College* +*SE 3250 Survey of Languages Final Project* + +Language Code Name: **YREA SLS** +Language Specifications: [sls.purplecello.org](https://sls.purplecello.org) + +## 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.