Department of Computer Science
CS 210 - Data Structures

Winter 2000 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):
Sahni, Sartaj, Data Structures, Algorithms, and Applications in Java., McGraw-Hill, 2000, Programming with Java. McGraw-Hill, 1999 (optional), and on-line handouts
INSTRUCTOR:
Eric Chown, 219 Searles Science Building
Email address: echown@polar.bowdoin.edu
Web address: http://www.bowdoin.edu/~echown
Office Hours: M, 2-3:30, T,TH 3:30-4:30 or by arrangement
MEETING TIMES:
Class meeting: TTH 1:00-2:30 - Searles 126
Lab meeting: W 2:30-3:55 - Searles Mac Lab
COURSE OUTLINE:
Week of Topics Readings Work Due
Jan 24 Transition to Java: Object oriented programming. Chapter 1, , Pascal to Java guide
Jan 31 Object Oriented Programming (cont.) Chapter 1 Lab 1
Feb 7 Vectors, Recursion Chapters 2, 3 Lab 2
Feb 14 Program Performance Chapter 2 Lab 3
Feb 21 Data Structures: Lists Chapter 4 Lab 4
Feb 28 Sorting Misc. Lab 5
March 6 Arrays and Matrices Chapter 6 Lab 6
March 13 **** Test 1 ****
April 3 Stacks and Queues Chapter 9, 10 Lab 7
April 10 Hashing Chapter 11 Lab 8
April 17 Trees Chapter 12 Lab 9
April 24 Advanced Trees (continued) Chapter 16 Lab 10
May 1 Lab time
May 8 **** Test 2 **** Lab 11

WORK FOR THE COURSE: The work for this course includes class participation, readings, two tests, 10 weekly lab 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. Attendance is required for all scheduled classes and lab meetings.

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 Tuesday following the week it is assigned no later than the start of Tuesday's class. Students are expected to follow Bowdoin's Computer Use Policy and its Academic Honor Code.

The final project will provide an opportunity to design and implement a complex piece of software for a real-world problem, using the data structures and concepts that you have learned throughout the course.