| week | topics | assign-
ments |
reading material |
|---|---|---|---|
| Jan 13 | intro to complexity | complex system parade (class project, 3 slides per student) |
Voices of computing by Denning (acm library) Steele/Gabriel keynote video (85 min movie, limited image/sound quality and playback control) "Can't be built", by Gabriel (ieee library) open-source projects (150 groups listed on GSoC 2009 page ) |
| Jan 18 | everything is an object
extensible software parade presentation |
extensible module (individual, est. 50 lines Java) |
Unger/Smith on Self (video from acm library) Synthesizing OO and functional design by Krishnamurthi, Felleisen, and Friedman, 1998 (postscript) Kay on Smalltalk (paper in 1993) |
| Jan 25 | everything is a function
module presentation |
addk (individual, est. 10 lines Scheme, 10 lines Ruby) |
Church numerals (wiki page) How to Design Programs by Felleisen, Findler, Flatt and Shriram Krishnamurthi (free on-line access, reference book for Scheme/general programming, download PLT Scheme) Programming Ruby by Thomas and Hunt (free on-line access). |
| Feb 1 | software design
functional+OO |
tree iterator (individual, est. 50 lines ruby) |
No Silver Bullet: Essence and Accidents of Software Engineering (on-line html) The mythical man-month (acm lib, slides) Why interaction is more powerful than algorithms (acm lib) block, proc, and lambda in Ruby web post by Bendersky |
| Feb 15 | software development process
software development tools (svn, hg, coverage) iterator presentation |
extensible module (group, est. 50 lines Ruby) |
Schuh's book on Agile development(books24x7 via ur subscription, read Chapter 3) Legacy of Agile development (material from Construx) Local wiki page on svn (VersionStuff) |
| Feb 22 | Web programming
module presentation |
dropbox (group, est. 100 lines Ruby) |
CGI book (Colburn, safari on-line) Web 2.0 programming (van der Vlist et al. books24x7) |
| Mar 1 | design patterns I
dropbox presentation |
mid-term (individual, programming exam) virtual group |
Design patterns in Ruby by Olsen (safari on-line via ur subscription) |
| Mar 15 | Web programming II
design presentation |
Jabber and XMPP(part II of programming Jabber by Adams, safari on-line) IRCP (part II, chap. 10, network protocols handbook, safari on-line) |
|
| Mar 22 | essence of PL
progress presentation |
Evolution of lisp by Steele and Gabriel (acm lib, read 2.8, 2.10, 3.5 at least) | |
| Mar 29 | design patterns II
virtual-group presentation |
term proj. (group, open) |
Design patterns in Ruby by Olsen (safari on-line via ur subscription) |
| April 5 | advanced PL lazy eval, stream, memoization |
Structure and interpretation of computer programs, Sec. 3.5 on-line book site Lazy list (by Frank) |
|
| April 12 | design patterns III
strategy presentation |
Design patterns in Ruby by Olsen (safari on-line via ur subscription) | |
| April 19 | slack/selected topics
progress presentation |
||
| April 26 | final proj presentation | ||