CSE 341, Spring 1997
Richard Anderson
Introductory Handout
CSE341 will cover some basic material in programming languages. Over 80% of the course will focus on three non-imperative programming paradigms: functional programming, logic/constraint programming, and object-oriented programming. The remainder of the course will cover some general concepts and principles of programming languages, bringing together many of the concepts and mechanisms that appeared earlier in the course.
Personnel
|
Instructor |
Teaching Assistant |
|
Richard Anderson |
Craig Kaplan |
|
Sieg 410 |
|
|
anderson@cs.washington.edu |
csk@cs.washington.edu |
For office hours, etc., see the course web page:
http://www.cs.washington.edu/education/courses/341/CurrentQtr/
Instructional objectives
The following are instructional objectives of the course; they are by no means complete, but they characterize the kind of understanding that I hope you will develop over the quarter.
At the end of the course students should:
Assigned work and grading
The basic work in the course consists of:
I strongly encourage you to discuss the material with each other. You are, of course, each responsible for learning the material in the course. For the major programming assignments, you are also permitted to work in pairs; both students will be assigned the same grade. (I reserve the right to revoke permission to work in pairs with for specific individuals or for the entire class.) Of course, quizzes and the final must be done individually.
All programming assignments are due on the day marked in the tentative schedule below; the TA will provide advance information about the specific time the program is due, the way in which it should be turned in, etc.
Tentative schedule
|
March 31 Introduction |
April 2 Functional programming Minor assignment #1 |
April 4 Functional programming |
|
April 7 Functional programming |
April 9 Functional programming |
April 11 Functional programming |
|
April 14 Functional programming |
April 16 Functional programming |
April 18 Functional programming |
|
April 21 Logic/Constraint programming |
April 23 Logic/Constraint programming Quiz #1 (4/24) |
April 25 Logic/Constraint programming Major assignment #2 |
|
April 28 Logic/Constraint programming |
April 30 Logic/Constraint programming |
May 2 Logic/Constraint programming |
|
May 5 Object-oriented programming |
May 7 Object-oriented programming Quiz #2 (5/8) |
May 9 Object-oriented programming |
|
May 12 Object-oriented programming |
May 16 Object-oriented programming Major assignment #3 |
May 18 Object-oriented programming |
|
May 19 Object-oriented programming |
May 21 Object-oriented programming |
May 23 Object-oriented programming |
|
May 26 Holiday, No Class |
May 28 Concepts |
May 30 Concepts |
|
June 2 |
June 4 Concepts |
June 6 Concepts |
Sections
There are two sections scheduled each week for 341. In general, we will use the Tuesday section for a conventional presentation by the TA (presenting added examples, clarifying points of confusion, answering questions, etc.). However, the Thursday section will normally be held in the lab, essentially as a hands-on office hour by the TA. Three Thursdays (4/24, 5/8, and 5/29) will be quizzes, in the regularly assigned rooms for sections.
Office Hours
Later this week, we will announce office hours on the web page. (If the times aren’t convenient, please set up a time that works for everybody.) In general, if my door (Sieg 410) is open, stick your head in; if I can’t help out right then, I’ll arrange a time as soon as possible. Please stop by with questions about the material, about your progress in the course, about your grades, about programming languages (or computer science) in general, etc. Also, make sure we know (anonymously, if you prefer) about any problems in the course; we can’t fix things we don’t recognize as problems.
Computing
The three languages we will use are ML (functional programming), CLP(R) (constraint logic programming), and Java (object-oriented programming). ML and Java will be available on the Alphas (orcas and sanjuan), CLP(R) will be available on the DecStations (wolf, lynx, grizzly). Stay tuned for changes.
Books
We will use the following two books:
For CLP(R), we will distribute a manual and some course notes or book chapters.