Milestone map
Milestone map
2 milestones
Do the course work in public
6–11 weeks (4–8 hrs/week)
Take Programming Languages for free and do the homework in ML, Racket and Ruby. Keep everything in one public repo or notebook as you go.
Proof required
Link your public repo or notebook with the homework in ML, Racket and Ruby, and a screenshot or log showing the self-check passed.
What gets checked
- All three languages are covered.
- Each homework passes its sample tests plus tests you wrote.
- Code uses the idea the homework teaches (pattern matching, closures, dynamic dispatch).
Common mistakes
- Copying posted answers: verifiers read the history.
- Skipping the self-check, then asking for review too early.
Powstik Guide
A public repo or notebook with the homework in ML, Racket and Ruby.
Steps
- Make a public repo or notebook first.
- Do one unit at a time and commit after each.
- Run the self-check: Run each homework against the course's sample tests, then add your own.
- Write a short README: what is here and how to run it.
- Ask three people who know the topic to check it.
Template
README Course: Programming Languages (UW CSE 341) What is here: How to run it: Self-check result: What was hardest:
What gets sent back
- No history, just one big upload.
- Self-check not shown.
- Code that does not run from the README.
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
- All three languages are covered.
- Each homework passes its sample tests plus tests you wrote.
- Code uses the idea the homework teaches (pattern matching, closures, dynamic dispatch).
- Ask one question about a choice in the code; the answer should be clear.
You'll sign in first, then come straight back here.
Write a tiny interpreter
1–3 weeks (5–8 hrs/week)
Use what you learned. Make an interpreter for a small language of your own (numbers, variables, functions). Keep it small enough to finish in about two weeks.
Proof required
Link an interpreter for a small language of your own (numbers, variables, functions), with a README that says how to run or read it.
What gets checked
- It runs sample programs from the README.
- It has tests for each language feature.
- It handles errors with a clear message instead of crashing.
Common mistakes
- A project too big to finish.
- A demo that only works on your machine.
Powstik Guide
An interpreter for a small language of your own (numbers, variables, functions).
Steps
- Write one line: what it does and for whom.
- Build the smallest version that works.
- Test it on someone else's machine or with someone else reading it.
- Write the README.
- Ask three people to check it.
Template
README What it does: Who it is for: How to run it: What I would do next:
What gets sent back
- Does not run from the README.
- Not clearly the person's own work.
- Claims more than it does.
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
- It runs sample programs from the README.
- It has tests for each language feature.
- It handles errors with a clear message instead of crashing.
- Check that the work is the person's own.
You'll sign in first, then come straight back here.