|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!
|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.
|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.
|Saturday, Sept 17||Sun, Sept 25||
Read Advanced F# and then complete Lab 2.
|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.
|Sun, Oct 2||Wed, Oct 5||
Do Quiz 4 on GLOW. This quiz covers last week's readings on the lambda calculus and parsing.
|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.
|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).
|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.
|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).
|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.
|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.
|Thu, Nov 17||Sun, Nov 27||
Complete Project Checkpoint #1.