First Commit
This commit is contained in:
commit
7d6f56afdb
|
|
@ -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.
|
||||||
|
|
@ -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.
|
||||||
Loading…
Reference in New Issue