Lecture: Monday, Wednesday, Friday 12:30-1:20 EEB 037
Section AA: Thursday 12:30-1:20, SIG 134
Section AB: Thursday 1:30-2:20, SIG 134
Office Hours:
Josiah Adams, Mondays 11:30-12:30, department labs CSE002 (Allen Center basement)
Dan Grossman, Tuesdays 11:00-Noon + appointment + try coming by (please visit!), Allen Center 574
Amaris Chen, Wednesdays 2:30-3:30, department labs CSE002 (Allen Center basement)
Patrick Larson, Fridays 1:30-2:30, department labs CSE002 (Allen Center basement)
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.
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 staff:
All staff: cse341-staff@cs.washington.edu
Instructor: Dan Grossman, djg and then at and then cs.washington.edu
TA: Amaris Chen, amarisch and then at and then cs.washington.edu
TA: Patrick Larson, palarson and then at and then cs.washington.edu
TA: Josiah Adams, josiaha and then at and then cs.washington.edu
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 April 3
Midterm: Friday May 3, in class
unsolved
solved
Sample midterms:
Winter 2013 unsolved solved
Fall 2011 unsolved solved
Spring 2011 unsolved solved
Spring 2008 unsolved solved
Winter 2008 unsolved solved
Final: Thursday June 13, 8:30-10:20
unsolved
solved
Sample finals:
Winter 2013 unsolved solved
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
The course materials on this page (lectures, sections, homeworks, installation instructions, videos) are designed to provide what you need for the course except for some details that you can look up in standard-library documentation or users' guides for particular languages. Links for such information is below. We also provide links to useful books and tutorials that provide alternate explanations. We will not follow any textbooks closely, but you may still find them valuable. Suggestions for additional links are welcome.
SML resources:
www.smlnj.org (links to many things, including the next three resources)
user's guide
standard-library documentation
tutorials, books, and documentation
Elements of ML Programming, ML'97 Edition,
Jeffrey D. Ullman, 1998.
This is a textbook that takes a different approach but does cover some of the same material.
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.
Racket resources:
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.
racket-lang.org, particularly the Documentation and Learning tabs
Ruby resources:
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 below is still a fine resource if that's the one you happen to have.
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