For relevant add/drop dates consult the UNM Academic Calendar.
Miscellaneous stuff goes here: Helper Functions!
Wed | Jan 20 | My idiosyncratic view of programming languages (Lecture Notes) |
Fri | Jan 22 | Scheme expressions and defining functions; (Lecture Notes) Problem Set 1 |
Mon | Jan 25 | Formal presentation of Scheme syntax; using Emacs and mzscheme (lecture notes, thanks to Will Schultz) |
Wed | Jan 27 | Combining little functions; if (Lecture Notes) |
Fri | Jan 29 | and, or, not, cond, (Lecture Notes) Problem Set 2 |
Mon | Feb 1 | Plumbing Graphics (Plumbing Graphics Howto by Anthony Vestal) |
Wed | Feb 3 | Recursion with plumbing graphics Quiz 1 key |
Fri | Feb 5 | (continued) Problem Set Three |
Mon | Feb 8 | Lists, car, cdr, cons, box-and-pointer |
Wed | Feb 10 | (continued) |
Fri | Feb 12 | (continued) sum-list, length |
Mon | Feb 15 | (continued) guest lecturer: Lance Williams lists: member, append, reverse |
Wed | Feb 17 | (continued) replace, count-atoms, exaggerate, Problem Set 4 solutions |
Fri | Feb 19 | (continuted) (Lecture Notes) |
Mon | Feb 22 | tiny-eval Quiz 2 key |
Wed | Feb 24 | higher-order functions |
Fri | Feb 26 | (continued) map, filter, apply Problem Set 5 solutions |
Mon | Mar 1 | (continued) accumulate, functions in sexprs and alists |
Wed | Mar 3 | lambda |
Fri | Mar 5 | (continued) let |
Mon | Mar 8 | cond's => construct |
Wed | Mar 10 | the repeat higher-order function arithmetic: lists as numbers, functions as numbers (Church numerals) Problem Set Six solutions Notes |
Fri | Mar 12 | functions as data; kons Notes quiz 3 |
Spring Break | ||
Mon | Mar 22 | a taxonomy of recursive patterns |
Wed | Mar 24 | problem set six, the Y combinator |
Fri | Mar 26 | midterm |
Mon | Mar 29 | call graphs; tail recursion |
Wed | Mar 31 | writing tail-recursive functions |
Fri | Apr 2 | (continued) Notes on Fibonacci and parallel prefix |
Mon | Apr 5 | translating imperative code to functional code problem set seven solutions |
Wed | Apr 7 | symbolic differentiation guest lecture: Charles Crowley |
Fri | Apr 9 | (continued) guest lecture: Charles Crowley quiz 4 |
Mon | Apr 12 | building objects out of lambda Problem Set Eight; solutions: lame, non-lame |
Wed | Apr 14 | (continued) |
Fri | Apr 16 | (continued) |
Mon | Apr 19 | backquote (quasiquote) |
Wed | Apr 21 | adding lambda to an interpreter |
Fri | Apr 23 | (continued) |
Mon | Apr 26 | adding memoization to an interpreter final project (adventure game) |
Wed | Apr 28 | memoize; begin; set!; hash tables |
Fri | Apr 30 | |
Mon | May 3 | thunks (promises): delay, force; infinite streams quiz 5" solutions" |
Wed | May 5 | Undergrad research; cs departmental honors |
Fri | May 7 | Review via implementing quasiquote |
Wed? | May 12 | final exam |
I think that it's extraordinarily important that we in computer science keep fun in computing. When it started out, it was an awful lot of fun. Of course, the paying customers got shafted every now and then, and after a while we began to take their complaints seriously. We began to feel as if we really were responsible for the successful, error-free perfect use of these machines. I don't think we are. I think we are responsible for stretching them, setting them off in new directions, and keeping fun in the house. I hope the field of computer science never loses its sense of fun.