COURSE OBJECTIVES

The course is designed to make students learn about the fundamental concepts of object-oriented programming and data structures. The course covers a number of basic and advanced data structure concepts including arrays, structures, linked lists, vectors, stacks, queues, trees. Advanced data structures will be taught using Object-Oriented class templates available for data structures. The students of this course will also learn about designing, managing, and analyzing small to moderate data structures. In addition, using C++ language, a variety of basic concepts of object-oriented programming is also covered.

COURSE LEARNING OUTCOMES (CLO)

CLO: 1. Describe and identify fundamental concepts of object-oriented programming, and basic and advanced data structures (Level: C2)
CLO: 2. Explain, interpret, compare and apply algorithms and principles of object-oriented programming and advanced data structures to a particular situation (Level: C3)
CLO: 3. Design, implement and debug small-to-moderate programs to manipulate and manage data elements while exhibiting the object-oriented programming skills (Level: C5)

COURSE CONTENTS

  1. Introduction of the course – Four Lectures
    • Review of Computer Programming Concepts
  2. Basic data structures – Four Lectures
    • Multi-dimensional Arrays
    • Structures
    • Unions
    • User-defined Data Types
  3. Pointers & Typecasting – Six Lectures
    • Pointers, Reference Pointers
    • Array of Pointers vs. Pointer of Arrays
    • Typecasting
    • Memory Allocation (Static vs. Dynamic)
  4. Object-Oriented Programming in C++ – Seven Lectures
    • Classes and Objects
    • Class Member Functions, Constructors/Destructors
    • Operator and Function Overloading
    • Function and Class templates
    • Inheritance and Method Overriding
    • Polymorphism and Virtual Functions
  5. Advanced Data Structures – Six Lectures
    • Array Lists
    • Linked Lists
    • Vectors
    • Stacks
    • Queues
    • Trees
  6. Algorithms – Five Lectures
    • Recursion
    • Searching
      • Linear
      • Binary
      • Depth-First
      • Breadth-First
    • Sorting
      • Insertion & Selection
      • Bubble & Merge
      • Heap & Radix
    • Hashing
    • Big O Notation
    • Trees Traversal