COURSE OBJECTIVES
Main objective of this course is to enable students to understand and implement common data structures and algorithms to manipulate those data structures using C++ techniques. Emphasis will be on a lot of practice in writing codes to implement all the major data structures.
COURSE LEARNING OUTCOMES (CLO)
CLO: 1. Understand the design of fundamental data structures as well as algorithms that operate on them. (C2-Understanding)
CLO: 2. Get rigorous hands-on experience on implementing different data structures in a programming language. (C3-Applying)
CLO: 3. Summarize data structures according to their typical uses, strengths, and weaknesses for designing optimized computer-based systems. (C4-Analyzing)
COURSE CONTENTS
- Introduction to the course and course objectives
- Linear data structures
- Arrays
- Stack, Queues
- Implementation using arrays
- Implementation using Linked List
- Non Linear Data Structures
- Recursion: Introduction
- Trees by using linked lists
- Binary trees, Binary Search Trees
- BSTs Recursive and Iterative Traversals
- AVL trees
- Graphs by adjacency lists and matrices
- Heaps
- Some searching and sorting algorithms
- Project Presentations