Certified Professional Diploma in Data Structure
Covers the design, analysis, and implementation of data structures and algorithms to solve engineering problems using an object‐oriented programming language. Topics include elementary data structures,(including arrays, stacks, queues, and lists), advanced data structures (including trees and graphs), the algorithms used to manipulate these structures, and their application to solving practical engineering problems.
- Based on satisfactory completion of the course, a student should be able to:
- Formulate and apply object‐oriented programming, using C++, as a modern tool to solve engineering problems.
- Demonstrate an understanding of basic data structures (such as an array‐based list, linked list, stack, queue, binary search tree) and algorithms.
- ⦁ Demonstrate the ability to analyze, design, apply and use data structures and algorithms to solve engineering problems and evaluate their solutions.
- ⦁ Demonstrate an understanding of the analysis of algorithms. Study an algorithm or program code segment that contains iterative constructs and analyze the asymptotic time complexity of the algorithm or code segment.
Data Types. Abstraction. Data abstraction and Abstract Data Types (ADTs). Review C++ classes
Friend functions. Operator overloading. Exception handling. Memory allocation and deallocation. bad_alloc exception.
Encapsulation. Inheritance. Polymorphism. Virtual functions.
Templates. Function and class templates. Programming using class and function templates. Standard Template Library (STL). Components of STL
Basic data structures. Arrays. Static arrays and Dynamic arrays. Explore how a generic Vector container is used to manipulate data
List ADT. Implementation using arrays (static and dynamic). Basic operations on a List
Linked-List. Singly linked-lists. Implementation using pointers. Basic Operations
Stacks and Queues. The behavior of a Stack. Basic operations on a Stack. Array-based stacks. Linked-list-based implementation. Expression evaluation using a stack. Queues. The behavior of a queue. Basic queue operations Study implementations using an array and a linked list.
Tree data structure. Binary and non-binary trees. Structure of a binary tree. Definitions and properties. Traversing a binary tree. Study binary tree implementation
Binary Search Tree (BST). Organizing data in a BST. Inserting and deleting items in a BST. Traversing a BST. Non- binary (General) tree. General tree traversal
Algorithm analysis. What to analyze. Analysis techniques. The efficiency of algorithms. Comparing the efficiency of various algorithms
Searching and Hashing algorithms. Search algorithms – Sequential Search, Ordered lists, binary search. Searching using Hashing. Hash tables. Hash functions. Some examples of hash functions. Collision resolution.
Sorting algorithms. Sorting an array of elements. Study various algorithms and their efficiency