Description: In this class we'll be studying a number of fundamental data structures and algorithms used in computer programming. An emphasis will be placed on data structures and algorithms that are of practical value, though more esoteric ones will also be considered. Students will analyze each concept covered in the course to understand its strengths and weaknesses, and to understand applications for which it would be appropriate. By the end of the course, students should have the skills necessary for selecting between existing data structures and algorithms, and for designing their own.

Text: Mark Allen Weiss' Data Structures and Algorithm Analysis in C++ (second edition), Addison-Wesley (1999)

Office hours:
Steve Wolfman Mon 11:30-12:30, Fri 3:30-4:30 Sieg 226d
Zasha Weinberg Mon 2:30-3:30 Sieg 226d, Tues 2:30-3:30 226d
Nic Bone Thu 11:30-12:20 Sieg 226b, Fri 12:30-1:20 226a


Lecture: MWF 1:30-2:20

Week at-a-glance:
Monday Tuesday Wednesday Thursday Friday
9:30 Section AA
AND 008
10:00
10:30
11:00
11:30 Steve
office hours
SIG 226d
Nic
office hours
SIG 226b
12:00
12:30 Nic
office hours
SIG 226a
1:00
1:30 Lecture
EE1 037
Lecture
EE1 037
Lecture
EE1 037
2:00
2:30 Zasha
office hours
SIG 226d
Zasha
office hours
SIG 226d
Section AB
LOW 117
3:00
3:30 Steve
office hours
SIG 226d
4:00

Computing Resouces:
Sieg PC Labs
Math Sciences PC Lab


Evaluation:
Written Assignments 15%
Programming Assignments 25%
Midterm20%
Final Exam30%
Best of these, extra10%


Important Dates:
Midterm Friday, February 4
Martin Luther King DayMonday, January 17
Presidents DayMonday, February 21
Final ExamMonday, March 13, 2:30-4:20 pm


Approximate Course Schedule:
week of ...   topicreading
Jan 3introduction, review (stacks, queues, lists, trees)(Chapters 1 & 3)
Jan 10asymptotic analysis(Chapter 2)
Jan 17 (19)priority queues(Chapter 6)
Jan 24binary search trees, self-balancing trees(Chapter 4)
Jan 31catch-up, midterm
Feb 7B-Trees, Multi-D trees(Chapter 4)
Feb 14hashing(Chapter 5)
Feb 21 (23)sorting(Chapter 7)
Feb 28disjoint set union-find(Chapter 8)
Mar 6graphs, wrap-up(Chapter 9)


Assignments: