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
Instructor and TA information
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: :
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
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
To audit-pass the course, a minimum of C is required.
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.
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.
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,