Data Structures (CS 213)

Semester: Spring 2013
Instructor: Dr. Sunil Shende

Lecture Schedule

TTh 3:00-4:20pm in BSB 335

Office Hours/Contact Information

TWTh 10:00-11:00am, or by confirmed appointment
Office: BSB 308
Email: shende AT camden DOT rutgers DOT edu


Description

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.


Required Textbook

Cover image

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.


Tentative Syllabus/Schedule of Topics

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

Grading Policy

Your grade will be based on your performance on the following:

  1. Best 10 out of 12 online quizzes: 50%
  2. In-class, midterm exam: 20%
  3. In-class, final exam: 25%
  4. Programming project: 5%

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.