I use Moodle for my courses, which makes it challenging to make my course content public. The website you see below is an automatically generated approximation of my Moodle page, based on a script that I've run.

Week 1

Monday
Tuesday
Syllabus
(Logistics optional addendum: how to install Guile locally on your own computer, if you must)
Wednesday
Supplemental reading on programming language paradigms
Scheme Lab 1
Friday
Reference: The Scheme Programming Language (very useful book)
Scheme Lab 2

[Back to top]

Week 2

Monday
Supplemental reading: The Scheme Programming Language reference book on list construction
Binary Search Trees
Wednesday
Supplemental reading: Scheme programming style, ...
Lazy Lists
Friday
Supplemental reading: Tail call optimization
Supplemental reading: Opinions on tail call optimization (i.e., TRE) by creator of Python
Currying and higher order functions

[Back to top]

Week 3

Monday
Important reference: C Programming Boot Camp
Supplemental reading: value vs reference model
Sieve of Eratosthenes
Wednesday
Friday
One more video: Pointer Fun with Binky
Supplemental reading: stack vs. heap and pointer...
(How to install C and Valgrind locally on your own computer, if you must)
Introductory C lab 1

[Back to top]

Week 4

Monday
Sample code for Monday morning sync class
Introductory C lab 2
Wednesday
Supplemental reading: C coding style &nbs...
Vectors
Friday
Supplemental reading: C strings    ...

[Back to top]

Week 5

Monday
Supplemental reading: Grammars and trees &...
Wednesday
Supplemental reading: Grammars and trees (...
Interpreter part 1, Linked List
Friday
Supplemental reading: section 2.3.1 from Programmi...
Interpreter part 2, Talloc

[Back to top]

Week 6

Monday
Midterm break: no synchronous class or videos.
Wednesday
Supplemental reading: section 2.3.2 from Programmi...
No assignment due. (Tokenizer should be in progres...
Friday
Interpreter part 3, Tokenizer

[Back to top]

Week 7

Monday
Take-home exam #2 will appear here on Sunday night...
Wednesday
Supplemental reading: scope and extent
No assignment due. (Parser should be in progress.)
Friday
Supplemental reading: The Environment Model of Evaluation
Interpreter part 4, Parser

[Back to top]

Week 8

Monday
No assignment due. (If/let should be in progress.)
Wednesday
Supplemental reading / reference: Allocati...
Interpreter part 5, if/let
Friday
Supplemental reading: Procedures are closures
Interpreter part 6, quote

[Back to top]

Week 9

Monday
Supplemental reading: Dangling references ...
No assignment due. (define/lambda should be in pro...
Wednesday
Supplemental reading: Tracing garbage collection
Interpreter part 7, define/lambda
Friday
Take-home exam #3 will appear here on Thursday aft...

[Back to top]

Week 10

Monday
Supplemental reading: let, let*, and letrec
Supplemental reading: fixing letrec
No assignment due. (primitives should be in progre...
Wednesday
Interpreter part 8, primitives

[Back to top]

Week 11

Monday
Interpreter part 9, last portion
Citation for Knuth's Test (test-files-e/test61.scm)

[Back to top]