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
- Introduction of the course – Four Lectures
- Review of Computer Programming Concepts
 
 - Basic data structures – Four Lectures
- Multi-dimensional Arrays
 - Structures
 - Unions
 - User-defined Data Types
 
 - Pointers & Typecasting – Six Lectures
- Pointers, Reference Pointers
 - Array of Pointers vs. Pointer of Arrays
 - Typecasting
 - Memory Allocation (Static vs. Dynamic)
 
 - 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
 
 - Advanced Data Structures – Six Lectures
- Array Lists
 - Linked Lists
 - Vectors
 - Stacks
 - Queues
 - Trees
 
 - Algorithms – Five Lectures
- Recursion
 - Searching
- Linear
 - Binary
 - Depth-First
 - Breadth-First
 
 - Sorting
- Insertion & Selection
 - Bubble & Merge
 - Heap & Radix
 
 - Hashing
 - Big O Notation
 - Trees Traversal
 
 
