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 I, 2019-2020)
Tue, Thu, Fri at 11:00-11:50 in LH121
Lab in LHC504, 1-5pm


News & Announcements

  • Shortlisted good category videos // Uploaded 14 Nov 2019
    Disclaimer: All the submitted videos will be graded and marks will be given from 0.1 to 0.5 based on poor , average and good categories. // Updated 15 Nov 2019

  • PROGRAMMING TEST on NOV 9 2019.
  • Assignment 6
  • Minor 2 question paper Set A Set B
  • Online Resources

    Supplementary Material

  • Video for Credit(PDF)

  • 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:Tue, Wed 1215-115, or by appointment (send mail)
    Teaching Assistants:



        Name Email
    Sanjana Singh <csz168122>
    Soumen Basu <csz198406>
    Sandeep Kumar <anz178353>
    Prashant Agrawal<csz188011>
    Sahil Manchanda <csz188551>
    Ankur Sharma <cs5150278>
    Prayas Sahni <mcs182839>
    Chirag Manwani <mcs182018>
    Ruturaj Mohanty <mcs182012>
    Sanjana Singh <mcs152331>
    Siddhant Arora <cs5150480>
    Anant Sushil Gulgulia <mcs192558>
    Chinmay Shirish Degwekar <mcs192560>
    Het Shaileshkumar Patel <mcs192562>
    Kartik Jain <mcs192563>
    Deepanshu Jindal <cs1160312>
    Rajas Bansal <cs1160385>
    Ankita Gupta <mcs192559>
    Disha Vijay Kathin <mcs192561>
    Vikas Upadhyay <vikas.upadhyay>
    Please add cse.iitd.ac.in after the email id

    Mentor TA List.


    Syllabus

    Introduction to object-oriented programming through stacks queues and linked lists. Dictionaries; skip-lists, hashing, analysis of collision resolution techniques. Trees, traversals, binary search trees, optimal and average BSTs. Balanced BST: AVL Trees, 2-4 trees, red-black trees, B-trees. Tries and suffix trees. 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. Disjkra's algorithm, directed acyclic graphs and topological sort. Some geometric data-structures.

    The language used will be Java. It is expected that you will learn it on your own and will not be covered in any detail class.
    Prerequisites: COL100

    Tentative Course Schedule: :


    Attendance Policy

    100% attendance is expected.

    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.

    You are responsible for protecting your design and code against 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.) Falsifying program output or results is cheating also. If your submission matches code in our database or another submission, you will be penalized as described below.

    Students who are caught cheating in an assignment will be given -10 marks in that assignment. Cheating during exams earns -50 marks. A second violation earns an F. Be aware that code analysis tools will be used on every assignment to detect cases of cheating.

    Please see your professor if you have any questions about what is permissible.


    Assignments & Grading

    Work Points Schedule
    Assignment 1 4 Due Aug 5 Due Aug 9
    Assignment 2 4 Due Aug 19
    Assignment 3 5 Due Sep 11
    Assignment 4 5 Due Oct 2
    Assignment 5 5 Due Oct 16
    Assignment 6 7 Due Nov 9
    Participation 10 Through the semester
    Minors 11 + 11 TBA
    Lab test 15 TBA
    Final Exam 23 TBA
    To audit-pass the course, a minimum of C is required.

    Late policy: You are allowed up to 24 hours of late submission for each assignment, with a penalty of 1 mark. Submissions later than that will not be graded.

    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, describing the implementation of each function and its status (whether it compiles, which tests work, what work remains). 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.8 (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 50% of your marks obtained in that assignment. If you do not follow the design given in the assignment, you will lose 25% of the marks obtained.


    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)