Data Structure and Algorithms
Data Structure and Algorithms
Course Title & Course Code Data Structures & Algorithms / COSC-2101
Credit Hours 03
Pre-Requisite(s), if any OOP
Department / Institute Data Science & AI
Faculty Information Technology
Program/semester/section BS-Artificial Intelligence
Week 1
Course Learning 1. Apply the knowledge of data structure to other application
Outcome (CLO) domains.
Contents / Sub Data Structures Introduction
Contents • Introduction
• ADTs
• Types of data structures
• Data structure operations
• OOP concepts
Arrays, Functions and Pointers
• Array creation and implementation
• Array passing to function
• Function creation and implementation
• Pointers basic concepts
Week 2
Course Learning 1. Apply the knowledge of data structure to other application domains.
Outcome (CLO) 2. Analyze simple algorithms and determine their
complexities.
Contents / Sub Complexity Analysis
Contents • Asymptotic notations
• Types of complexities (Best, Average, Worst cases)
• Big Oh
• Complexity analysis of code snippets
• Algorithm comparison
Week 3
Course Learning 1. Implement various data structures and their algorithms and apply them in
Outcome (CLO) implementing simple applications
2. Apply the knowledge of data structure to other application
domains.
3. Analyze simple algorithms and determine their
4. complexities.
Contents / Sub Searching & Sorting in Arrays
Contents • Linear search
• Binary search
• Selection sort
• Insertion sort
• Bubble sort
• Quick sort
• Merge sort
• Comparison using asymptotic notations
Week 4
Course Learning 1. Implement various data structures and their algorithms and apply them in
Outcome (CLO) implementing simple applications
2. Analyze simple algorithms and determine their
complexities.
3. Design new data structures and algorithms to solve
problems.
Contents / Sub Linked Lists
Contents • Introduction
• Types of Linked Lists (Singly, Doubly, Circular)
• Algorithms (Searching, sorting, insertion, deletion)
• Comparison
Week 5
Course Learning 1. Implement various data structures and their algorithms and apply them in
Outcome (CLO) implementing simple applications
2. Apply the knowledge of data structure to other application
domains.
Contents / Sub Stacks
Contents • Basics of Stack data structure
• Algorithms (Push, Pop, Peek)
• Implementation using Arrays
• Implementation using Linked Lists
• Expression parsing using Stacks (infix, prefix, postfix)
Week 6
Course Learning 1. Implement various data structures and their algorithms and apply them in
Outcome (CLO) implementing simple applications
2. Apply the knowledge of data structure to other application
domains.
3. Design new data structures and algorithms to solve
4. problems.
Contents / Sub Queues
Contents • Basics of Queues
• Types of Queues (Circular buffer, Double ended, Priority)
• Algorithm of Queues (Search, Sort, Enqueue, Dequeue)
• Queue implementation using Arrays
• Queue implementation using Linked Lists
Week 7
Course Learning 1. Implement various data structures and their algorithms and apply them in
Outcome (CLO) implementing simple applications
2. Apply the knowledge of data structure to other application
domains.
Contents / Sub Hashing
Contents • Basics of Hashing
• Components of Hashing
• Hash functions
• Problems with hashing (Collision)
• Load factor
• Applications of hashing
Week 8
Course Learning 1. Implement various data structures and their algorithms and apply them in
Outcome (CLO) implementing simple applications
2. Apply the knowledge of data structure to other application domains.
Contents / Sub Revision of syllabus for Mid exam, Quiz
Contents
Week 9
Course Learning 1. Implement various data structures and their algorithms and apply them in
Outcome (CLO) implementing simple applications
2. Apply the knowledge of data structure to other application domains.
Contents / Sub Recursion
Contents • Introduction
• Properties
• Implementation
• Analysis of recursion
• Time complexity
• Space complexity
• Fibonacci series
• Tower of Hanoi problem
Week 10
Course Learning 1. Implement various data structures and their algorithms and apply them in
Outcome (CLO) implementing simple applications
2. Apply the knowledge of data structure to other application domains.
Contents / Sub Tree Data Structure
Contents • Basics of Tree data structure
• Types of Trees
• Propertise of trees
• Tree terminology
• Basic Algorithms
• Application of Trees
Week 11
Course Learning 1. Implement various data structures and their algorithms and apply them in
Outcome (CLO) implementing simple applications
2. Apply the knowledge of data structure to other application domains.
Contents / Sub Tree Traversal
Contents • Introduction
• Types
• Inorder
• Preorder
• Postorder
• Algorithm & Implementation
Week 12
Course Learning 1. Implement various data structures and their algorithms and apply them in
Outcome (CLO) implementing simple applications
2. Apply the knowledge of data structure to other application domains.
Contents / Sub Binary Search Trees
Contents • Basics
• Representation
• Implementation & Algorithms
• Traversals in BSTs
• Applications of BSTs
• Expression Trees
Week 13
Course Learning 1. Implement various data structures and their algorithms and apply them in
Outcome (CLO) implementing simple applications
2. Apply the knowledge of data structure to other application domains.
3. Analyze simple algorithms and determine their complexities.
Contents / Sub Tree Balancing
Contents • AVL trees
• Red Black trees
• Algorithm & implementation
• Complexity analysis
Week 14
Course Learning 1. Implement various data structures and their algorithms and apply them in
Outcome (CLO) implementing simple applications
2. Apply the knowledge of data structure to other application domains.
3. Analyze simple algorithms and determine their complexities.
Contents / Sub Heap
Contents • Basics
• Min Heap
• Max Heap
• Algorithms & Implementations
• Complexity analysis
Week 15
Course Learning 1. Implement various data structures and their algorithms and apply them in
Outcome (CLO) implementing simple applications
2. Apply the knowledge of data structure to other application domains.
3. Analyze simple algorithms and determine their complexities.
Contents / Sub Graphs
Contents • Basics
• Graph Terminology
• Adjacency matrix
•
Graph traversals/searches
•
Breadth first search
•
Depth first search
•
Shortest path first
•
Topological Order
•
Algorithms & implementation
•
Complexity analysis
Week 16
Course Learning 1. Implement various data structures and their algorithms and apply them in
Outcome (CLO) implementing simple applications
Contents / Sub Revision and Final Discussion about the course
Contents
Curriculum Contents: Abstract data types, complexity analysis, Big Oh notation, Stacks (linked lists and
array implementations), Recursion and analyzing recursive algorithms, divide and conquer algorithms, Sorting
algorithms (selection, insertion, merge, quick, bubble, heap, shell, radix, bucket), stacks, expression parsing
using stacks, queue, dequeue, priority queues (linked and array implementations of queues), linked list & its
various types, sorted linked list, searching an unsorted array, binary search for sorted arrays, hashing and
indexing, open addressing and chaining, trees and tree traversals, expression trees, binary search trees, heaps,
M-way tress, balanced trees (AVL, Red Black), graphs, breadth-first and depth-first traversal, topological
order, shortest path, adjacency matrix and adjacency list implementations.