CS 206 - Data Structures
An introduction to the fundamental data structures of computer science: lists, stacks,
queues, trees, BSTs, graphs, sets and their accompanying algorithms. Principles of algo-
rithmic analysis and object reasoning and design will be introduced using mathematical
techniques for the notions of both complexity and correctness. More practical issues, such
as memory management and hashing, will also be covered.
Check the class website often for updates. Deadlines will also be listed there.
Approximate Schedule of Topics
- Week 1. Introduction, Java Review
- Reading: Chapters 1
- Lab will meet
- Week 2. Object-oriented programming (OO design and inheritance)
- Week 3. Linked Lists
- Week 4. Algorithm Analysis
- Week 5. Stacks and Queues
- Week 6. List and Iterator
- First Midterm
- Reading: Chapter 7
- Week 7. Lists, Iterators and Trees
- Week 8. Trees (and graph basics)
- Week 9. Priority Queues
- Week 10. Maps and Hash Tables
- Week 11. Sorting and Selection
- Second Midterm
- Reading: Chapter 12
- Week 12. Search trees and union-find
- Week 13. Graph Algorithms (data structures to store graphs, graph traversals)
- Week 14. Advanced topics and review
- Week 15. Final exam week - the final exam will be self-scheduled through the Office of the Registrar.
Total grade breakdown
Grades will be awarded based on the number of points earned and according to the
percentage breakdowns shown.
Midterms will be in class. Closed book, closed notes, no electronic devices.
The final will be self-scheduled during exam week. It is intended to be more of a third mid-term than a true final.
Late work policy
All extensions must be requested at least 24 hours in advance of the deadline.
Extensions will be granted based on individual circumstances. Work handed in late
without a previously granted extension will not be 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 earning how to solve the challenging problems you will see in
this course. If you are ever uncertain if collaboration or certain sources are allowed, you
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. The group project is the only exception to this
- in this case, these collaboration rules apply to students outside of your group and you
may freely work closely with students within your group. Collaboration is not allowed
on examinations or quizzes.
You should not use outside sources (the internet, other textbooks, students not in this
class, etc.). 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.
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.