290A Spring 2010 Schedule

 week topics assign-

ments
(project type, amount of code)

reading material
Class Schedule and 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
(group, up to 1000 lines)

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