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

Course Email
 Announcement ArchiveCSE only
 Class List ArchiveCSE only
 HW #1
 HW #2
 HW #3
 HW #4
 HW #5
      HW #5 Skeleton Code
 HW #6
      HW #6 Code
Lecture Notes
 1: Introduction (1-up4-upcode)
 2: Functions, Lists (1-up4-upcode)
 3: 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: More Functions (1-up4-upcode)
 10: Map, Fold, Curry (1-up4-upcode)
 11: Mutual Recursion (1-up4-upcode)
 12: Equivalence (1-up4-up)
 13: Type Inference (1-up4-upcode)
 14: 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-up)
Section Handouts
 Section 1 SML Code
 Section 2 SML Code
 Section 3 SML Code
 Section 4 SML Code
 Section 5 SML Code
 Section 7 Scheme Code
 Section 9 Squeak Class
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 Reference
      IBM Tutorial

Lecture:  MGH 231 (schematic) MWF 12:30- 1:20
Section A:  MGH 295 (schematic) Th 8:30- 9:20
Section B:  MGH 295 (schematic) Th 9:30- 10:20
Office Hours Phone
Instructor:  Larry Ruzzo, ruzzo@cs  M 1:30- 2:30  CSE 554  543-6298
TAs:  Matt Cary, cary@cs  W 3:00- 4:00  CSE 220 
  Brian Koropoff, brianhk@cs  Tu 1:30- 2:20  CSE 002 (Lab) 
    Th 12:30- 1:20  CSE 002 (Lab) 

Course Email:

  • cse341-announce Used by the course staff for important announcements. You must subscribe to this.
  • Please feel free to use this list to ask and/or answer questions, give tips, etc., about homework, lectures, the computing environment, whatever. Subscribe or read the mail archive regularly.
  • Use cse341-instr to send private mail to the instructor and TAs. (Many questions are better sent to cse341.)

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, Midterm, Final. Homework mainly will be programing. Overall weights very roughly: HW 55%, midterm 15%, final 30%.

Late Policy: Papers and/or electronic turnins due at noon on the due date. Baring 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, email your late solution to instructor; cc the TAs.)

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 the course material, including homework problems, is fine, but you must produce your own homework solutions. I expect you to 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.


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-2005, 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]