image University of Washington Computer Science & Engineering
  CSE 341Sp '06:  Programming Languages
  CSE Home   About Us    Search    Contact Info 

 Midterm Review (1-up4-up)
 Final Review (1-up4-up)
Course Email
 Class List Archive
 E-mail Course Staff
 HW #1
 HW #2
 HW #3
 HW #4
 HW #5
      HW #5 Examples
      HW #5 Starter Code
 HW #6
      HW #6 Starter Code
Lecture Notes
 1: Introduction (1-up4-upcode )
 2: Functions, Pairs (1-up4-upcode )
 3: Lists, Let, Option (1-up4-upcode )
 4: Datatypes (1-up4-upcode )
 5: Types; Patterns (1-up4-upcode )
 6: Tail Recursion (1-up4-upcode )
 7: Deep Patterns (1-up4-upcode )
 8: Higher Order Funcs (1-up4-upcode )
 9: Closures, Map, Fold, Curry (1-up4-upcode )
 10: Mutual Recursion (1-up4-upcode )
 11: Equivalence (1-up4-up)
 12: Type Inference (1-up4-upcode )
 13: Objects; Modules (1-up4-upcode )
 16: Scheme Intro (1-up4-upcode )
 17: Let; Delayed Eval (1-up4-upcode )
 18: Memoization (1-up4-upcode )
 19: Streams (1-up4-upcode )
 20: Macros (1-up4-upcode )
 21: Continuations (1-up4-upcode )
 22: define-struct (1-up4-upcode )
 23: Smalltalk Intro (1-up4-upcode )
 24: Late Binding (1-up4-upcode )
 25: More Smalltalk (1-up4-upcode )
 26: Design Exercise (1-up4-up)
 27: Design Critique (1-up4-up)
 29: Garbage Collection (1-up4-upFAQ )
Course Tools
 Course Dictionary
 Unix and Emacs Guide
 Emacs Hints
      SML on Your Own
      Dr. Scheme
      R5RS (the Standard)
  Smalltalk and Squeak
      Keyboard shortcuts
      Getting started
      341 Overview
      Reading Smalltalk
      Squeak Language Ref.
      IBM Tutorial

Lecture:  MGH 231 (schematic) MWF 12:30- 1:20
Section A:  MGH 242 (schematic) Th 8:30- 9:20
Section B:  MGH 242 (schematic) Th 9:30- 10:20
Office Hours Phone
Instructor:  Larry Ruzzo, ruzzo at cs  M 1:30- 2:30  CSE 554  543-6298
TAs:  Jonah Cohen, jonah at cs  T 1:30- 2:20  CSE 218 
  Ting-You Wang, tingyou at cs  Th 3:30- 5:30  CSE 002 (Lab) 

Course Email: Use this list to ask and/or answer questions about homework, lectures, etc. The instructor and TAs are subscribed to this list, and will answer questions, but I almost always find that the questions and answers are of general interest, and that your fellow students often will answer more quickly (and more clearly) than the staff can. Students should be automatically subscribed within 24 hours of registration. You can modify your subscription options. All messages are automatically archived.  General information about the email system is here.  Questions not of general interest may be directed to the instructor and TAs: cse341-staff or just to the instructor: ruzzo at cs.

Catalog Description: Basic concepts of programming languages, including abstraction mechanisms, types, and scoping. Detailed study of several different programming paradigms, such as functional, object-oriented, and logic programming. No credit if CSE 413 has been taken.
Prerequisite: CSE 143.
Credits: 4

Grading: Homework (programming), Midterm, Final. Overall weights very roughly: HW 55%, midterm 15%, final 30%.

Late Policy: Papers and/or electronic turnins due at noon on the due date. Barring major emergencies, the deadline is strict. Electronic turnins will be disabled at noon, promptly. However, you may have 3 "late days", total, spread over all assignments. (In 24-hour chunks, i.e., a turnin at 12:01PM uses 1 of your 3 days. I'd suggest you hoard them in case you really get stuck late in the quarter. After the normal electronic turnin shuts off, you can use the late electronic turnin area.)

Extra Credit: Some assignments will include "extra credit" sections. These will enrich your understanding of the material, but deliberately will provide scant credit in proportion to the work required. Do them for the glory, not the points, and don't even think about starting the extra credit portion until the main problems are complete.

Collaboration: Homeworks are all individual, not group, exercises. Discussing them with others is fine, but you must produce your own homework solutions. Follow the "Gilligan's Island Rule": if you discuss the assignment with someone else, don't keep any notes (paper or electronic) from the discussion, then go watch 30+ minutes of mind-numbing TV (Gilligan's Island reruns especially recommended) before you continue work on the homework by yourself. If in any doubt about whether your activities cross allowable boundaries, tell us before, not after, you turn in your assignment. See also the UW CSE Academic Misconduct Policy, and the links there.


Portions of the CSE 341 Web may be reprinted or adapted for academic nonprofit purposes, providing the source is accurately quoted and duly credited. The CSE 341 Web: © 1993-2006, Department of Computer Science and Engineering, University of Washington.

CSE logo Computer Science & Engineering
University of Washington
Box 352350
Seattle, WA  98195-2350
(206) 543-1695 voice, (206) 543-2969 FAX
[comments to cse341-webmaster at]