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]