This page will be updated regularly. Please visit (and reload) often. You are responsible for all information on this page.

CSL 201: Data Structures
(Sem I, 2010-2011)
Mon, Thu at 09:30-10:50 in IV LT 3 and IIA-301


News & Announcements


Online Resources


Instructor and TA information

Professors: Subodh Kumar Ragesh Jaiswal
E-mail: s u b o d h @ c s e (append .iitd.ac.in)
r j a i s w a l @ c s e (append .iitd.ac.in)
Office:IIA 422 IIA 515
Office hours:Mon 11-12, Thu 11-12, or by appointment (send mail) Mon 11-12, Thu 11-12, or by appointment (send mail)
Teaching Assistants:

What is my group?

Rooms are in Block IIA.
Group
Name
< Email >
Time and Place
Grp 1 Ankit <mcs092106@cse> Mo 12-1,Th3-4 (IIA 408)
Grp 2 Jivitesh <cs5060215@cse> Mo,Th 4-5 IIA-509
Grp 3 Ashwani <mcs093178@cse> Tu,Th 11-12, IIA-411
Grp 4 Rudramohan<tripathy@cse> Tu,Fr 6-7 IIA-522
Grp 5 Rejoy <rejoy@cse> Tu 3-4, Fr 2-3 IIA-509


Syllabus

Introduction to object-oriented programming and abstract data types. Stacks, Queues, Linked lists, Skip-lists; Dictionaries, hashing and analysis of collision resolution techniques. Trees, traversals, binary search trees. Balanced BST, Tries, Priority queues and binary heaps. Sorting: merge, quick, radix, selection and heap sort. Graphs: Breadth first search and connected components. Depth first search in directed and undirected graphs.

The language used will be JAVA. JAVA is expected and will not be covered in class.
Prerequisites: CSL101/CSL102.

Tentative Course Schedule: :


Attendance Policy

100% attendance is required. There will be in-class quizzes during most lectures. You must take all quizzes. Three of these will count towards your final grade.

Academic Integrity Code

Academic honesty is required in all your work. You must solve all programming assignments entirely on your own, except where group work is explicitly authorised. This means you must not take, neither show, give or otherwise allow others to take your program code, problem solutions, or other work.

This means you must protect your code from access by others. Do not leave it where others can find it. Do not give it to someone for submission on your behalf. Do no use any fragment of code obtained online or from someone else, except what is explicitly authorised as a part of the course. When authorised, any non-original code that you do use must be clearly identified with due reference to the source. Falsifying program output or results is cheating also.

Please see your professor if there are any questions about what is permissible.

Students who are caught cheating will be given a 0 and a letter grade penalty. In addition, a letter to their parents may be sent reporting the incident. Second violation will result in summary failure from the course. Be aware that code analysis tools will be used on every assignment to detect cases of cheating.


Assignments & Grading

Work Points Schedule
Quizes 9 Regularly in class
Assignment 1 7 Due Aug 17, 11pm.
Assignment 2 7 Due Sep 2, 11pm.
Assignment 3 7 Due Sep 23 28, 11pm.
Assignment 4 7 Due Oct 29, 11pm.
Assignment 5 7 Due Nov 15, 11pm.
Minors 14 + 14 TBA
Final Exam 28 TBA
To audit-pass the course, a minimum of C is required.

Late policy: You get 5 days of free late submission during the course of this semester, or during the semester for this course, to be precise. You can use them as you wish, but I recommend you hoard them for emergency. After the five days, the next five days of delay you get 2 points/day (or part of day) deducted from your course total, so you stand to lose up to 10 points on 100. Any assignment submitted after you have exausted your 10 days will not be graded and will earn you 0.

Submission Requirements: Assignment submissions will be electronic. You will submit a single zip file -- built from assignment directory. You must include a file called README in your directory, listing what you implemented, if it compiles, and which tests work. Other than that the directory should contain all your .java files and a makefile and nothing else. Appropriately name your directories 1, 2, etc. All input and output files must stay in the same directory. The script to extract files, compile them and run them on test cases. Make sure it works on linux with java 1.6 (you could test it on one of the computer center machines or one of the CSE general computing lab machines). If the script fails to run your code, you will get a 0. If your test results do not match the description in the README file, you will lose upto 50% of your marks you obtain in that assignment. If you do not follow the design given in the assignment, you will lose 25% of your marks.


Textbook

Goodrich, M. and Tamassia, R. Data Structures and Algorithms in Java 3ed, John Wiley and Sons, Inc.

Other books on JAVA:
Java in a nutshell by Flannagan, (O'Reilly)
Introduction to Programming using java by Arnow & Weiss, (Addison-Wesley)