Summer 1999
Instructor:
Greg J. Badros
Office: 226-D Sieg Hall
Office Hours: Tuesday 9-10am; Wednesday 4:30-5:30pm; or by appointment
email: badros@cs.washington.edu
Teaching Assistant:
Ken Yasuhara
Office: 232 Sieg Hall (NT Lab #1)
Office Hours: Monday and Thursday, 9:30-10:30am; or by appointment
email: yasuhara@cs.washington.edu
Teaching Assistant:
Sean C. Sirutis
Office: 232 Sieg Hall (NT Lab #1)
Office Hours: Monday and Wednesday, 1-2pm
email: ssirutis@cs.washington.edu
Teaching Assistant:
Chun Yu
Office: 232 Sieg Hall (NT Lab #1)
Office Hours: Wednesday and Friday, 9:40-10:40am
email: chunyu@cs.washington.edu
Lectures: MWF 10:50-11:50am, EE1-045
Section AA: Th 8:30-9:30am, EE1-042 Section AB: Th 10:50-11:50am, EE1-003
N.B.: Sections will meet as regularly scheduled on the first week (Thursday 24-June-1999).
N.B.: A.J.T. Davie's An Introduction to Functional Programming Systems Using Haskell is out of press so we will not be using it. The Thompson book, above, replaces it.
(revised 25-July-1999, subject to future revisions)
21 June 1999 | Introduction |
Required: Sethi Ch. 1 | |
23 June - 2 July | Scheme and Functional Programming |
Required: Sethi Ch. 10, 15.6; R5RS | |
Recommended: Abelson and Sussman; Guile Chapter from Salus Vol. 4, Part III; Dickey's Introduction; Teach Yourself Scheme | |
5 July | Indendence Day Holiday -- no classes |
7 July - 12 July | Haskell and Pure Functional Programming |
Required: Sethi Ch. 8 (quickly, but read 8.5 carefully); Hugs98 Report | |
Recommended: Thompson; Hugs98 User Manual | |
14 July - 21 July | Prolog and Relational/logic programming |
Required: Sethi Ch. 11, 15.7; Prolog Online Tutorial | |
Recommended: Prolog Programming: A First Course (online book) | |
23 July | Exam 1 -- Scheme, Haskell, Prolog and their concepts |
26 July - 2 August | Smalltalk and Pure Object Oriented Programming |
Required: Sethi Ch. 6 (quickly, but read 6.2 carefully), Ch. 7, 15.4 | |
Recommended: Design Principles Behind Smalltalk; IBM Smalltalk Tutorial | |
4 August - 13 August | Java and Object Oriented Programming |
Required: Brewing Java; Sethi Ch. 5 | |
Recommended: Arnold and Gosling; Porting C++ to Java | |
16 August - 18 August | Perl Case Study |
Required: Introduction to Perl (U. of Missouri - Columbia) | |
Recommended: Christiansen et al.; Perl Manual | |
20 August (last day of classes) | Exam 2 -- Java, Smalltalk, Icon, Perl and their concepts |
N.B.: Both exams will be open book, open-note, in-class, with a one hour time limit (the usual class duration). Exam 2 will not be cumulative.
(Subject to modification)
Scheme projects and assignments | 15% | A1, A2 |
Java projects and assignments | 15% | A6 (as a group) |
Other projects and assignments | 20% | A3, A4, A5, A7 |
Exam 1 | 25% | 23-July-1999 |
Exam 2 | 25% | 20-August-1999 |
All of the languages and environments we will be using have implementations available for both Windows NT/95/98 and for GNU/Linux. On campus, you will be expected to know how to use orcas/sanjuan (Unix servers) and the NT labs in Sieg 232/329. Additionally, you are encouraged to download the various free and/or open implementations of the languages and install them on whatever personal machine(s) are most convenient for you.
All students are expected to do assignments on their own, except for assignments explicitly labelled as group assignments. Any cases of cheating that we discover will be sent to the College disciplinary committee.
However, we also want to be clear on what is legitimate collaboration -- it is okay (and encouraged!) to help other students debug their programs, and to discuss general approaches to solving problems. After having such a discussion, though, you must go do something else for at least half an hour (e.g., watch an inane television show, play basketball or tennis, etc.) before independently working on your solution. (This is sometimes called the Gilligan's Island rule, since that's about as inane as television can get!) It is never acceptable to copy or look at someone else's code or homework solution before turning in the assignment.
Exams must, of course, be done on your own. Both in-class exams will be open book and open notes. However, since you will be limited to 1 hour for each exam, you will definitely need to know the material well to complete the exams successfully.
Assignments (including projects) will be due at the beginning of the class period on the due date. Please follow these submission guidelines for all your assignments.
An assignment is late if it is not handed in when the pile of assignments is collected five (5) minutes after the start of lecture class on the designated due date. Late assignments will be penalized by the following scale:
Up to 24 hours (1 day) late -- 25% off
Up to 48 hours (2 days) late -- 50% off
Up to 72 hours (3 days) late -- 75% off
Assignments more than 3 days late will not be accepted. Exceptions will be made only for circumstances truly beyond your control, such as a serious illness or family emergency. Please get in touch with the instructor via email as early as possible to discuss the circumstances if you anticipate the need for an exceptional extension. The situation will have to be considerably more exceptional if you request an extension after the designated due date.
Most importantly, never skip class to try to finish an assignment! You lose the same amount of points if you are 23 hours and 59 minutes late as you do if you are only 6 minutes late, so go to class and then worry about finishing the assignment.