CS2810: Object Oriented Algorithms, Implementation and Analysis Lab

Course information

  • When: Jan-May 2022

  • Lectures: Slot P

  • Where: Online

  • Teaching Assistants: Harshit Kedia (cs17b103), Chuttar Ajay Sanjaylal (cs21m015), Jayesh Harishchandra Mahajan (cs21m023), Nitin Vikas Bahekar (cs21m039), Yashasvi Mahajan (cs21m076), Omkar Dilip Dhawal (cs21s042), Siddharth Dwivedi (cs20m065), Aswanth Kumar M (cs21m010), Shreyas Jain (cs20m063)

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