CSCI-2312: Object Oriented Programming

Undergraduate course, NORTH-1005, 2021

Programming topics in a modern programming language. Student will be introduced to an object oriented programming language. The emphasis is on problem solving using object oriented and generic programming. Topics includes classes, inheritance, polymorphism, virtual functions, abstract 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. Learn an object oriented programming language
  2. Ability to apply object oriented modeling and programming in software development
  3. Ability to apply generic programming in software development
  4. Ability to apply error handling techniques such as exception handling


  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. Review of computer programming concepts
  2. Introduction to an object oriented programming language
  3. Programming concepts and syntax in the object oriented programming language
  4. Structures
  5. Introduction to OOP
    1. The notion of objects and classes
    2. Class members (Fields and Functions)
    3. Encapsulation
    4. Constructors
    5. Overloading
  6. Concepts of OOP
    1. UML class diagrams
    2. Class relationships
      1. Association
      2. Composition
      3. Aggregation
      4. Inheritance
      5. Inner classes
    3. Polymorphism
    4. Virtual Functions
    5. Abstract classes
  7. Exception Handling
  8. Templates
  9. Introduction to Standard Template Library