Course Information
Lectures (L5): Wed-4:45 PM, Thu-2:00 PM, Fri 2:55 PM
Labs (Computer Lab 2): Fri 9:00 AM - 12:35 PM
Objectives
Revision of notions of time and space complexity, and trade-offs in the design of data structures. 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. Balanced BSTs, tries, priority queues and binary heaps. Object oriented implementation and building libraries. Applications to discrete event simulation. Sorting: merge, quick, radix, selection and heap sort, Graphs: Breadth first search and connected components. Depth first search in directed and undirected graphs. Union-find data structure and applications. Directed acyclic graphs; topological sort.Outcomes
By taking this course, the students will be able to find answer to the following questions:Prerequisite
GEL103: Introduction to ComputingCourse Requirements
Student are required to attend three lectures per week lectures and appear in two exams. In addition, there will be weekly lab sessions. During lab sessions, the students are required to solve and implement programming assignments.Grading Policy
There will be approximately 6-7 lab exercises, 3-4 home assignments, 6-7 quizzes, a mid-semester exam and a final exam. The tentative grade distribution is as follows:Quizzes (top n-1): 20%
Lab exercises (top n-1): 15%
Assignments: 15%
Mid-semester exam: 25%
Final exam: 25%
A student must score at least 40% marks to pass the course.
Attendance Requirement
There is no attendence requirement; however, students with more than 75% attendance would get a bonus mark. During lectures :Code of Ethics & Professional Responsibility
It is expected that students who are taking this course will demonstrate a keen interest in learning and not mere fulfilling the requirement towards their degree. Discussions that help the student understand a concept or a problem is encouraged. However, each student must turn in original work. Plagiarism/copying of any form, will be dealt with strict disciplinary action. This involves, copying from the internet, textbooks and any other material for which you do not own the copyright. Copying part of the code will be considered plagiarism. Lending the code to others will be considered plagiarism too, for it is difficult to investigate who copied whose code. Students who violate this policy will directly receive a failing grade in the course. Remember - Your partial submission can fetch you some points, but submitting other's work as your own can result in you failing the course. Please talk to the instructor if you have questions about this policy. All academic integrity issues will be handled in accordance with institute regulations.Textbooks
Primary Textbook
Data Structures and Algorithms in C++, 2nd Edition by Michael T. Goodrich, Roberto Tamassia, David M. Mount, 2011 [Link]Reference Books
- Introduction to algorithms: Cormen, Thomas H. MIT press, 2009. [Link].
- Fundamentals of Data Structures in C++: Ellis Horowitz, Sartaj Sahni, Dinesh P. Mehta. Silicon press, 2008. [Link].
- Algorithms in C++ : Fundamentals, Data Structures, Sorting, Searching, Parts 1-4 (English) 3rd Edition: Robert Sedgewick, 1998. [Link].
Language/Tools
C++Teaching Assistant
Amit Kumar Verma (Email: 2016csz0003@iitrpr.ac.in) Rohit Chaudhary (Email: 2017csm1011@iitrpr.ac.in) Pratibha Kumari (Email: 2017csz0006@iitrpr.ac.in)Contact Me
By appointment atRoom No. 358, Academic Building, IIT Ropar
Feedback Form
Lectures and Calendar
Tentative Schedule and List of Topics*
Week | Dates |
Topic/Slides | Readings | Quiz/Lab |
---|---|---|---|---|
1 | Aug7-Aug11 |
Introduction, OOP1 , OOP2 , Arrays and Linked Lists | Chapter 3 | L1 |
2 | Aug14-Aug18 |
Recursion, Analysis Tools 1, Analysis Tools 2 | Chapter 4 and 5 | Q1 |
3 | Aug21-Aug25 |
No classes this week | Assignment1 (Due 10th Sep) | |
4 | Aug28-Sep1 |
Stacks, Queues , Positions, Itertators | Chapter 6, 7.3, 7.4 | L2 |
5 | Sep4-Sep8 |
Tree Structures, Binary Trees | Chapter 8 | Q2 |
6 | Sep11-Sep15 |
Heaps and Priority Queues | Chapter 9, 10 (10.1-10.3) | L3 |
7 | Sep18-Sep22 |
MAPS, Hash Tables and Review Problems | Q3, A2 | |
8 | Sep25-Sep29 |
Dictionary, Ordered Maps | L4 | |
9 | Oct3-Oct9 |
Exam week | ||
10 | Oct11-Oct14 |
AVL Trees, 2-4 Multiway Trees | Chapter 11 (11.1-11.3) | L5 |
11 | Oct16-Oct20 |
Buffer week | ||
12 | Oct23-Oct27 |
Red-Black Trees | Chapter 11(11.3-11.6) | Q4 |
13 | Oct30-Nov4 |
Sorting | Chapter 12.1-12.3 | L6 |
14 | Nov6-Nov10 |
Strings, Dynamic Programming | Chapter 12.5, Chapter 13 (13.1-13.4) | Q5 |
15 | Nov13-Nov17 |
Graphs1 | Chapter 14 (14.1-14.3) | L7 |
16 | Nov20-Nov24 |
Graphs2 | Chapter 14(14.4-14.6) | Q6, A4 |
*This is a tentative list of topics that will be covered during the semester. The topics and schedule can change according to the need at the discretion of the instructor.