CS 206: Introduction to Data Structures
An introduction to the fundamental data structures of computer science: lists, stacks, queues, trees, Binary Search Trees, graphs, sets and their accompanying algorithms. Principles of algorithmic analysis and object reasoning and design will be introduced using mathematical techniques for the notions of both complexity and correctness.
Instructor: Geoffrey Towell , Park 204
E-Mail: gtowell at brynmawr dot edu
Office hours: T 10-11AM, W 3-4pm, or by appointment
Textbook: Data Structures and Algorithms by Goodrich, Tamassia and Goldwasser
TA hours in Park 231
Sun - Thurs 6:30pm-9:30pm
One of the following courses (or their equivalents at Haverford or Swarthmore) is required.
Or permission of the instructor.
Total grade breakdown
Grades will be awarded based on the number of points earned and according to the
percentage breakdowns shown.
All exams will be closed book, closed notes, no electronic devices.
- Exam 1: Feb 27, In class
- Exam 2: April 7, In class
The final will be self-scheduled during exam week. It will cover material from the whole course, but will focus on topics from second half of the semester.
Late work policy
Everyone gets 2 24 late passes. These can be used at any time simply by sending me an email. The only requirement is that you send email requiesting the use of a late pass prior to the due date of the assignment. You need not get my approval, it is automatic. Other than these passes, late work is not accepted.
Attendance and Participation
Attendance at, and active participation in, all class sessions is expected of all students.
Participation will be taken into account in awarding of final grades for students who are
on the edge between two grades. For example, a student with a B+/A- average and
a strong attendance and participation record would receive an A-, while a student with
a weak record would receive a B+.
It is your responsibility to understand and follow the collaboration policy in this class.
The goal of the policy is to encourage collaboration while ensuring that you and your
classmates really engage in learning how to solve the challenging problems you will see in
this course. If you are ever uncertain if collaboration or certain sources are allowed, ask.
should ask the professor.
You are encouraged to discuss the lecture material and the labs and problems with
other students, subject to the following restriction: the only product of your discussion
should be your memory/understanding of it - you may not write up solutions together, or
exchange written work or computer files.
Code should not be copied without permission from the author. If permission
is given, code should be cited at the location it is used with a comment. If your solution
is inspired by any outside resources (I understand that sometimes it is hard to not see
things), you MUST cite.
Despite my best efforts, homeworks may have sections that are not quite correct. If you find one, let me know. If I agree that the issue is an issue, bonus points will be awarded as follows:
Ordering is based on date of email recipt. One bonus per person per assignment.
- 3 points for the first issue reported
- 2 points for the second issue reported
- 1 point for the third issue reported
- Jan 21
Intro and Review
- Jan 23
More Java Review
- Jan 28
More about inheritance, Generics
- Jan 30
the ArrayList data structure
- Feb 4
the Linked List data structure
- Feb 6
Generic Linked Lists, Doubly linked lists
- Feb 11
- Feb 13
Exceptions, Scope and Restaurants
- Feb 18
- Feb 20
- Feb 25
Students requesting accommodations in this course because of the impact of disability
are encouraged to meet with me privately early in the semester with a verification letter.
Students not yet approved to receive accommodations should also contact Deb Alder,
Coordinator of Accessibility Services, at 610-526-7351 in Guild Hall, as soon as possible,
to verify their eligibility for reasonable accommodations. Early contact will help avoid
unnecessary inconvenience and delays.
This class may be recorded.