Syllabus

Computer Science 287 - Spring 1999
Programming Language Paradigms

Instructor: Robin Popplestone
Office: LGRC A201B Tel: 545-3140 or 3143 - email pop@cs.umass.edu
Place and time of class: Boyd 249 9:30-10:45
Place and time of discussion session: DUDA 1 Wed: 10:10-9:50
Office Hours: MWF 12:30-2:15 in LRGT 220 (near edlab)
Teaching Assistant: Josephine Zhuang jzhuang@cs.umass.edu
Office Hours: TuTh 1:00-2:00 or by arrangement.

Honors Section : Wed 2:30

Content

Using the Lisp dialect Scheme as a backdrop, the course will examine the four programming language paradigms that make up the current programming language landscape. These paradigms are: the imperative paradigm (of which traditional programming in, say, Pascal, is an example); the functional paradigm, based on the mathematical concept of function; the logic programming paradigm, based on mathematical logic; and the object-oriented paradigm.

This is a "learning by doing" course, which means the work load will be substantial. Apart from the occasional hiatus, there will be an assignment due each week.

Prerequisite: CmpSci 187; corequisite: CmpSci 250.

Grading

Programming and other Assignments: 30%; Class-tests 30%; Final Exam 40%.

Textbooks

Abelson and Sussman, "The Structure and Interpretation of Computer Programs".

Extra copies of handouts and assignments will be available in LGRC A243, and supplementary materials will be on reserve in the Physical Sciences Library, second floor, LGRC.

Class Tests

This semester your work will be assessed on the basis of (a) the quality of your project-work, and (b) on your performance in class-tests (c) the final exam. The class tests will be short tests held without prior notice during scheduled class-hours. A make-up test will only be given for good reason.

Education Laboratory (EDLAB)

This is situated at room 225 in the tower. It is open every day from 8:30 am to 11:30 pm.

Your initial password is your student id, unless you already have an account, in which case you should use your existing password. You should not use this password after your first login to the system. The computer may require you to change your password during this login; if not you should change the password, using the yppasswd command

For remote use you will need a PC or Macintosh with a terminal emulator and modem. The number to dial in is: 545-3700. You should select 1. Computer Science Dept for your option.

The correct modem settings are 8 bit, 1 stop bit, no parity. If you are using a modem at more than 9600 baud, you should use rts-cts flow control. You may need to do:

    setenv term = vt100

Submitting Work

All assignments are submitted by creating a file in the sub-directory 287 of your account on the EDLAB. The name of the file will be specified as part of the assignment, e.g. "assign1.scm". The work will be taken to have been submitted on time if the date of last modification is the due date or earlier. In other words do NOT edit the file AFTER the due date. If your file is in the wrong directory (say your home directory) can use the mv command in Unix to move it to the class directory without changing the modification date.

Programming assignments are graded on a scale of 0-10. Programming assignments submitted late will lose one point on this scale per 24 hours.

If you wish to query the grade you receive, you should do this with the TA in the first instance.

Honesty Policy

This section is an explanation aspects of this class which are relevant to the interpretation of the Honesty Policy of the University of Massachusetts.

It is acceptable to discuss assignments between yourselves at the algorithmic level, and also to discuss in general how the capabilities of Scheme may be used to solve a given problem. However the text of any assignment must be independently composed by you yourself, apart from code which is taken from the text of the lecture notes. It is good practice to delineate clearly such code, which plays the same role as quotations do in composing English text.

In particular, you must not copy text generated by another student and use it as a basis for work that you will submit as your own.

By an "independently composed text" is meant a text that a court of law could be expected to regard as being a new piece of intellectual property. You may wish to reflect upon the fact that if you become a computer science professional you will have to work on creating systems for which proprietorial rights are absolutely clear. Corporate lawyers are not known to be a breed more gentle in their dealings than are professors.

You may not deliberately assist another student by providing him or her with the text of a solution to an assignment in any form. [You may wish to reflect upon the advantages to the public of having high standards of professionalism among practitioners of Computer Science. Hospital patients may be (and have been) injured by badly implemented software as well as by badly trained surgeons. Aircraft and high-speed trains depend on software for their safe functioning. The Computer Science Department has, acting under authority delegated to it by the University of Massachusetts, decided what is an appropriate educational experience to achieve a degree in Computer Science. While helping a fellow student to think through the way to find a solution to a given assignment is an activity that helps create a well-educated professional body of practitioners, making the solution available to him or her verbatim degrades professional quality.]

No information may be transferred between students during the class tests or final examination. To minimise the temptations involved, tests and exams will be in general unique to each student.

Failure of the course will be the sanction applied for any violation of any of these rules, and this rule has been and will be rigorously applied. In such circumstances the student has the right to appeal to the Undergraduate Academic Honesty Board. A written report on the circumstances of such a failure is required by the University.

Each student should be aware of the danger that another student may copy his or her work without his or her knowledge. To guard against this, you should be sure to log off before leaving the EDLAB or other terminal area.

Honors Section

The Honors Section will meet at a time to be agreed.

Notes

Note for people with previous Scheme or Lisp experience: We will use the new IEEE standard Scheme in which '() and #f are different.