CSCI-2312: Object Oriented Programming

Undergraduate course, PLAZA-112, 2017

Programming topics in the C++ language. The emphasis is on problem solving using object oriented and Generic Programming. Topics include advanced I/O, classes, inheritance, polymorphism and virtual functions, abstract base classes, exception handling, templates, and the Standard Template Library.

Course objectives

By the end of the course you are expected to gain the following skills:

  1. Ability to apply object oriented modeling and programming in software development
  2. Ability to apply generic programming in software development
  3. Ability to apply error handling techniques such as exception handling
  4. Ability to use C++ language for all of the above


  1. ENGL 1020 : Core composition I with grade of C- or higher,
  2. CSCI 1410 : Fundamentals of Computing with grade of C- or higher,
  3. CSCI 1411 : Fundamentals of Computing lab with grade of C- or higher.

Topics covered

  1. Introductions; Review: C++ basics, Control Flow, Procedural Abstraction - functions
  2. Review: Parameters, overloading, references, arrays
  3. Structures and Classes
  4. Constructors
  5. Operator Overloading
  6. Friend Functions and Automatic Type conversion
  7. Software Architecture/Design; Patterns; UML Overview
  8. Inheritance
  9. Polymorphism
  10. Exception handling
  11. Pointers
  12. Mock Industry Interview session
  13. Linked Lists
  14. Copy Constructors and deconstructors
  15. Templates and inheritance
  16. Debugging and troubleshooting
  17. Debugging and troubleshooting
  18. Binary File I/O
  19. JAVA Swing / Python
  20. Putting it all Together - The bigger picture