Assignments
You can always find the latest Combinator.fs here
Date Posted | Date Due | Assignment | Turn-in Method |
---|---|---|---|
Thursday, Sept 8 | Sun, Sept 11 |
Complete Lab 0. Be sure to fill out the Google Form! |
Gitlab |
Friday, Sept 9 | Wed, Sept 14 |
Read A Brief Introduction to F# (corrected with 'dotnet fsi' on 9-14-22) and then complete Quiz 1 in GLOW. Opens on Tuesday at noon; closes on Wednesday at 10pm. You have 30 minutes to complete it. Open book, open note. |
GLOW |
Friday, Sept 9 | Sun, Sept 18 |
Read A Slightly Longer Introduction to F# (corrected with 'dotnet fsi' on 9-14-22) and then complete Lab 1. |
Gitlab |
Saturday, Sept 17 | Sun, Sept 25 |
Read Advanced F# and then complete Lab 2. |
Gitlab |
Monday, Sept 26 | Sun, Oct 2 |
Read Introduction to the Lambda Calculus, Part 1, Grammars and Parse Trees, and Introduction to LaTeX and then complete Lab 3. Your starter code comes with a LaTeX template filled with examples, but if you want to see another absolutely minimal version filled with almost nothing, have a look here. |
Gitlab |
Sun, Oct 2 | Wed, Oct 5 |
Do Quiz 4 on GLOW. This quiz covers last week's readings on the lambda calculus and parsing. |
Gitlab |
Sat, Oct 1 | Sun, Oct 9 |
Read Introduction to the Lambda Calculus, Part 2 and then complete Lab 4. Please read the above reading carefully; I tried to keep it short but there's a lot to talk about. Also, I updated it extensively for this year. If you have trouble understanding something, please let me know, either in person or in the lab feedback. |
Gitlab |
Sun, Oct 9 | Sun, Oct 16 |
Read Proof by Reduction and then complete Lab 5. Also read Beating the Averages by Paul Graham (hint: the subject of next week's quiz). |
Gitlab |
Sun, Oct 16 | Sun, Oct 23 |
Read A Brief Overview of C, watch Growing a Language by Guy Steele, and then complete Lab 6. The purpose of this lab is to get you thinking about how the selection of basic elements in a language (and how they fit together) can have a big effect on how easy or hard it is to write programs. Remember, programming languages are designed by humans for humans! Note: Guy’s talk starts with an example that may strike the modern viewer as unnecessarily gendered. I hope you appreciate that times have changed, because the rest of the talk is worth your time. |
Gitlab |
Mon, Oct 24 | Sun, Oct 30 |
Read C: A Language Built Around a Memory Model, Passing Pointers by Value, and then complete Lab 7 (updated 2022-10-26 with hints). |
Gitlab |
Mon, Oct 31 | Sun, Nov 6 |
Complete a project brainstorm. Also, read How to Fix a Motorcycle. It's a short essay on the interplay between your mind and your problems. It usually resonates with people who have written a computer programs. We will discuss the reading next week. |
Gitlab |
Mon, Nov 7 | Sun, Nov 13 |
If you have not yet done so, read How to Fix a Motorcycle. Also read Parser Combinators and complete Lab 9. |
Gitlab |
Thu, Nov 17 | Sun, Nov 27 |
Complete Project Checkpoint #1. |
Gitlab |
Tue, Nov 29 | Sun, Dec 4 |
Complete Project Checkpoint #2. Also read Unit Testing in F# for next week's quiz and a future project checkpoint. The reading is structured as a tutorial, and you are strongly encouraged to follow along on your own computer. |
GITHUB |
Tue, Dec 6 | Sun, Dec 11 |
Complete Project Checkpoint #3. From here on, it's 100% project work! Use your time wisely and please come see me if you get stuck. |
GITHUB |
Tue, Dec 6 | Sun, Dec 18 |
Finish your final project. You can ensure that you get a very good grade by completing every item on this checklist. Don't forget that you must produce a short presention video. The easiest way to do this is to make a small slide deck (5-7 slides), start a Zoom recording, and then show me the slides and a short demo of your language in action. That's it! Be sure to upload this someplace I can find it and include the URL in your repository. Here are some sample final project presentations: Arpeggify, Jared Berger, Spring 2020. PixelPunk, Max Kan and Rijul Jain, Spring 2022. CardX, Ruby Teklemariam and Levi Borevitz, Spring 2022. |
GITHUB |