Graphic by Keith Ohlfs

CS111, Wellesley College, Fall 1999

CS111 Home Page: Computer Programming and Problem Solving
[CS111 Home Page] [Syllabus][Lecture Notes] [Assignments] [Labs] [Programs] [Documentation] [Software Installation] [FAQ] [CS Dept.] [CWIS]


December 17 1999

You have all benefited greatly from our knowledgable and friendly CS111 TAs this semester. If you liked this course and did well in it we hope that you will consider becoming a CS111 TA in the future.

In particular, since several of our current TAs cannot return for next semester, we are now looking for some new CS111 TAs for next semester (Spring, 2000). Please click here if you want to find out more about becoming a CS111 TA. If you are not interested, but know someone who might be, please pass this information along.

December 16 1999

LeeAnn's Solutions to Problem Set 9 have been posted.

Elaine's new and improved solutions to the HarvestWorld problem of Exam 2 have now been included in the Solutions to Exam 2.

December 15 1999

Solutions to Exam 2 and solutions to Problem Set 8 and Problem Set 10 are now available.

December 12 1999

Review problems (pdf) for the final exam are available. A Microsoft Word document version is also available from the CS111 download directory on nike. Solutions are not available but some of the problems will be covered in the final exam review sessions.

The review problems which will be covered in the Monday afternoon review session are also available.

December 11 1999

CS111 Support schedule for reading period/final exam week.




Mon, 12/13

Review, 9am-noon, E111


Review, 2-5pm, E211


Office Hours, 3-5pm


Tue, 12/14

Review, 2-5pm, Rm 308


Office Hours, 6-8pm


Wed, 12/15

Office Hours, 9-11am


Office Hours, 1-4pm


Office Hours, 6-8pm


Thu, 12/16

Office Hours, 5-7pm


Office Hours, 6-8pm


Sun, 12/19

Office Hours, 6-8pm


Mon, 12/20

Office Hours, noon-3pm


Office Hours, 6-9pm


Tue, 12/21

Office Hours, 9am-noon


December 9 1999

Animation Contest Entries are now available on the web.

December 5 1999

Problem Set 10 is now available. It is due at 4pm, Saturday December 11.

December 1 1999

The Animation Contest rules, guidelines, and sample code are now available. Download the AnimationContest directory in the CS111 download directory for the contest kit.

November 28 1999

Afternoon lab's GUI lab problem is now available.

November 24 1999

Problem Set 9, Part B is now available.

November 21 1999

Problem Set 9, Part A is now available. Part B will be posted by Wednesday, November 24.

You need to go to lecture on Wednesday in order to be able to do Problem 3, so please plan accordingly!

November 16 1999

A corrected version of Problem Set 8 is now available. Corrections were made to problem 2. The updated code folder is named BST.

November 13 1999

Problem Set 8 is now available.

November 11, 1999

A more detailed example of the conventions used in Problem 1 of Exam 2 have been posted.

November 7, 1999

Solutions to Problem Set 6 and solutions to Problem Set 7 are now available.

November 5, 1999

Exam 2 is now available. It is due at 4pm on Friday, November 12.

November 1, 1999

There are now review problems for Exam 2, which will be handed out on Friday.

October 30 1999

Problem Set 7 is now available.

October 27, 1999

Solutions to Problem Set 4 and Problem Set 5 are now available. They are also linked from the Assignments page.

October 26, 1999

A modified version of Problem Set 6 , containing the previously missing Problem 4, has been posted. Be sure to read the notes at the top of the new version.

October 23, 1999

Problem Set 6 is now available.

October 16, 1999

Problem Set 5 is now available.

October 8, 1999

Problem Set 4 is now available.

October 7, 1999:

Java Execution Model solutions are now available. They are also linked from from Quilt solutions page.

October 6, 1999:

The Quilt part of Problem Set 3 solutions are now available. The Java Execution Model solutions will be up before the exam, so check back for them if you want to print them out as part of your notes.

October 5, 1999:

