CS2810: Object Oriented Algorithms, Implementation and Analysis Lab
Course information
When: Jan-May 2026
Lectures: Slot Q
Where: SSB134 and DCF
Teaching Assistants: Prashant Singh (CS24D002), Arun Prabhakar (CS23S200), Sagar Biswas (CS24M039), Ankit Kumar (CS25M012), Ayush Raj (CS25M015), Bantu Vijayendra Varma (CS25M016), Kotam Naga Surendra ReddyCS25M025), Ravijyotisna Pachauri (CS25M040), Shivam (CS25M045), Shubham Kumar (CS25M046), Aditya Jain (CS22B065), Yashvardhan Toshniwal (CS22B088), Vikash Kumar Ojha (CS22B013),
Course Content
Basics of C++ programming.
Object-oriented design: Inheritance, polymorphism, templates, exceptions, STL.
C++ implementation of data structures and algorithms
Grading
Mid-term: 20%
Final exam: 24%
Assignments: 7% each (Best 8 out of 10)
Textbooks
Michael T. Goodrich, Roberto Tamassia, and David M. Mount. Data structures and algorithms in C++. John Wiley & Sons, 2011.
Scott Meyers, Effective C++: 55 specific ways to improve your programs and designs. Pearson Education, 2005.
Additional References
Robert Lafore. Object-oriented programming in C++. Pearson Education, 1997.
Mark A. Weiss, Data structures and algorithm analysis in C++. Pearson, 2014.
Schedule
| Lecture number | Topics Covered | Section reference |
|---|---|---|
| Lecture 1 | C++ basics | Chapter 1 of [Goodrich et al.] |
| Lecture 2 | Inheritance | Section 2.2 of [Goodrich et al.] |
| Lecture 3 | Polymorphism | Section 2.2 of [Goodrich et al.] |
| Lecture 4 | Operator overloading revisited, Templates | Section 2.3, 5.1 of [Goodrich et al.] Chapter 7 of [S. Meyers] |
| Lecture 5 | Inheritance+scoping, Exceptions | Chapters 6 and 7 of [S. Meyers] Chapter 14 of [R. Lafore] |
| Lecture 6 | Friends, Static members and Streams | Chapter 12 and parts of Chapters 6,11 of [R. Lafore] |
| Lecture 7 | STL Algorithms and Sequence Containers | Chapter 15 of R. Lafore’s book Parts of S. Meyers' ‘‘Effective STL'' |
| Lecture 8 | STL: Associative Containers, Function Objects | Chapter 15 of R. Lafore’s book |
| Lecture 9 | STL applications using maps | Section 4.8 of M. Weiss’s book |
| Lecture 10 | Skip Lists and Sequences using C++ | Sections 9.4 and 6.3 of [Goodrich et al.] |
| Lecture 11 | Dynamic Programming: Matrix chain and LCS | Section 12.2 of [Goodrich et al.] |
| Lecture 12 | Applied Dynamic Programming | Chapter 1 of Bellman and Dreyfus's book |
