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