Graphic by Keith Ohlfs

CS111, Wellesley College, Fall 1997

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



December 14, 1997

All labs including prelab 5 are graded and can be picked up outside Lyn's office. Labs 2,3,4, 6,7, 11 and prelab 5 are there.

December 12, 1997

All labs except prelab 5 are graded and can be picked up outside Lyn's office. Labs 2,3,4,6,7 and 11 are there.

December 11, 1997

Extremely Important: YOUR NIKE FILES WILL BE DELETED ON JANUARY 16! In order to make room on Nike for the Spring Semester, we will have to delete all student accounts from Nike on January 16. Please make sure to back up any files that you want to save to floppies or other machines by Thursday, January 15.

Many of you (we hope) will wish to maintain your home page. The Wellesley Web Weavers is a student group that manages student web pages at Wellesley on a server called Wilbur. For information on how to put your home page on Wilbur, read the first message on the WebHelp bulletin on LUCY.

December 11, 1997

Several bug fixes have been made to the Object Diagrams notes. See the CS111 bulletin for a list of fixes.

December 10, 1997

Labs 2 and 11 have been graded and are available outside Lyn's office. More graded labs should be coming soon.

December 9, 1997

Notes on Object Diagrams are now available. Read them! Because of the delay in posting these notes, Problem 1 from Problem Set 7 will not be due until 6pm Wed, Dec. 10. Please feel free to resubmit Problem 1 if you would like to change your answer after reading the notes.

December 8, 1997

Now is the moment you've all been waiting for! It's time to cast your SOMETHING FISHY VOTE! All votes must be cast by 11:59pm on Wed., Decemeber 10. The winners will be announced in the final exam review session on Thursday, December 11.

December 7, 1997

The first draft of the Final Exam Review Problems has just been posted. Right now, it contains only a few problems, but more will be added over the next few days.

There will be two final exam review sessions that you may wish to attend:

The review sessions will feature Lyn's famous homemade chocolate chip cookies.

November 25, 1997

Graded Exam 2s were handed back in class. You can download solution code for the exams from Nike in the directory ~cs111/public_html/assignments/exam2-answers.

For previous announcements, see the CS111 Announcements page.






Office Hours

Franklyn Turbak
(please call me "Lyn")

SCI E106


Tues: 3pm-5pm
Wed: 3pm-5pm
Thurs: 1:30pm-3:30pm

Lab Instructor:
Constance Royden
(please call me "Stanzi")

SCI 104


Wed: 1:30pm-2:30pm
Fri: 10:30am-11:30am

Class Times

All classes are held in SCI E101. Lectures are taught by Lyn; labs, by Stanzi.



Lab Tutor

Lec 01: Tuesday/Thursday, 9:50am-11:00am

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

Kate Butler

Lec 02: Tuesday/Thursday, 11:10am-12:20pm

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

Yan Zhang

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

Emily Horton

Lab 04: Tuesday, 12:30pm-2:20pm

Elena Konstantinova


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






Emily Horton



Kate Butler



Laura Diao



Elena Konstantinova

Some hints on drop-in tutors:

If you need more personalized attention than a drop-in tutor 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.


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, modify, debugging, designing, writing, and testing programs. Example programs will involve graphics, user interfaces, games, text manipulation, data analysis, and interactive web pages.

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 Stanzi Royden or Randy Shull for more information.

If you are not interested in computer science, but want to learn how to use various software applications (word processing programs, web browsers, picture editors, spreadsheets, etc.), you should take ITS mini-courses that teach how to use these applications.

If you already have substantial programming experience, consider taking CS230: Data Structures. Contact Ellen Hildreth for more information. The Fall '97 semester is the last semester during which CS230 will be taught in Pascal. Starting in Spring '98, CS230 will be taught in Java.

If you have taken CS111 and/or CS230 but want to learn Java, consider taking CS251: Programming Languages, which will have a substantial Java component. Contact Takis Metaxas for more information. Another option is to become a CS111 tutor; there's not better way to learn a subject than to teach it!


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.


