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.

Monday
Videos: Course Intros by instructor
Tuesday
Syllabus
Assignment: Starting Logistics
Due Tue Apr 07 23:01:00 CDT 2020
Video: Logistics screencast
(Logistics optional addendum: how to install Guile locally on your own computer, if you must)
Wednesday
Videos: Programming language paradigms and list construction in Scheme
Supplemental reading on programming language paradigms
Scheme Lab 1
Friday
Videos: Scheme functions, lists, quote, recursion, and auto-testing
Reference: The Scheme Programming Language (very useful book)
Scheme Lab 2

Week 2

Monday
Videos: Scheme memory and list construction examples, and overview of lazy lists (video added 4/10, 3:30pm)
Supplemental reading: The Scheme Programming Language reference book on list construction
Binary Search Trees
Wednesday
Videos: currying and higher order functions
Supplemental reading: Scheme coding style
Supplemental reading: Scheme commenting style
Supplemental reading: Currying
Add'l Video: Tracing your Scheme code
Lazy Lists
Friday
Videos: scripting, sieve, and TCO
Supplemental reading: Tail call optimization
Supplemental reading: Opinions on tail call optimization (i.e., TRE) by creator of Python
Assignment: Currying and higher order functions (pair)
Due Fri Apr 17 23:00:00 CDT 2020
Currying and higher order functions

Week 3

Monday
Videos: intro week 3, C, language models
Important reference: C Programming Boot Camp
Supplemental reading: value vs reference model
Video from 4/20 sync class
Sieve of Eratosthenes
Wednesday
Videos: pointers and stack-vs-heap in C
One more video: Pointer Fun with Binky
Supplemental reading: stack vs. heap
Supplemental reading: pointers
(How to install C and Valgrind locally on your own computer, if you must)
Introductory C lab 1
Friday
Videos: Linked list in C (inserting, traversing, and some C along the way)
Introductory C lab 2

Week 4

Monday
Videos: Finishing linked list in C, arrays, strings
Supplemental reading: Strings in C
Supplemental reading: C coding style
Supplemental reading: Valgrind error documentation
Video from 4/27 sync class
Sample code for Monday morning sync class
Wednesday
Videos: vectors, gdb, include guards, compilers/interpreters
Supplemental reading: gdb tutorial
Supplemental reading: include guards
Supplemental reading: compiler
Supplemental reading: interpreter
Vectors
Friday
Videos: First 2 steps of project, interpreter construction, BNF
Supplemental reading: Grammars and Trees (section on grammars)
Supplemental reference: syntax specifications for some popular languages

Week 5

Monday
Midterm break: no synchronous class or videos.
Wednesday
Videos: derivations, parsing (LL, LR, Scheme)
Supplemental reading: Grammars and Trees (section on semantics of parse trees)
Supplemental reading: section 2.3.0 (i.e., stop at...
Interpreter part 1, Linked List
Friday
Videos: tokenizer, recursive descent parsing
Supplemental reading: section 2.3.1 from Programmi...
Interpreter part 2, Talloc

Week 6

Monday
Videos: recursive decent parsing PREDICT sets. (This was one long video that I broke up into 3 pieces.)
Supplemental reading: section 2.3.2 from Programmi...
Video from 5/11 sync class
No assignment due. (Tokenizer should be in progres...
Wednesday
Videos: Parser assignment, and Scheme local variables
Interpreter part 3, Tokenizer
Friday
Videos: Scoping
Supplemental reading: scope and extent
No assignment due. (Parser should be in progress.)

Week 7

Monday
Videos: interpreter part 5
Supplemental reading: The Environment Model of Evaluation
Video from 5/18 sync class
Interpreter part 4, Parser
Wednesday
Videos: Lambda in other languages, quote
No assignment due. (If/let should be in progress.)
Friday
Videos: how malloc works
Supplemental reading: memory allocation
Supplemental reading: A Fast Storage Allocator
Supplemental example: CPython's heap management code
Interpreter part 5, if/let

Week 8

Monday
Videos: closures and lambda assignment
Supplemental reading: Procedures are closures
Video 1 from 5/25 sync class
Video 2 from 5/25 sync class
Interpreter part 6, quote
Wednesday
Videos: tombstones, keys/locks, reference counters
Supplemental reading: dangling pointers
Supplemental reading: Reference counting
No assignment due. (define/lambda should be in pro...
Friday
Videos: function pointers, primitives, mark-and-sweep
Supplemental reading: Tracing garbage collection
Interpreter part 7, define/lambda

Week 9

Monday
Videos: let, let*, and letrec
Supplemental reading: let, let*, and letrec
Supplemental reading: fixing letrec
Video from 6/1 sync class
No assignment due. (primitives should be in progre...
Wednesday
Videos: final project details, wrapup thoughts
Interpreter part 8, primitives

Week 10

Monday
Interpreter part 9, last portion
Devious interpreter correctness test: Knuth's Test, in Scheme
Citation for Knuth's Test