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

COL 106: Data Structures
(Sem II, 2015-2016)
Tue, Thu, Fri at 11:00-11:50 in LH316


News & Announcements


Online Resources


Instructor and TA information

Professors: Subodh Kumar
E-mail: s u b o d h @ c s e (.iitd.ac.in)
Office:IIA 422
Office hours:Mon 11-12, Wed 11-12, or by appointment (send mail)
Teaching Assistants:

Who is my TA?

    Name Email Location
Harshvardhan Das <anz158223> Mon 3-5 301 SIT bldg
Akshay Jain <mcs142116> Fri 2-4 DHD lab, 4th floor Bharti bldg
Srishty Patel <mcs142143> Tue 3-5 307 SIT bldg
Arjun Singh <mcs142121> Mon 3-5 MTech Lab, 3rd floor, SIT bldg
Pratibha Wagholikar<mcs142129> Thu 2-4 307 SIT bldg
Arun Shankar <mcs152331> Fri 3-5 GCL, 4th floor, Bharti bldg
Harshit Patel <mcs152338> Tue 430-630 MTech Lab (308), 3rd floor, SIT bldg
Aditi Bhateja <anz158221> Thu 230-430 301 SIT bldg


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: COL 100

Tentative Course Schedule: :


Attendance Policy

100% attendance is required, except prior leave for legitimate reasons. For leave, please email col106mail(AT)iitd.ac.in withthe subject Absent:dd/mm/yyyy. Email on the day of the lecture will be accepted, but no later. You must use your IITD email for course communications.

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
Assignment 1 5 Due Jan 21, 11pm. Jan 22
Assignment 2 6 Due Feb 07, 11pm. Feb 9
Assignment 3 6 Due Mar 1, 11pm. Mar 7
Assignment 4 6 Due Mar 15, 11pm. Mar 17
Assignment 5 7 Due Apr 7, 11pm Apr 10
Assignment 6 10 May 3May 4. 11pm.
Participation 3 Through the semester
Minors 14 + 14 TBA
Final Exam 29 TBA
To audit-pass the course, a minimum of C is required.

Late policy: You are allowed up to 75 hours of 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 it is elementary that you should hoard them for real emergencies. After you have used up your hours, late submissions beyond this will not be graded. Part-hour counts as an hour.

Submission Requirements: Assignment submissions will be electronic. You will submit a single ziped file (encoded in b64 format) -- 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 submission files (entrynumber_assignment1, entrynumber_assignment2, etc.). All input and output files must stay in the same directory. The script will extract files, compile them and run them on test cases. Make sure your code works on linux with java 1.7 (you should test it in one of the CSC/LHC labs, as announced.) 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 upto 25% of marks.


Textbook

Goodrich, M. and Tamassia, R. Data Structures and Algorithms in Java , 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)