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