OOP & Data Structures (CSEE1133)

Pre-requisite(s)

Computer Programming (CS-1123)

Recommended Book(s)

Data Structures Using C++ By D. S. Malik
Object-Oriented Programming In C++ By Robert Lafore

Reference Book(s)

Data Structures Using C And C++ By Yedidyah Langsam, Moshe J.
Augenstein, And Aaron M. Tenenbaum
Object Oriented Data Structures Using C++ By K S Easwarakumar
Data Structures And Algorithm Analysis In C++ By Mark Allen Weiss

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
Basic data structures
  • · Multi-dimensional Arrays
  • · Structures
  • · Unions
Pointers & Typecasting
  • · Typecasting
  • · Memory Allocation (Static vs. Dynamic)
  • · Array of Pointers vs. Pointer of Arrays
  • · User-defined Data Types
Object-Oriented Programming in C++
  • · Classes and Objects
  • · Pointers, Reference Pointers
  • · Operator and Method Overloading
  • · Function and Class templates
  • · Method Overriding
  • · Virtual Functions
Introduction of Advanced Data Structures
  • · Array Lists
  • · Linked Lists
  • · Vectors
  • · Stacks
  • · Queues
  • · Trees
Algorithms
    • Recursion
    • Searching

_ Linear

_ Binary

_ Depth-First

_ Breadth-First

    • Sorting

_ Insertion

_ Selection

_ Bubble

_ Merge

_ Heap

_ Radix

    • Hashing
    • Big O Notation
    • Tress Traversal

Mapping of CLOs to Program Learning Outcomes

CLOs/PLOs

CLO:1

CLO:2

CLO:3

PLO:1 (Engineering Knowledge)

 

 

 

PLO:2 (Problem Analysis)

 

 

 

PLO:3 (Design and Development of Solutions)

 

 

PLO:4 (Investigation)

 

 

 

PLO:5 (Modern Tool Usage)

 

 

 

PLO:6 (The Engineer and Society)

 

 

 

PLO:7 (Environment and Sustainability)

 

 

 

PLO:8 (Ethics)

 

 

 

PLO:9 (Individual and Team Work)

 

 

 

PLO:10 (Communication)

 

 

 

PLO:11 (Project Management)

 

 

 

PLO:12 (Life Long Learning)