Department of Computer Science
CS 210 - Data Structures

Winter 2003 Syllabus

COURSE OBJECTIVES:
Solving complex computational problems requires the use of appropriate data structures, such as stacks, priority queues, search trees, dictionaries, hash tables, and graphs. It also requires the ability to measure the efficiency, or "complexity" of operations like sorting and searching, in order to make effective choices among alternative solutions. This course is a study of data structures - their design, implementation, and effective use in solving computational problems. Laboratory exercises in Java will provide an opportunity to study the characteristics of these data structures directly.
TEXTS (required):
On to Java Winston and Narasimhan, Addison Wesley, 2001 , Algorithm Design Goodrich and Tamassia, Wiley, 2002, and on-line handouts
INSTRUCTOR:
Eric Chown, 219 Searles Science Building
Web address: http://www.bowdoin.edu/~echown
Office Hours: M, T 2:30-4:00 or by arrangement
MEETING TIMES:
Class meeting: TTH 11:30-1:00 - Searles 126
Lab meeting: W 2:30-3:55 - Searles Mac Lab
COURSE OUTLINE:
Week of Topics Readings Work Due
Jan 21 Java.
Jan 28 Programming in Java (cont.) W 1-7, 21-24, 26, 28, 29, 31
Feb 4 Programming in Java (cont.) W 8-20, 27, 32-42
Feb 11 Vectors W 30, G 2.2
Feb 18 Program Analysis G 1
Feb 25 Recursion W 25
Mar 4 Exam 1
Mar 25 Lists G 2.2
Apr 1 Stacks G 2.1
Apr 8 Queues G 2.1
Apr 15 Trees G 2.3
Apr 22 Advanced Trees (continued) G 3
Apr 29 Hash Tables G 2.5
May 6 Cleanup
Dec 10 Exam 2

WORK FOR THE COURSE: The work for this course includes class participation, readings, two tests, a number of weekly lab assignments (usually around 10), numerous in-class assignments, and a final project. Lab assignments can be downloaded directly from this Web page on the Monday of the week when it is assigned. All work will be graded and will contribute to your course grade. As a rule in-class assignments are simply checked for completeness and labs are graded more thoroughly. Approximately 50 percent of your grade will be based upon the two exams. The rest will be based on lab and class performance. Attendance is required for all scheduled classes and lab meetings. Since the major goal of the course is to teach you programming, not handing in any lab is grounds for failing the course. This does not assume, however, that all labs will be completed satisfactorily.

One of the goals of the course will be to learn the difference between programs that simply work, and quality programs. Therefore do not assume that completing the assignment will result in an A program. We will discuss guidelines extensively in class.

Lab work will normally be done individually or, in some cases, in teams of two (your choice), but written lab exercises should be completed individually. Each lab assignment should be turned in on the Wednesday following the week it is assigned no later than the start of Wednesday's lab. Students are expected to follow Bowdoin's Computer Use Policy and its Academic Honor Code.

You are encouraged to discuss ideas and techniques broadly with other class members, but not specifics of assigned problems except as part of group projects. Discussions should be limited to questions that can be asked and answered without using any written medium (e.g. pencil and paper or email). This means that at no time should a student read any code written by another student unless they are part of the same group. Sharing of code or intermediate designs is expressly prohibited. Violation of this policy is grounds for me to initiate an action that would be filed with the Dean's office and would come before the J Board. If you have any questions about this policy, PLEASE do not hesitate to contact me. This will be a zero-tolerance policy.

It is permissible to use software and materials available from other sources (understanding that you get no credit for using the work of others on those parts of your projects) as long as: 1) You acknowledge explicitly which aspects of your assignment were taken from other sources and what those sources are. 2) The materials are freely and legally available. 3) The material was not created by a student at Bowdoin as part of this course this year or in prior years.

All write-ups, reviews, documentation, and other written material must be original and may not be derived from other sources.

Late Policy

To be considered on time, assignments must be turned in at the specified time on the due date. Each student has a total of four late days that can be used throughout the semester. Thus, during the semester a student can turn in assignments so that the total number of days late does not exceed four without any penalty. For example, a student could turn in four different assignments, each one day late, or all assignments on time except one that is four days late. Saturday and Sunday count as a single day, so that if an assignment is due on Friday, but turned in on Monday, it is late by two days.

Once the number of late days exceeds a total of four, late assignments will be assessed a penalty of 10% of the assignment's available points per day. Since I provide the late days, I will not grant extensions.