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
Remajor scripts can be seen between 1115am and 1130am on Monday, 6 Jan.
Instructor and TA information
|| 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)
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.
Tentative Course Schedule: :
100% attendance is expected.
<!img src="/images/spacer.gif" width="1" height="1" alt="" border="0" align="">
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
Assignments & Grading
To audit-pass the course, a minimum of C is required.
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.
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.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 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.
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,