COL 106: Data-structures and Algorithms
Instructors :
Amit Kumar ([email protected]) Parag Singla ([email protected])
Logistics
Course web-page:
www.cse.iitd.ac.in/~parags/teaching/col106
Slot F. Timings: Tue/Thu/Fri/Sat (Buffer day) 11-12
Two Sections (separate channel for each section)
Section A: Taught by Amit. Groups 1 – 4
Section B: Taught by Parag: Groups 5 – 8
Subscribe on Piazza: code col106
Link to be made available on the course website
For various announcements
Helpful discussions
Teaching assistants details on website
Logistics
Teaching assistants:
TAs will help resolving any problems regarding the course :
coding, understanding a particular concept, assignments, etc.
Two TAs for a group of about 50 students Practice sessions: ~once in a week
Labs
Lab Sessions on Microsoft Teams
Monday Session I: Groups _________
Monday Session II: Groups _________
Tuesday Session I: Groups _________
Tuesday Session II: Groups _________
Thursday Session I: Groups _________
Thursday Session II: Groups _________
Thursday Session I: Groups _________
Friday Session I: Groups _________
Friday Session II: Groups _________
First Week: Complete Java lab!
Monday session will happen on Saturday
Evaluation components
Assignments : 25+2% (~4 + 1 Java lab)
Quizzes (announced): 8%
Minor Exam: 25%
Major exam : 40%
Audit criteria: (At least 40% overall AND 30% in Exams/Quizzes AND 30% in Assignments) OR (Equivalent of C grade or more)
Any min/max Audit Criteria as per Senate rules will supersede
Programming Assignments
4 programming assignments
Must be done alone
late policy (penalty of 10% every day)
up to three days late
Grading and Academic Integrity
Academic Integrity
Cheating negative penalty (and possibly more)
Exception: if one person/team is identified as cheater
Non-cheater gets a zero
Collaboration is good!!! Cheating is bad!!!
Who is a cheater?
No sharing of part-code
No written/soft copy notes
What is this course about ?
What is this course about ?
Data-structures : How to organize data
Algorithms: How to support various operations?
Example case: English dictionary
What will I learn?
What will I learn?
How to think/argue formally about a data- structure
How to implement various data-structures and operations over them
Complexity of various operations
Comparing two data structures: What data-structure to use in what scenario?
Topics
Arrays, Lists
Abstract Data Types, Object Oriented concepts Stacks, Queues, Heaps
Trees : Binary trees, Balanced trees, B-trees Strings : Tries, Matching algorithms
Sorting, Hashing Graphs