Problem Set 2 solutions are now available.

September 29, 1999:

Problem Set 3 is due this Friday, October 1. There will be no new Problem Set handed out on Friday, due to the exam next week. Instead, review problems and review problems solutions are now available. Details about the exam and what material you are responsible for are provided with the review problems. Although I am making this available to you now, you certainly do not need to worry about reviewing for the exam until you have completed Problem Set 3. However, you should work these review problems over the weekend. You will be having a review in lab next week, at which time you will have an opportunity to ask any questions about the review problems.


September 24, 1999:

Problem Set 3 is now available.

Great job on problem set 1! Problem Set 1 solutions are now available. You should have received your graded problem sets earlier today lecture. Please note that you can download the solutions as well. They are on the cs111 file server in the directory download/problem_set_solutions/ps1. For this problem set, task 1 of the homework assignment (writing) was the part that was graded thoroughly, and the remaining parts of the problem set were simply checked off to be sure that they were completed. Your entire grade was based on task 1.

If you have any questions about your grade on this problem set, or how it was graded, please contact Marianne (mterrot) or me (Jennifer).

A reminder that it is your responsibility to check the solutions to the problem set and to be sure that you understand them in their entirety. Specifically, do this for the part of each problem set that isn't graded thoroughly. Please let one of us know if you have any questions about the problem set.

Finally, as was announced on FirstClass in the announcements folder, this is the last (only) problem set that will be graded in this way. In the future, your entire problem set will be graded fully, and any prelab or lab work will not be turned in for a grade.


September 17, 1999:

Problem Set 2 is now available.


September 10, 1999:

Problem Set 1 is now available.


September 8, 1999:

See the announcements page for previously posted announcements.






Office Hours

Jennifer Stephan
(please call me "Jennifer")

SCI E104


Monday 3:00 - 4:00
Friday 1:30 - 3:00

NOTE - I work part time and am in only on Monday, Wednesday and Friday.

Franklyn Turbak
(please call me "Lyn")
Note: my office is located behind the Mini-Focus consultant's desk

SCI 121B


Tuesday 3:00 -- 5:00
Wednesday 1:30 -- 3:30
Thursday 3:00 -- 5:00

Lab Instructor:
LeeAnn Tzeng
(please call me "LeeAnn")

SCI 402


Tuesday 3:00pm - 5:00pm
Wednesday 1:30pm - 3:30pm
will change with sufficient student demand

Lab Instructor:
Elaine Yang
(please call me "Elaine")

SCI 402


Monday 3:00-4:30
Thursday 4:30-7:00

You may go to any of the instructors for help. Note that faculty meetings and seminars sometimes conflict with the above-listed office hours. We will keep you informed each week about any changes in our office hours.

Class Times

All classes are held in SCI E101. Both lectures are taught by Jennifer (through October 8) and Lyn (after October 8).



Lab Instructor

Lab Teaching Assistant

Lec 01: Wednesday/Friday

Lab 01:
Monday, 8:30-10:20

Elaine Yang

Nausheen Eusuf

Lec 02: Wednesday/Friday,

Lab 02:
Monday, 10:30-12:20

Elaine Yang

Marianne Terrot

Lab 03:
Monday, 1:30-3:20

LeeAnn Tzeng

Kate Golder

Lab 04:
Monday, 3:30-5:20

LeeAnn Tzeng

Tootsie Bookman

Teaching Assistants

CS111 drop-in teaching assistants are available in E101 from on the following nights and times:





7 - 9 p.m.

Nausheen Eusuf


7 - 9 p.m.

Kate Golder


7 - 9 p.m.

Lisa Hazel


7 - 9 p.m.

Audrey Lee


6 - 8 p.m.

7 - 9 p.m.


Lin Hsu

Marianne Terrot


Some hints on drop-in teaching assistants:

If you need more personalized attention than a drop-in teaching assistant can provide, please consider applying for a one-on-one tutor from the Learning and Teaching Center (LTC) . This service is confidential and free of charge; please take advantage of it if you need some extra help! Contact us or LTC for more information about this service.

