CS230 Data Structures, Wellesley College, Spring 1998

CS230 Home Page

[CS230 Home Page] [Assignments] [Documentation] [Software Installation] [FAQ] [CS Dept.] [CWIS]

Announcements

Check this spot daily for important announcements!


May 13, 1998:

Exam 2 Solutions are now available.


May 11, 1998:

Problem Set 8 Solutions are now available in the Word document "PS8 Solutions.doc", which can be downloaded from the CS230 download folder.


May 10, 1998:

Problem Set 7 Solutions are now available.


May 5, 1998:


April 27 1998:

Exam2 is now complete. If you have already downloaded the initial version of the code, you should now download all files beginning with the letters "BST", as well as the ObjectCollections.proj file.


April 26, 1998:

Three out of four of the problems on Exam2 are now available. The fourth problem will be posted later today. The exam will be due at 11:59pm on Tuesday, May 5.


April 23, 1998:

The Problem Set 7 due date has been extended to Monday, April 27.


April 17, 1998:

Problem Set 7 is now available. It is due on Friday, April 24.


April 12, 1998:

Problem Set 6 is now available. It is due on Friday, April 17.


April 8, 1998:

Problem Set 2 solutions are now available. The object diagram solutions are especially worth study.


April 7, 1998:

The due date of Exam 1 has been extended. It is now due at 5pm on Thursday, April 9.


March 31, 1998:

Exam 1 is now avaialble. It is due at 11:59 pm on Tuesday, April 7.


March 29, 1998:

Welcome back from Spring Break! The following problem set solutions have been posted. Please study these in preparation for your exam!


March 19 ,1998:


March 15 1998:


March 14, 1998:


March 4, 1998:


February 23, 1998:


February 13, 1998:


February 9, 1998:


January 27, 1998:


General Info

Professor

Franklyn Turbak (please call me "Lyn")

Office

SCI E106

Phone

x3049

Email

fturbak@wellesley.edu

Lectures

SCI E211, Tuesday/Thursday, 1:30pm-2:40pm

Office Hours

Tuesday/Wednesday/Thursday 3pm-5pm
(4pm on Thursdays when Academic Council meets.)

Course Overview

CS230 focuses on three "big ideas":

  1. Data Abstraction: In order to cope with the complexity of writing programs, it is desirable to express them as combinations of components whose behavior can be understood independently from their implementation. In CS111, you learned how methods provide an abstraction barrier between the caller and implementer of a method. We will review this notion and introduce abstract data types (ADTs) as a way of thinking about computational values and the operators that manipulate them.
  2. Modularity: The ability to create complex artifacts (computational or otherwise) is enhanced if they can be composed out of reusable components with standard interfaces that can be combined in mix-and-match ways. We will study how to compose programs out of mix-and-match components.
  3. Algorithmic Complexity: Programs are often judged by how effectively they make use of resources such as space and time. Algorithmic complexity is a tool for analyzing the efficiency of algorithms. We will use this tool to evaluate various approaches to implementing data structures.

These ideas will be explored in the context of a variety of fundamental structures used in Computer Science, including lists, trees, graphs, stacks, queues, priority queues, sets, bags, and tables. We will use Java as the language for describing implementations of these structures.

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

Prerequisites

The prerequisite for CS230 is CS111, Computer Programming and Problem Solving. Students with significant programming experience who have not taken CS111 may take the course with permission of the instructor.

Is This the Right Course for Me?

CS230 is for students who:

Students who learned programming in a language other than Java are encouraged to take CS230, but should be prepared to spend extra time learning the details of Java at the beginning of the semester. We will spend the first few weeks reviewing fundamental programming ideas in the context of Java. Additionally, there will be some evening review sessions focusing on Java. Finally, the first few assignments will be group assignments in which students unfamiliar with Java will be teamed with CS111 veterans.

Classes

There are two 70-minute lectures each week, which will introduce the main content of the course. Optional tutorial and review sessions will be scheduled during the semester as the need arises.

Textbooks/Notes

Required Text: The text we will be using this semester is An Introduction to Data Structures and Algorithms with Java, by Glenn W. Rowe. The text is reasonable, but I will be supplementing it with frequent notes. I ordered the text late, so that it may not arrive by the start of classes. I will announce when it is available in the bookstore.

Course Notes: I will be supplementing the text with notes that I will post on-line.

