TTh 3:00-4:20pm in BSB 335
TWTh 10:00-11:00am, or by confirmed appointment
Office: BSB 308
Email: shende AT camden DOT rutgers DOT edu
In this course, students will study a variety of data structures that can be used to store, access and modify large collections of data required in computing applications. The mathematical techniques - used to understand the design, modalities, implementations and the efficiency of data structures - come mainly from the material covered in the course, Mathematical Foundations of Computer Science (CS 171): this latter course is a required prerequisite for this course, and unless you have a passing grade in CS 213 or have obtained specific permission from me, you should not take Data Structures for credit.
All the class material (including but not limited to weekly content summaries, assigned problems and quizzes) will be organized on the Sakai site for the course; be sure to bookmark the site for easy reference. While I will make every effort to inform you about deadlines and so forth, you are ultimately responsible for checking the course site frequently for any content updates, discussions etc.

Introduction to Algorithms (3rd edition) by Cormen,
Leiserson, Rivest and Stein, MIT Press, 2009.
Please note that it may be possible to purchase used copies of the 3rd edition
or or earlier editions of the book; however, certain sections and chapters
differ from edition to edition. If your edition is not edition 3, then it will
be your responsibility to correlate the correct assigned work
(reading/homework) with those from the 3rd edition.
On a related note, it has unfortunately transpired that the solutions to all the problems from the textbook have been posted on the Web (if one knows where to look). You may also be able to find posted solutions to one or more assigned problems in this course. Please understand that you would have learnt nothing if you simply copy or read these answers from the Web.
A better approach would be to try and form study groups to discuss solution attempts, or to use the Sakai site's forums for exchanging ideas on problems.
Unless specified otherwise, all chapters specified below (in the advance reading) are from Edition 3 of the textbook.
| Week | Topics | Advance Reading Preparation |
|---|---|---|
| 1 | CS 171 Review: Summation; Counting | Appendix A; Appendix C.1 |
| 2 | CS 171 Review: Graphs, Trees; Recursive definitions | Appendix B |
| 3 | Asymptotic Notation | Ch. 3 |
| 4 | Simple recurrences | Ch. 2; Ch. 4.3 - 4.4 |
| 5 | Arrays, heaps and priority queues | Ch. 6 |
| 6 | Stacks, queues; Introduction to amortization | Ch. 10; Ch. 17.1-17.2 |
| 7 | Binary search trees | Ch. 12; Appendix C.2 and C.3; Ch. 5.2 |
| 8 | Midterm exam on Tuesday, March 12th; Treaps | Problem 13-4 on pages 333-337. |
| 9 | Red-black trees | Ch. 13 |
| 10 | Red-Black trees (continued) | Ch. 13 |
| 11 | B-Trees | Ch. 18 |
| 12 | Hash tables | Ch. 11.1 - 11.3 |
| 13 | Hash tables (continued) | Ch. 11.4 - 11.5 |
| 14 | Review |
Your grade will be based on your performance on the following:
I will give out practice problems each week to be solved as homework; there will be no grade assigned to your attempted solutions but the correct answers will be discussed either in class or if possible, in weekly recitation sections (details will be announced when I have a better idea of whether this can be arranged). In any case, the homework problems - along with the lecture material and readings - should be considered preparation for the quizzes and exams.
It should be clearly understood that students cannot collaborate and cannot obtain help from web sources and external individuals on quizzes and exams. I will treat all cases of plagiarism or cheating very seriously, and they will be reported to the Dean's office immediately without exception. Please make sure that you do not put yourself in that position; do take the time to read and understand the Academic Integrity Policy and Student Code of Conduct at Rutgers.