|
COL106: Data Structures and Algorithms
General Information
Semester: Sem II, 2021-22.
Instructors: Amit Kumar (email: amitk AT cse.iitd.ac.in) and Parag Singla (email: parags AT cse.iitd.ac.in)
Class Timings (Slot F):
- Tue, 11:00 am - 12:00 noon
- Thu, 11:00 am - 12:00 noon
- Fri, 11:00 am - 12:00 noon
- Sat, if required (time to be announced)
Venue: Online (MS Teams)
Section A: Click Here
Section B: Click Here
Sign up for Piazza
Code: As announced in class/over email
Announcements
[Mar 24, 2022]: Assignment 4 is out. Due Date: Friday Apr 15th, 11:59 pm.
[Mar 8, 2022]: Assignment 3 is out. Due Date: Tuesday Mar 22nd, 11:59 pm.
[Feb 6, 2022]: Assignment 2 is out. Due Date: Sunday Feb 27th, 11:59 pm.
[Jan 23, 2022]: Assignment 1 is out. Due Date: Sunday Feb 6th, 11:59 pm.
Course Objectives
- To learn the fundamentals of basic data strcutures
- To argue formally about correctness and efficiency of various data structures
- To learn various algorithms supporing operations on data structures
- Get hands on experience working with basic data structures in a Programming Language (JAVA)
Course Content (Week-wise)
Week |
Topic |
Slides |
Book Chapters |
1.1 | Introduction | Introduction |
|
1.2,1.3,2.1 | Aysmptotic Complexity |
Asymptotic Analysis |
|
2.2,2.3 | Linked Lists |
Linked Lists |
|
3.1,3.2 | ADT, Stacks |
ADT, Stacks |
|
3.3,4.1 | Queues |
Queues |
|
4.2,4.3 | Trees (Introduction) |
Trees |
|
5.1,5.2,5.3 | Binary Search Trees (BSTs) |
Binary Search Trees |
|
6.1,6.2,6.3 | AVL Trees |
AVL Trees |
|
7.1,7.2,7.3,8.1 | 2-4 Trees, B-Trees |
2-4 Trees, B-Trees |
|
8.2 | Tries |
Tries |
|
8.3,9.1 | Heaps |
Heaps |
|
9.2,9.3,10.1 | Hashing |
Hashing |
|
10.2,10.3,11.1 | Sorting |
Sorting |
|
11.2,11.3,12.1,12.2,12.3 | Graphs |
Graphs [updated April 7, 2022] |
|
References
-
Data Structures and Algorithms in Java, 6th Edition. Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser. 2014. Publisher: John Wiley and Sons, Inc.
International Student Version of the book (available at a cheaper price).
Assignment Submission Instructions
- You are free to discuss the assignment problems with other students in the class. But all your code should be
produced independently without looking at/referring to anyone else's code or discussion notes.
JAVA is the default programming languages for the course. You should use it for programming your
assignments.
- Code should be submitted using Moodle Page.
Make sure to include comments for readability. Specific submission instructions will be released for each assignment on Piazza.
- Honor Code: Any cases of copying will be awarded a zero on the assignment and a
penalty of -10. More severe penalties may follow.
- Late Policy: You will get a penalty of 10% deduction in marks (per day) for every late day in submission upto a maximum
of 3 days, after which you will get a zero on the assignment.
Practice Questions
Assignments
- Assignment 4. Vocabulary File
Due Date: Friday April 15th, 2022, 11:59 pm
- Assignment 3
Due Date: Tuesday Mar 22nd, 2022, 11:59 pm
- Assignment 2
Due Date: Sunday Feb 27th, 2022, 11:59 pm
- Assignment 1
Due Date: Sunday Feb 6th, 2022, 11:59 pm
Grading Policy (Tentative)
Assignment 0/Attedance in lab | 2% |
Assignments [1 - 4] | 25% (about equal weightage for each) |
Quizzes (4) | 8% |
Minor | 25% |
Major | 40% |
|