Department of Computer Science
CS 210 - Data Structures

Fall 1997 Syllabus

COURSE OBJECTIVES:
Solving complex algorithmic 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, implementatin, and effective use in solving complex computational problems. Laboratory exercises in Java will provide an opportunity to study the characteristics of these data structures directly.
TEXTS (required):
Duane Bailey, Java Structures, draft text,
David Flanagan, Java in a Nutshell 2nd edition, O'Reilly, 1997, and
On-line Java Documentation
INSTRUCTOR:
Allen Tucker, 211 Adams Hall
Email address: allen@polar.bowdoin.edu
Web address: http://www.bowdoin.edu/~allen
Office Hours: MTTh 3:30-5:00, or by arrangement
MEETING TIMES:
Class meeting: TTh 2:00 - 3:30 Adams 106
Lab meeting: W 2:00-3:15 Adams 208
COURSE OUTLINE:
Week of Topics Readings Work Due
Aug 25 Transition to Java: classes and objects Chapters 0, 1,
handout
Sept 1 Formal comments; preconditions and postconditions Chapter 2 Lab 1
Sept 8 The Vector class, analysis, implementation Chapter 3 Lab 2
Sept 15 Formal methods: O notation, induction and recursion, sorting Chapters 4, 5 Lab 3
Sept 22 Linked lists; design, implementation, and performance Chapter 6 Lab 4
Sept 29 *** test 1 ***
Oct 6 Design concepts Chapter 7 Lab 5
Oct 13 Stacks and queues Chapter 8
Oct 20
(1/2 week)
Iterators, ordering Chapters 9, 10 Lab 6
Oct 27 Trees, traversal Chapter 11 Lab 7
Nov 3 *** test #2 ***
Nov 10 Priority queues; complexity issues, applications Chapter 12 Lab 8
Nov 17 Binary search trees, balancing, splay trees Chapter 13 Lab 9
Nov 24
(1/2 week)
Dictionaries and hash tables Chapter 14 Lab 10
Dec 1 Overview of graphs Chapter 15
Dec 8 *** Final Exam Period (test #3) ***
WORK FOR THE COURSE: The work for this course includes class participation, readings, three tests, and 10 weekly lab assignments. All 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 class and lab meetings. Lab work may be done either individually or in teams of two (your choice), but written lab exercises should be completed individually. Each lab assignment should be turned in on the Monday following the week it is assigned. Students are expected to follow Bowdoin's Computer Use Policy as well as its Academic Honor Code.