Instructor: Balasubramanian Raman
Office: S-227, CSE Building
Class Meeting Time: Mondays, Tuesdays and Thursdays (5-6 pm). Class Room: Gargi Block 102
Office Hours: Wednesdays, Fridays 11:00 a.m. - 1:00 p.m. and by appointment
TAs: Dr. Pradeep Singh (pradeep.cs at sric) (Post Doc), Anshul Pundhir (anshul_p at cs), Deepak Kumar (d_kumar at cs)(PhD students), Priyal Jain and Piyush Dhamdhere (M.Tech students)
Email: first four letters of first name at cs dot ac dot in
Announcements
February 12, 2024: Surprise Quiz held.
January 17, 2024: Practical classes have begun.
January 04, 2024: Classes have begun.
Course Objectives, Learning Outcomes and Prerequisites
To understand the basic concepts of data structures, including arrays, linked lists, stacks, queues, trees, graphs, and hash tables.
To Analyze the time and space complexity of different data structures and operations.
To Choose the appropriate data structure for a given problem or application.
To Implement basic data structures in a chosen programming language (e.g., C++).
Course Outcomes:
After completing the course you will be able to:
explain and differentiate between various data structures like arrays, linked lists, stacks, queues, trees, graphs, and hash tables.
calculate the time and space complexity of operations like insertion, deletion, and searching for different data structures, allowing you to choose the optimal structure for specific tasks.
recognize how certain algorithms rely on specific data structures for efficient operation and be able to analyze the impact of the chosen structure on the algorithm's performance.
understand how data structures are used in various domains like operating systems, database systems, compilers, computer graphics, artificial intelligence, and more.
Prerequisites: Programming Language.
Evaluation Components
Term tests/quizzes (10%)
Assignments (15%)
Class participation (5%)
Mid-Term Examination (30%)
End Term Examination (40%)
Note: Assignments may require strong programming skills. You can choose C++.
The following will be used as a reference/text book for this course:
1. Sahni, S., "Data Structures, Algorithms, and Applications in C++", WCB/McGraw-Hill. (Latest Edition)
2. Michael T. Goodrich, Roberto Tamassia, David M. Mount, "Data Structures and Algorithms in C++", Wiley, Latest edition.
3. Wirth, N., "Algorithms and Data Structures", Prentice-Hall of India, 2017.
4. Drozdek, A., "Data Structures and Algorithms in C++", Vikas Publishing House.
5. Cormen T, Leiserson C, Rivest R, and Stein C., "Introduction to Algorithms", MIT Press, 2009.