an appreciation for a variety of programming paradigms;
an understanding of commonly used principles of language design;
an exposure to important techniques for translating programs and supporting their run-time environment.
A student equipped with this background should
find it easier to master new languages;
understand more deeply any particular language;
have a better mental model of what happens as a program runs; and
understand techniques of program translation that can be applied in a variety of applications.
Course Format
The class meets three times a week for lectures. We won't meet in the computer lab except perhaps very occasionally. We will cover most of the material in the first 11 chapters of the textbook (below), though not necessarily in textbook order. There will be tests and quizzes, and a short research paper to write. You will also need to use Internet tools (see below) to keep in touch with the course. A week-by-week lecture schedule may be found on the Web.
Lectures
MWF 2:30-3:20 pm, More 220
Instructor Information & Office Hours (subject to change -- check Web site)
There may from time to time be handouts or course notes required for purchase or duplication.
Quizzes and Exams
Quizzes will be short, and will focus on current material. They will usually be announced one class period in advance. There will be no make-up quizzes, but the lowest one may be dropped.
There will be one midterm (probably the first week of May) and a final exam. The final will be an approximately 100-minute exam on Tuesday, June 10, at 2:30pm. Please do not schedule travel or other activities which would conflict with this date and time. It will not be possible to give the final exam on any other day. The final exam will be comprehensive but will emphasize material from the latter half of the course.
Attendance
I hope you will attend every lecture. If you miss a lecture, talk to a friend who was present, and be sure to check the Web site for class messages. Old handouts can be obtained from the TA, but otherwise, instructors and TAs will not furnish notes or make-up materials to individuals who miss class.
Homework
There will be several programming assignments. They fall into two categories. First, there are programs whose primary purpose is to give you experience with a particular language or paradigm. We will start with a dialect of LISP, and thereafter move on to Prolog and then to an object-oriented language. Second, there are assignments whose purpose is to illustrate some aspect of the theory or practice of compiling. Programming assignments must be done individually, unless explicitly directed.
Research Paper
There will be a short research paper, due probably in mid-May. Each student will chose a different topic, collect information, write a draft, and prepare a final paper. Each stage of the process will contribute to the final grade. There may also be an opportunity to make an in-class presentation based on the paper.
Turn-In
The form of turn-in may vary depending on the language and the project. It might be done with diskettes and printouts, or via e-mail, or on the Web, or by face-to-face grading. Stay tuned.
Late Policy
Assignments are due at the beginning of class on the due date, unless otherwise announced. Barring usual circumstances, late homework will not be accepted.
Grading
(subject to change up to the 3rd week of the quarter)
Programming homework: 25%, Non-programming homework 5%, Participatory activities and quizzes: 15%, Short research paper: 15%, Midterm: 20%, Final: 20%.
The World-Wide Web is used extensively to provide you with course information, such as the schedule mentioned above, homework assignments and solutions, class messages and many other things. Electronic mail is another important tool for the class; Pine (on UNIX) is recommended.
Materials
Students will need several 3.5" high-density (1.4 Megabyte) floppy diskettes for storing their course files.
Computer Systems
Our plan at present is to use the facilities of the Math Sciences Computer Center (MSCC) in Thomson Hall (basement). Some assignments will use the Macintosh computers, and others will use UNIX. If other computers are to be used later, full details will be provided in class.
Computer Use Policy
Some excerpts from the campus policies. Take them seriously: "You must use all UW [computing] resources in strict accordance with local, state, and federal laws. These laws cover such areas as illegal access to computer systems, networks, and files; copyright violations; and harassment issues… Software and information resources provided through the university for use by faculty, staff, and students may be used on computing equipment only as specified in the various software licenses. Unauthorized use of software, images, or files is regarded as a serious matter and any such use is without the consent of the University of Washington…If abuse of computer software, images, or files occurs, those responsible for such abuse will be held legally accountable."
Academic Misconduct
All work turned in is expected to be your own. Although students are encouraged to study together, each student is expected to produce his or her own solution to the homework problems. Coping or using sections of someone else's program, even if it has been modified by you, is not acceptable. The University has very clear guidelines for academic misconduct and the staff of CSE 413 will be vigorous in enforcing them.