CSE-341 (Programming Languages) Syllabus and Reading Assignments

Summer 1999

Personnel

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

Meeting Times and Locations

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).

Textbooks

Required

Recommended (In decreasing order of recommendation)

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.

Course Outline and Readings

(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.

Grading

(Subject to modification)

Scheme projects and assignments15%A1, A2
Java projects and assignments15%A6 (as a group)
Other projects and assignments20%A3, A4, A5, A7
Exam 125%23-July-1999
Exam 225%20-August-1999

Computing Resources

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.

Cheating

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.

Submitting Assignments

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.

Late Policy

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.

CSE-341 Home Page


Greg J. Badros / U Washington Computer Science and Engineering / badros@cs.washington.edu