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.
Grade Percentage Breakdown:
- Exam 1: Feb 27, In class
- Exam 2:
April 7, In class TBA
|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.
Percentages are based on total points available in each part. For mini-homeworks 100% is turning in a credible effort on 10 of the 12 minis. All extra credit points will be assigned to the homework group
Based on advice from the school administration the final optional. yes OPTIONAL. Should you choose to not take the final the grade breakdown will be
- First Exam: 20%
- Final Exam: 20%
- Mini Homeworks: 10%
- Programming Homework: 50%
If you turn in the final and it does not help your grade I will consider it as equivalent to an email saying you do not want to take the final.
The final will be posted on the class website no later than May 3. Rules for taking the exam will be in a separate file from the exam. The exam must be turned in (or am email saying you will not take the exam) by May 15. (Seniors have an earlier due date.) Open and read the rules first and at your leisure. Do not open the exam until you are ready to start. (This will be clear on the class website.) I will send another email when the final exam is posted.
All exams will be closed book, closed notes, no electronic devices unless otherwise noted.
- First Exam: 24%
- Mini Homeworks: 14%
- Programming Homework: 60%
- Email saying you are not taking the final: 2%
Read the instructions first. Read the instructions second. Only when you are ready to take the exam should you click on the link to get the test. The final is due by 12:30pm EDT on May 15. This is the end of the Bryn Mawr exam period.
- Instructions One late modification to the instructions. You may have a computer (or tablet) open to write directory into the PDF using you favorite PDF writing tool. There may (or may not) be enough space for your answers. However you submit, legibility is your responsibility. That said, I have not had significant problems with legibility on any of the mini-homeworks.
- The exam
Do not click on this link until you are ready to start the exam
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
- March 3
Exam Recap -- Recursion
- March 5
- March 19
Trees -- Part 1
Watch the video available on the course moodle page. The lecture only goes through slide 11. From slide 11, using paper and pencil build and label binary trees for the second, third and fourth sets of numbers. Send a picture of these trees to email@example.com. Lecture notes
- March 24
Trees -- Part 2
- March 26
Trees -- Part 3
- March 31
Trees -- Part 4
- April 2
Trees -- Part 5 (the last part)
- April 7
Priority Queues (chapter 9.1, 9.2)
- April 9
Priority Queues (chapter 9.3)
- April 14
Sorting with Priority Queues (chapter 9.4)
- April 16
Merge Sort (Chapter 12.1)
- April 21
Quick Sort (Chapter 12.2)
- April 21
Final Sort comments and intro to hash tables (Chapter 10.1-10.2)
- April 28
Hash tables (Ch 10.2)
- April 28
Hash tables and a final example program
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.