E101 Library: The CS department has purchased a collection of books relevant to CS230, CS111, and CS110 that will be kept in the bookshelves near the front door of E101. Copies of the required text may also be found here. See the E101 library page for a listing of the holdings and the rules for borrowing from the collection. Of particular interest, especially to those unfamiliar with Java, is this term's CS111 text: Java: First Contact, by Roger Garside and John Mariani. This book is far superior to the programming.java text from last semester.

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.

 

Problem Sets

There will be weekly problem sets in which you will write Java programs that emphasize concepts discussed in class.

Many of the problem sets 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.

All problem sets are due in class on the advertised due date, which will typically be a Thursday. You should turn in both a "hard" (paper) copy of your assignment and a "soft" (electronic) copy of any programs from the assignment. Soft copies should be submitted to the drop folder for the assignment, which can be found in the CS230 folder on cs230.wellesley.edu. A soft copy submission will typically be a folder containing your programs and any other information you think is appropriate. Be sure that the name of this folder includes both your name and the problem set number.

Problem sets will be graded on a 10 point scale. I will strive to have problem sets graded as soon as possible. Solutions to problem sets will be posted on the web.

Make backups of all your floppy disks regularly throughout the term! Numerous students have lost all of their work when they could least afford it. Don't join them!

Problem Set Header Sheets

I would like to get a sense for how much time it takes you to do your CS230 problem sets. Please keep track of the time you spend on each problem of your problem sets, and include this information on the problem set header sheets that will be provided for each problem set. Turn in this header sheet as the first page of your hardcopy solutions.

Late Problem Set Policy

I realize that it is not always possible to turn in problem sets on time. On the other hand, turning in one problem set late can make it more difficult to turn in the next problem set on time. I have decided on the following policy for this course this term:

A problem set due on a particular day will be accepted until 11:59pm of that day without penalty. A problem set can be turned in n days late if it is accompanied by n Lateness Coupons.

At the beginning of the term, you will receive a sheet with ten Lateness Coupons that you can use throughout the term. Use them wisely: you only get ten, and they are not copyable or transferable between students. Lateness Coupons can only be used on problem sets; they cannot be used on exams.

You may turn in late problem sets by slipping them under my office door. Of course, if I hand out solutions before you turn in a late problem set, you are bound by the Honor Code not to examine these solutions.

In extenuating circumstances (e.g.,, sickness, personal crisis, family problems), you may request an extension without penalty. Such extensions are more likely to be granted if there are madev before the due date.

Collaboration Policy

I believe that collaboration fosters a healthy and enjoyable educational environment. For this reason, I 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, unless otherwise instructed, 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. In general, 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. Also, during the first few assignments of this course, you will be working in groups; on these assignments, the above policy does not hold.

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 CS230 are not considered to be part of the "public'' literature. You must refrain from looking at any solutions from previous terms of CS230 (unless, of course, I explicitly tell you it's OK to do so). It is my policy that consulting problem set solutions from previous terms constitutes a violation of the Honor Code.

Computers

CS230 software can be run on all 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 CS230 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 CS230.

Each CS230 student will be given a password-protected account on the CS230 file server (cs230.wellesley.edu). You will have a limited amount of space on the CS230 server 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.

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.

Exams

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

  1. A take-home exam that will be handed out on ??? and will be due on ??? by ??? a.m. The take-home exam will require use of a computer. You are not allowed to collaborate with anyone else on the take home exam.
  2. A take-home exam that will be handed out on ??? and will be due on ??? by ??? a.m. 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 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)

40%

Exam 1 (take-home)

20%

Exam 2 (take-home)

20%

Final

20%

Total

100%

All assignments 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!

Course Directory

The CS230 course folder is located on cs230.wellesley.edu in the same directory as all the CS230 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:

http://cs230.wellesley.edu/~cs230

From Fetch or Winsock-FTP, the CS230 directory can be accessed by connecting to cs230.wellesley.edu and navigating to /usr/users/cs230.

Course Bulletin

There is a CS230 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. You are encouraged 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 CS230 bulletin on a regular basis.

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 me. That's what I'm here for!

Simple questions can often be answered via bulletin 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 CS230 bulletin folder. Other questions can be addressed to Lyn at fturbak@wellesley.edu.

If you have a complex question or need help in understanding the material, you are encouraged to see me or a CS230 tutor. The best time to see me in person is during my 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!

Feedback

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

Students with Special Needs

If you have any disabilities (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

CS230 counts for one Mathematical Modeling (MM) distribution credit.