CSE 341: Programming Languages

Spring 2004

Course Information

Academic-Integrity Policy
Extra-Credit Policy


anonymous feedback

final exam with sample solutions
some sample final questions

midterm with sample solutions
some sample midterm problems


Homework 1, due 7 April    sample solution
Homework 2, due 16 April   sample solution
Homework 3, due 26 April   sample solution
Homework 4, due 7 May   sample solution
Homework 5, due 14 May  hw5provided.scm   hw5tests.scm   sample solution
Homework 6, due 21 May  hw6.st   sample solution
Homework 7, due 4 June   assignment  code overview   game description   dealer code

Class Materials

  1. March 29: summary   slides   code
  2. March 31: summary   slides   code
  3. April 2: summary   slides   code
  4. April 5: summary   slides   code
  5. April 7: summary   slides   code
  6. April 9: summary   slides   code
  7. April 12: summary   slides   code
  8. April 14: summary   slides
  9. April 16: summary   slides   code
  10. April 19: summary   slides
  11. April 21: summary   slides   code
  12. April 23: summary   slides
  13. April 26: summary   slides   code
  14. April 30: summary   slides   most code   thunk code   stream code
  15. May 3: summary   slides   code
  16. May 5: summary   slides   code
  17. May 7: summary   slides
  18. May 10: summary   slides   code
  19. May 12: slides  workspace code   classes fileOut
  20. May 14: workspace code  classes fileOut  (slides are from previous lecture)
  21. May 17: summary   slides   code
  22. May 19: summary   slides (last 4 slides will move to next lecture)
  23. May 21: slides (Note: We probably won't get through all this.)
  24. May 24: slides
  25. May 26: slides   Java code   ML code
  26. May 28: slides   Java code   ML code
  27. June 2: slides
  28. June 4: slides   Java code   ML code

Section Materials

  1. April 8: real.sml   exceptions.sml
  2. April 15: code
  3. April 22: code
  4. April 29: code
  5. May 6: code
  6. May 27: Sample Questions


Instructor: Dan Grossman, (careful: grossman@cs goes to a different person), Allen Center 556
TA: David Richardson: daverich@cs
TA: Evan Martin: martine@cs

Office Hours

Grossman: Mon 1:30-2:30, Fri 2:30-3:30, and by appointment
Richardson: Allen 430, Tues 1:30-2:30, Th 1:30-2:30, and by appointment
Martin: Allen 002; Mon 11:30-12:30, Wed 11:30-12:30, and by appointment


Jeffrey D. Ullman. Elements of ML Programming, ML'97 Edition. 1998.
Assuming you do not want to suffer from bugs in the textbook, check the errata page.

Scheme resources:
R5RS (the standard)
Programming Languages: Application and Interpretation
How to Design Programs (with links to the DrScheme web page)
Structure and Interpretation of Computer Programs

Smalltalk resources:
Keyboard shortcuts reference
Keunwoo Lee's Getting started in Squeak slides
Common 341 Squeak Overview
Jim Sawyer's "Reading Smalltalk"
The IBM Smalltalk Tutorial
Page for the Guzdial book


The CSE undergraduate labs have all the software you need for the course. If you would like to install software on your own computers these links may help you. They contain more knowledge than the course staff has, so our ability to help further is minimal.

emacs for Windows


Join the course mailing list
Homework 0, due March 31, 9:00AM (0 points)
Getting started with UNIX and emacs
Guidelines for using ML in emacs


Lecture: MWF 12:30-1:20, building EE1 room 037
Section AA: Th 8:30-9:20, building EE1 room 042
Section AB: Th 9:30-10:20, building MOR room 230