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.
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.
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
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.
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.
Note for people with previous Scheme or Lisp experience: We will use the new IEEE standard Scheme in which '() and #f are different.