Lecture: Monday, Wednesday, Friday 12:30-1:20 CMU 120
Section AA: Thursday 12:30-1:20, EEB 105
Section AB: Thursday 1:30-2:20, EEB 105
Office Hours:
Dan Grossman, Allen Center 574, Thursdays 10:45-11:45 + appointments + try coming by (please visit!)
Sunjay Cauligi, Allen Center 002 (basement lab), Fridays 2:30-3:30
Eric Mullen, Allen Center 220, Thursdays 2:30-3:30
Cody Schroeder, Allen Center 218, Wednesdays 11:00-12:00
Rachel Sobel, Allen Center 022 (basement lab), Mondays 2:30-3:30
Sean Wu, Allen Center 220, Tuesdays 12:00-1:00
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: Sunjay Cauligi sunjayc then at and then cs.washington.edu
TA: Eric Mullen emullen then at and then cs.washington.edu
TA: Cody Schroeder codys then at and then cs.washington.edu
TA: Rachel Sobel rs then at and then cs.washington.edu
TA: Sean Wu wujsean 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)
Material in the future naturally subject to change in terms of coverage or schedule
Homework 0: on-line survey worth 0 points, "due" Wednesday January 9
Midterm: Friday February 8, in class
unsolved
solved
Sample midterms:
Fall 2011 unsolved solved
Spring 2011 unsolved solved
Spring 2008 unsolved solved
Winter 2008 unsolved solved
Final: Thursday March 21, 8:30-10:20
unsolved
solved
Sample finals:
Fall 2011 unsolved solved
Spring 2011 unsolved solved
Spring 2008 unsolved solved
Winter 2008 unsolved solved
Instructions for SML and Emacs, which
is everything you need for the first half of the course.
Videos showing the software installation on Windows
While the other materials on this page (lectures, sections, homeworks, installation instructions, videos) are designed to provide what you need for the course, the books/guides provide alternate explanations and additional details. We will not follow them closely, but you may still find them valuable. Suggestions for additional links are welcome.
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 some of 7.1, 7.2, 15.1.
Programming Ruby 1.9: The Pragmatic Programmers' Guide (Facets of Ruby), Dave Thomas et al, 2009.
Check the errata page to avoid bugs.
Overlap with the course material is very roughly Chapter 1 through 9 except Chapter 7.
We will be using Ruby 1.9. While there are significant differences between 1.8 and 1.9 in the language, a 1.8 version of the book is still a fine resource if that's the one you happen to have.
In addition to the texts above, 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 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