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 |