Course Overview

CS111 is an introduction to the problem solving foundations of computer science. Computer science is the study of imperative ("how to") knowledge, which is at the heart of any problem solving activity. Imperative knowledge is expressed via algorithms, which are descriptions of computational processes that can be encoded as programs written in a programming language. Programs communicate imperative knowledge between people; they can also be executed by computers.

In this course, you will learn "big ideas" about solving problems, developing algorithms, and organizing programs. These ideas include:

You will get hands-on experience with these ideas by reading, modifying, debugging, designing, writing, and testing programs. Example programs will involve graphics, user interfaces, games, text manipulation, and data analysis.

This semester we will be using the Java programming language as our main tool for exploring the above ideas. Although you will learn a significant amount about Java along the way, the focus of the course will be on the big ideas, not on the details of Java programming.

See the Course Syllabus for more detailed topic information and schedules.


CS111 assumes no previous computer experience. The only mathematical background assumed is high school algebra and geometry.

Is This the Right Course for Me?

CS111 is for students who:

If you (1) want a broader introduction to computer science with less emphasis on programming and (2) are not likely to take other computer science courses, you should consider taking CS110: Computer Science and the Internet. Contact Takis Metaxas or Stanzi Royden for more information.

If you are not interested in computer science, but want to learn how to use the Internet and various software applications to do you work, you should take CS100: Introduction to Internet Research and Resources. Contact Pattie Orr for more information. For learning particular applications, be on the lookout for ITS mini-courses that teach how to use these applications.

If you already have substantial programming experience, consider taking CS230: Data Structures. Contact Franklyn Turbak for more information. CS230 is taught in Java.


There are two 70-minute lectures each week, which will introduce the main content of the course. Each week there is also a mandatory 2-hour laboratory session, in which you will get hands-on experience with the computer, review material, and work on lab assignments. Optional tutorial and review sessions may be scheduled during the semester as the need arises.


Optional Text: The text we will be using this semester is Java: First Contact, by Roger Garside and John Mariani. Since we use it only peripherally, it is an optional text rather than a required one.

Lecture Notes: Some of the material presented in lecture will be summarized in lecture notes accessible from this web site. However, there will be no lecture notes for much of the material presented in class. Students are expected to attend all lectures and take their own notes of material covered in lecture.

E101 Library: The CS department has purchased a collection of books relevant to CS111 and CS110 that will be kept in the bookshelves near the front door of E101. Copies of the required and optional course texts may also be found here. See the E101 library page for a listing of the holdings and the rules for borrowing from the collection.

Science Center Library: A number of Java programming books are on reserve in the Science Center. You may borrow them for use within the library.


CS111 will be taught using the Macintosh computers in room E101 of the Science Center. Most of the software needed for CS111 resides on other Macintoshes on campus, although you may need to install some additional software yourself; see Software Installation for more detail.

This semester we will be programming in the Symantec Cafe Java development environment for the Macintosh. Although there is a PC version of the Symantec Cafe Java development environment, we do not officially support the PC version due to a lack of staffing and experience. Nevertheless, if you have the burning desire to use Symantec Cafe on your PC, you can ask us for some pointers on how to acquire, install, and use the PC version. We would be delighted if a student or set of students would learn enough about the PC version of Symantec Cafe to become local experts willing to help other students in this regard.

This is the last semester we plan to use Symantec Cafe in CS111. In Spring of 2000, we plan to switch to Metrowerks Code Warrior and fully support both Mac and PC versions. At that time we will also switch to a more current version of Java. (We are currently using Java 1.0.2, which is "ancient" as far as these things go.)

Throughout the course, you will need to use standard applications like Netscape, Fetch, email, and FirstClass. The Documentation has pointers to documentation for all the software packages used in CS111.

