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