Required Text: The text we will be using this semester is, by Rick Decker and Stuart Hirshfield. The book will not be published until later this fall, but the publisher (PWS) has allowed us to make copies of an unedited draft of the book for CS111. You can purchase a copy from the campus bookstore; you will also need to buy a binder in which to put the copy.

Why are we using an unedited draft of a book in this course? Because Java is such a new language, there are not yet many good textbooks, especially at the introductory level. Most are just rewrites of existing Pascal, C, and C++ textbooks that do not capture the spirit of Java, especially the graphic and user interface features. The text is far from perfect, but at least it provides a fresh perspective on introductory Java programming that the other texts lack.

For those of you who don't like the idea of spending a lot of money to buy an unedited draft of a book, we are making five copies of the book available in the E101 library. Feel free to borrow these copies (for use within the E101 area only!) instead of purchasing a copy.

Optional Text: As an optional textbook, we are recommending Computing Concepts with Java Essentials (henceforth CCJ), by Cay Horstmann. This book is more polished than, and has good explanations of Java features and programming concepts. Unfortunately, the book follows the traditional approach of stressing numerical and textual examples over graphics and user interface examples, which is why we didn't choose it as the required text.

We will have several copies of CCJ in the E101 library. If you would like to purchase a copy, you can buy one from the campus bookstore.

Lecture Notes: Much of the material covered in lectures will be summarized in notes that will be posted in the CS111 Lecture Notes page. These notes are important reading material for the class.

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.

It is our goal to have all CS111 software run on Windows-95 PCs in addition to Macs. As of this writing, this goal has not yet been achieved. We are currently working on configuring Windows-95 PCs to run the course software, and will announce when we are successful.

Throughout the course, you will need to use standard applications like Netscape, Fetch, email, and bulletin. 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 Nike file server ( You will have a limited amount of space on Nike to store your course-related files.

You are also expected to keep copies of all your course work on floppy disks. Floppy 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 disks carefully, they are still prone to failure. For this reason, you should regularly back up your floppy disks!

Every time you insert a floppy 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. There are two kinds of weekly assignments in CS111: labs and problem sets.

Both lab assignments and problem sets will typically be due in class on Thursdays. See the Course Syllabus for detailed information on assignments and due dates.

Assignment Policy

All assignments are due in class on the date announced when the assignments are distributed. No late work will be accepted. 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. Such extensions are more likely to be granted if they are madebefore 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 that will be held on Thursday, October 9.
  2. A take-home exam that will be handed out on Thursday, November 6, and will be due at the end of class on Thursday, November 13. The take-home exam will require use of a computer. 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 these dates, you must contact us 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:

Lab Assignments (total)


Problem Sets (total)


Exam 1 (in-class)


Exam 2 (take-home)




Class/Lab participation




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! The lowest lab assignment grade and lowest problem set grade for each student will be ignored when calculating these components.

Class participation includes attendance at laboratory sessions, following the CS111 Bulletin, and participating in class and laboratory discussions.

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 Bulletin

There is a CS111 folder in the Bulletin system on Lucy. This folder has several purposes. I will use it to make class announcements, such as corrections to assignments and clarifications of material discussed in class. I encourage you to post questions or comments that are of general interest to the course. The course bulletin is also a good place to find people to join a study group. You should plan on reading the CS111 bulletin on a regular basis.

We are investigating the possibility of using the CS111 course directory on Nike (described above) as a repository for bulletin-like messages. We will let you know if we make any progress on this front.

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 Lyn or Stanzi. That's what we're here for!

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

If you have a complex question or need help in understanding the material, you are encouraged to see us or a CS111 tutor. 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 tutors are available to answer your questions during certain hours. The names and schedules of the drop-in tutors will be made available early in the term. 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 Lyn or Stanzi in person, send email to use, or post a message in the CS111 bulletin folder.

Students with Special Needs

If you have any disabillities (including "hidden" ones, like learning disabilities), you are encouraged to meet with 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.