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% | |
Midterm | 20% | |
Final Exam | 30% | |
Best of these, extra | 10% |
Important Dates:
Midterm | Friday, February 4 | |
Martin Luther King Day | Monday, January 17 | |
Presidents Day | Monday, February 21 | |
Final Exam | Monday, March 13, 2:30-4:20 pm |
Approximate Course Schedule:
week of ... |     | topic | reading |
Jan 3 | introduction, review (stacks, queues, lists, trees) | (Chapters 1 & 3) | |
Jan 10 | asymptotic analysis | (Chapter 2) | |
Jan 17 (19) | priority queues | (Chapter 6) | |
Jan 24 | binary search trees, self-balancing trees | (Chapter 4) | |
Jan 31 | catch-up, midterm | ||
Feb 7 | B-Trees, Multi-D trees | (Chapter 4) | |
Feb 14 | hashing | (Chapter 5) | |
Feb 21 (23) | sorting | (Chapter 7) | |
Feb 28 | disjoint set union-find | (Chapter 8) | |
Mar 6 | graphs, wrap-up | (Chapter 9) |
Assignments:
Any deviation from these rules will be considered cheating. If you are uncertain as to what is or is not reasonable collaboration, please contact the instructor.
Note that some projects may be explicitly assigned to teams rather than individuals.