Computer Science Department
Wellesley College

Spring 1999

Instructor:

Ellen C. Hildreth

Office: SCI E112

e-mail: ehildreth@wellesley.edu
Office Hours: Tues/Thurs 11:00-1:00, Weds 11:00-12:30 and 1:30-4:30
(Appointments can be made at other times)

Lectures:

Place: SCI E111
Time: Tuesday/Thursday 8:30-9:40

Purpose and Description:

The course is designed to help you better understand the historical reasons and the need that gave rise to many different programming languages, and discuss the features of the most successful and more influential of them. It will focus on the similarities and the differences among conventional ("procedural"), functional, object-oriented, logic as well as parallel programming languages.

Implementation issues and the philosophy behind each category ("programming paradigm") will be discussed. Program development strategies will be illustrated through programming examples. The set of languages that you will write programs in includes Pascal or C, CommonLisp (or Scheme), Java and (time permitting) Prolog.

Prerequisite: CS 230.

Books

Required:

  • Principles of Programming Languages: Design, Evaluation, and Implementation by Bruce J. Mac Lennan, 2nd edition. One copy is on reserve in the Science Library
  • There will be special reading assignments from handouts and the book Programming Languages: A Grand Tour by Ellis Horowitz, 3rd edition (aka "the Tour"). Two copies are on reserve in the Science Library

Recommended: Reading assignments from these books may be given during the course. However, you are encouraged to browse them as they may contain hints to homework problems. They are on reserve in the Science Library.

  • The Art of Prolog by L. Sterling and E. Shapiro
  • Common Lisp: The language by Guy Steele
  • LISP by Patrick Henry Winston and Berthold K. P. Horn
  • Programming in Prolog by W.F. Clocksin, C.S. Mellish
  • Scheme and the Art of Programming by George Springer
  • Structure and Interpretation of Computer Programs by Harold Abelson
  • The C Programming Language by Kernighan and Richie
  • THINK C! by Sawyer
  • On to Java by Patrick Henry Winston and Sundar Narasimhan.

Web Resources

Course material is accessible from the course Web site: http://www.wellesley.edu/CS/courses/CS251

Many resources relating to programming languages appear on the Web, in particular related to Java. Click here for a collection (and e-mail me if you find something good and relevant.)

Programming

For programming we will use the Macintoshes in E101. They are loaded with the MCL CommonLisp, MacGambit (Scheme), OpenProlog, Symantec Pascal, Symantec Cafe Java, and Think C programming environments.

Reading

There will be considerable reading involved in this course. Along with the textbook, many articles and manuals will be distributed and you are expected to go through them in some detail. Unfortunately, lectures will not be a substitute for the reading. This is just a fact of life. The good news is that the reading is not too difficult.

Grades:

Percentages: There will be 8 programming assignments carrying 50% of the grade, two Midterm exams on Tuesday, March 2 and Tuesday, April 6 (10% of the grade each), and a Final Exam (20%). The remaining 10% will reflect class participation.

Homework

8 programming assignments

50% of the grade

Midterm 1

Tuesday, March 2, 1999

10% of the grade

Midterm 2

Tuesday, April 6, 1999

10% of the grade

Final exam

Regularly scheduled

20% of the grade

Class participation

Contribution in discussions

10% of the grade

Homeworks are due before the class period for which they have been assigned. Late homeworks will be accepted up until midnight on the day that they are due. After this time, assignments will lose 20% of their grade for each calendar day after the due date. In addition to correct programs, I will be looking for nice programming style and documentation.

The good news: The midterm and final exams will be doable for someone who has kept up with the reading and homework and has a reasonable understanding of the material.

Extra Credit: Some of the homeworks and the programming assignments will contain clearly marked work that receives extra credit. The purpose of this policy is to encourage you to work on problems that you find interesting and may teach you something. Failure to do this work will have no effect on your grade. However, sufficient work on extra credit problems will count in your favor if at the end you are on the borderline between two grades.

WARNING:
Dates in the Calendar are closer than they appear!

It is expected that you start working on your programming assignments as soon as they are handed out, and continue working on them until you have finished or until the deadline has been reached. Postpone working on the assignments at your own risk, but bear in mind that it may prove to be a terrible idea.

Honor Code:

The Honor Code applies to this course: All work submitted must be your own. You may discuss the assignments with other students in class but you should write up your own answers, and create and type in your own programs and their documentation.

Students with Special Needs:

I encourage students with disabilities, including "invisible" ones like chronic diseases and learning disabilities, to visit me during my office hours and discuss with me appropriate accommodations that might be helpful to them.


[ Syllabus | Instructor | Schedule |Homework | Students | Home ]