Lecture: Monday, Wednesday, Friday 2:30-3:20 EEB 105
Section AA: Thursday 12:30-1:20, Loew 102
Section AB: Thursday 1:30-2:20, Loew 102
Office Hours:
Dan Grossman, Allen Center 574, Mondays 10-11AM + by appointment + try coming by (please do visit!)
TA: Ben Wood, Allen Center 216, Fridays 11AM-Noon
TA: Lydia Duncan, Allen Center 218, Tuesdays 1:30-3:30PM
TA: Chloe, Allen Center 002 (the lab), Wednesdays 12:15-2:15PM
Course Email List (mandatory): You should receive email sent to the course mailing list regularly (roughly at least once a day). Any important announcements will be sent to this list.
Course staff:
All staff: cse341-staff@cs.washington.edu
Instructor: Dan Grossman, djg and then at and then cs.washington.edu
TA: Ben Wood, bpw and then at and then cs.washington.edu
TA: Lydia Duncan, lydier and then at and then cs.washington.edu
TA: Chloe, bunnyfly and then at and then cs.washington.edu
Email sent to cse341-staff@cs.washington.edu will
reach the instructor and all the TAs. For questions multiple staff
members can answer, we encourage you to use this email so that you
get a quicker reply and the whole staff is aware of points of
confusion.
Course Discussion Board (optional)
Anonymous Feedback (goes only to the instructor)
Homework 0: on-line survey worth 0 points, "due" Friday September 30th
Final: Tuesday December 13, 2:30-4:20
unsolved
solved
Sample finals from previous offerings (some differences in syntax and topics)
Sp11 unsolved
Sp11 solved
Sp08 unsolved
Sp08 solved
Wi08 unsolved
Wi08 solved
Midterm: Monday October 31, in class
unsolved
solved
Sample midterms from previous offerings
Sp11 unsolved
Sp11 solved
Sp08 unsolved
Sp08 solved
Wi08 unsolved
Wi08 solved
Setting up SML and emacs on lab machines or your personal machine
Setting up Racket and DrRacket on lab machines or your personal machine
Setting up Ruby, irb, and emacs on lab machines or your personal machine
While the other materials on this page (lectures, sections, homeworks, installation instructions) are designed to provide what you need for the course, the books/guides provide excellent alternate explanations and additional details. We will not follow them closely, but you may still find them valuable.
Elements of ML Programming, ML'97 Edition,
Jeffrey D. Ullman, 1998.
Check the errata page to avoid bugs.
Approximately Chapters 2, 3.1-3.4, 5.1-5.5 (skip 5.2.5, 5.3.4,
5.4.4), 6.1-6.2, 7.1, 8.2, 8.5.5 overlap with the course material.
The Racket Guide
Approximately Chapters 1-4.9.1 (skip 2.4.1-2.4.3, 3.5-3.12, 4.4.3, 4.4.4, 4.6.5),
5.1, 5.2, 6.1-6.5 (skip 6.3), 16.1-16.1.4 overlap with the course material. We might cover 10.1.
Programming with Ruby, Dave Thomas, 2005.
Check the errata page to avoid bugs.
Overlap with the course material is very roughly chapters 1-9 (or chapters 1-8 of the first edition), but
not regular expressions and several other small topics.
We will be using Ruby 1.8. While there are
significant differences between 1.8 and 1.9 in the language, the 1.9 version of the book is still a fine
resource if that's the one you happen to have.
In addition, there are many useful online resources for the languages we are using. In particular, effective use of any language involves leveraging existing libraries, which requires more library documentation than any class should cover. There are also many tutorials and guides that you may find useful.
Additional Emacs resources (beyond the basics):
Emacs reference card (pdf)
Emacs Reference Manual
Emacs Wiki
Additional SML resources:
www.smlnj.org (links to many things, including the next three resources)
user's guide
standard-library documentation
tutorials, books, and documentation
Additional Racket resources:
racket-lang.org, particularly the Documentation and Learning tabs
Additional Ruby resources:
ruby-doc.org, including links for the library documentation and various books. You can even buy the t-shirt.
Ruby home page
list
compiled by Stuart Reges for Spring 2010's CSE341, including lecture slides