Each CS111 student will be given a password-protected account on the CS111 file server ( You will have a limited amount of space on the cs111 server to store your course-related files.

You are also expected to keep copies of all your course work on floppy disks or zip disks. Removable disks are a frail medium that you should handle carefully.Store and transport them in suitable protected containers. Do not subject them to temperature extremes, put them near magnetic fields, store them unprotected in your pockets, etc. Even if you handle floppy and zip disks carefully, they are still prone to failure. For this reason, you should regularly back up your floppy or zip disks!

Every time you insert a disk into a computer, you may be transmitting a computer virus! Viruses are nasty software fragments that can erase information on your computer or cause other malfunctioning. In order to reduce the spread of computer viruses, make sure that any personal computers you use have appropriate virus protection software installed.


CS111 assignments are designed to give you a working knowledge of the concepts presented in class. Weekly assignments in CS111 will consist of three sections: prelabs, labs and homework.

Assignments will typically be due at 4:00 p.m. on Fridays. See the Course Syllabus for detailed information on assignments and due dates.

Assignment Policy

Most assignments are due at 4 pm on Fridays. After that time, you may receive 75% of your total score on the assignment if you turn it in by 4 pm the next day (Saturday). Work will not be accepted after that time. If you have not completed an assignment, you should still turn in whatever you have for partial credit. In extenuating circumstances (e.g., sickness, personal crisis, family problems, religious holidays), you may request an extension. The instructors in the course will decide as a group whether to grant extensions. Such extensions are more likely to be granted if they are made before the due date.

Many of the assignments will be challenging. Keep in mind that programming often consumes more time than you think it will. Start your problem sets early! This will give you time to think about the problems and ask questions if you hit an impasse. Waiting until the last minute to begin a problem set is a recipe for disaster.

While planning your computer usage, keep in mind that computers do break down and Wellesley's are no exception. Also remember that outside of laboratory hours, you may have to compete with other students for a machine.

Instructions for turning in an assignment will be include with that assignment.

Collaboration Policy

We believe that collaboration fosters a healthy and enjoyable educational environment. For this reason, we encourage you to talk with other students about the course and to form study groups.

Unless otherwise instructed, feel free to discuss problem sets with other students and exchange ideas about how to solve them. However, there is a thin line between collaboration and plagiarizing the work of others. Therefore, we require that you must compose your own solution to each assignment. In particular, while you may discuss strategies for approaching the programming assignments with your classmates and may receive debugging help from them, you are required to write all of your own code. It is unacceptable (1) to write a program together and turn in two copies of the same program or (2) to copy code written by your classmates. However, it is OK to borrow code from the textbooks, from materials discussed in class, and from other sources as long as you give proper credit.

In keeping with the standards of the scientific community, you must give credit where credit is due. If you make use of an idea that was developed by (or jointly with) others, please reference them appropriately in your work. E.g., if person X gets a key idea for solving a problem from person Y, person X's solution should begin with a note that says "I worked with Y on this problem" and should say "The main idea (due to Y) is ...'' in the appropriate places. It is unacceptable for students to work together but not to acknowledge each other in their write-ups.

When working on homework problems, it is perfectly reasonable to consult public literature (books, articles, etc.) for hints, techniques, and even solutions. However, you must reference any sources that contribute to your solution. Assignments and solutions from previous terms of CS111 are not considered to be part of the "public'' literature. You must refrain from looking at any solutions from previous terms of CS111 (unless, of course, we explicitly tell you it's OK to do so). It is our policy that consulting problem set solutions from previous terms constitutes a violation of the Honor Code.


There will be three CS111 exams, all open book and open notes:

  1. An in-class exam on Friday, October 8.
  2. A take-home exam that will be handed out on Friday, November 5 and will be due on Friday, November 12 at 5:00 p.m You are not allowed to collaborate with anyone else on the take home exam.
  3. A final exam during the regular exam period.

Please mark these dates in your calendars. If you have any conflicts regarding the exam dates, you must contact your instructor as soon as possible.

Grading Policy

The final grade in the class will be computed as a weighted average of several components. The relative weight of the each component is shown below:

Assignments (total)


Exam 1 (in-class)


Exam 2 (take-home)






All assignments (lab assignments and problem sets) are weighted equally. Assignments account for the largest percentage of the grade. If you do not do these assignments, you will not pass the course!

For each assignment, one of the instructors or teaching assistants will grade the assignments for all the students in both sections. We will select at least one of the problems at random to be graded. The remaining problems will simply be checked off as completed (note, you must complete all problems on the assignment in order to be able to receive full credit). You should check your solutions to these problems for correctness using the detailed solutions that we provide for each assignment. If you have questions about the solutions, please see Jennifer, Lyn, LeeAnn, Elaine, or one of the teaching assistants for clarification. If you have questions about your grade on an assignment, you should first contact the person in charge of grading that particular assignment. If you have further questions about your grade, please contact Jennifer or Lyn.

Often students would like to know how we assign final letter grades for the course based on the numerical average that you earn. What we usually do is: >= 93.33 is an A, >= 90.00 is an A-, >= 86.67 is a B+, >= 83.33 is a B, >= 80.00 is a B-. >= 76.67 is a C+, >= 73.33 is a C, >= 70.00 is a C-, >= 60.00 is a D and < 60.00 is an F. Note - We may certainly curve this such that you earn an A with a grade lower than a 93.33 (for example). This decision will be based on the overall performance of the class. We will never curve in the opposite direction.

Course Directory

The CS111 course folder is located on in the same directory as all the CS111 student accounts. This directory contains material relevant to the class, including course software, and on-line versions of lecture notes, assignments, and programs. From Netscape, all this information is available via links from the document you are currently reading:

From Fetch or Winsock-FTP, the CS111 directory can be accessed by connecting to and navigating to /usr/users/cs111.

Course Folder on FirstClass

There is a CS111 folder on FirstClass. This folder has several purposes. We will use it to make class announcements, such as corrections to assignments and clarifications of material discussed in class. We encourage you to post questions or comments that are of general interest to the course. Jennifer, Lyn, LeeAnn, Elaine, and the tutors will all read the folder on a regular basis and post answers to questions found there. The course folder is also a good place to find people to join a study group. You should plan on reading this folder on a regular basis.

Announcements concerning the course will be posted on the CS111 home page. You should check this page regularly for important course information.

Finding Help

If you have any questions at all about the class (whether big or small, whether on labs, problem sets lectures, reading, or whatever) please contact one of the lecturers, lab instructors or TAs. That's what we're here for!

Simple questions can often be answered via the class folder or email. Questions of general interest (e.g. clarifying ambiguities in an assignment, wondering why posted programs don't work as expected) should be posted to the CS111 folder.

If you have a complex question or need help in understanding the material, you are encouraged to see us or a CS111 teaching assistant. The best time to see us in person is during our scheduled office hours (listed at the top of this document). If these times are not convenient, we can schedule an appointment for some other time. You can schedule an appointment in person, via phone, or via email.

Drop-in teaching assistants are available to answer your questions during certain hours. The names and schedules of the drop-in teaching assistants are given above. If you are having trouble with the course, you can request a one-on-one tutor from the Learning and Teaching Center (LTC) . This service is confidential and free of charge; please take advantage of it if you need some extra help! Contact us or LTC for more information about this service.

Finally, when looking for help, don't overlook other students --- not only those who have taken the course in the past, but your classmates as well. Get to know your classmates early in the term so that you can help each other out!


We are eager to hear your feedback on CS111! You can talk to either of the instructors in person, send email to us, or post a message in the CS111 folder.

Students with Special Needs

If you have any disabilities (including "hidden" ones, like learning disabilities), you are encouraged to meet with Jennifer or Lyn to discuss accommodations that may be helpful to you.

Mathematical Modeling Distribution

CS111 counts for one Mathematical Modeling (MM) distribution credit. Even though CS111 has a 2-hour weekly laboratory, it does not count as an MM laboratory unit.