Outline Dsa
Outline Dsa
Course Content
Week
No Topics Chapters
1 • Introduction to the course
• Elementary data structures
• Arrays
o Review of single-dimension arrays
o Concept and implementation of 2D
arrays See the chapter 3.1 in Michael T.
§ Manipulating matrices using Goodrich, Data Structures &
arrays Algorithms in Java
o Basic concepts of Multi-dimensional
arrays
• What is data structure?
o Need of data structures
o What are limitations of Arrays?
2 • Linked lists
o Arrays vs. Linked list See the chapter 3.2, 3.3, 3.4 in
• Types of linked list Michael T. Goodrich, Data
o Singly linked list Structures & Algorithms in Java
o Circular singly linked list
o Doubly linked list See the chapter 10.2 in [CLRS]
o Circular doubly linked list Thomas H. Cormen, Introduction
• Defining the Node class to Algorithms
• Linked Lists Functions
Printing linked list in reverse order using recursion
3 • Applying dictionary operations on linked lists
o Traversing a linked list Handouts
o Inserting new node
§ at the head
§ at any location
o Searching a node
o Removing a node
§ from the head
§ from anywhere
• Clearing a linked list
4 • Introduction to Queues
• The Queue data structure
• Application of queues See the chapter 6.2 in Michael T.
• Array Representation of Queue Goodrich, Data Structures &
o Algorithm for Addition of an Element to Algorithms in Java
the Queue
o Algorithm for Deletion of an Element to See the chapter 10.1 in [CLRS]
the Queue Thomas H. Cormen, Introduction
• Dynamic Representation of Queues Using to Algorithms
Linked Lists
• Circular Queue-Array Representation
5 • The FIFO structure
• Queue operations
• Extended queue operations
• Dictionary operations on queues
• The priority queues
• The LIFO structure
• Introduction to the stack data structure
See the chapter 6.1 in Michael T.
• Applications of stack
Goodrich, Data Structures &
• Stack operations Algorithms in Java
• Stack specifications
o List and arrays See the chapter 10.1 in [CLRS]
o Stacks Thomas H. Cormen, Introduction
o Reversing a list to Algorithms
• Stack implementation
o Using arrays
o Using linked list
• Methods of stack
o Push
o Pop
• Push down stack
First Mid Term Examination
7 • What is algorithm?
• Complexity of algorithm
o Time complexity
o Space complexity
• Analysis of algorithms
Handouts
• Big O Notation
o Best-case analysis
o Worst-case analysis
• Average-case analysis
• Recursion
8-9 • Trees Introduction See the chapter 8 in Michael T.
• Tree terminology Goodrich, Data Structures &
• Tree Traversal Algorithms in Java
• Concept of Binary Trees
• Why use binary trees See the chapter 10.4 and 6 in
• Basic Operations [CLRS] Thomas H. Cormen,
• Complete Binary Tree Introduction to Algorithms
• Priority Queues: Heaps
• Max-Heap
10-11 • Concept of Binary Search trees and how they See the chapter 12 in [CLRS]
work Thomas H. Cormen, Introduction
• Finding a node in a binary search tree to Algorithms
• Inserting a node
• Recursively traversing the tree in In order, See the chapter 11.1 in Michael T.
Pre and Post order Goodrich, Data Structures &
• Applications of tree traversing in sorting Algorithms in Java
Second Mid Term Examination
12-13 • Deleting a node in a Binary Tree with all
three cases
• Efficiency of Binary Trees
See the chapter 11.3 in Michael T.
• Handling duplicate nodes in BST
Goodrich, Data Structures &
• Applications of BST
Algorithms in Java
• Coding a complete message
• Balanced and unbalanced trees
• The AVL trees Overview
14-15 • Simple sorting
o Understanding why sorting is See the chapter 7 in [CLRS]
important Thomas H. Cormen, Introduction
o Bubble sort to Algorithms
o Selection sort
o Insertion sort See the chapter 12 in Michael T.
o Merge Sort Goodrich, Data Structures &
o Quicksort Algorithms in Java
o Efficiency of Quicksort
16 • Hashing See the chapter 11 in [CLRS]
• Applications of Hashing Thomas H. Cormen, Introduction
• Direct Address to Algorithms
• Chain based Scheme
• Hash Tables See the chapter 10.2 in Michael T.
Goodrich, Data Structures &
Algorithms in Java
• Graphs See the chapter in Michael T.
o Introduction Goodrich, Data Structures &
o Searches (DFS & BFS) Algorithms in Java
Text Book
1. Introduction to Algorithms by Thomas H. Cormen, 3rd edition.
2. Data Structures & Algorithms in Java by Michael T. Goodrich, 6th edition.
Reference Material
1. C++ plus Data Structures, 3rd edition, Nell Dale.
2. Think Data Structures: Algorithms and Information Retrieval in Java by Allen B. Downey
Course Learning Outcomes
Course Learning Outcomes (CLO)
Demonstrate the knowledge of linear and non-linear data structures such as array, list, queue,
1
stack, trees and graphs.
2 Implement algorithms for the efficient representation and manipulation of data.
Analyze different data structures to identify errors and predict the output.
3
CLO-SO Map
SO IDs
CLO ID GA1 GA2 GA3 GA4 GA5 GA6 GA7 GA8 GA9 GA10 GA11 GA12
CLO 1 1 0 0 0 0 0 0 0 0 0 0 0
CLO 2 0 0 1 0 0 0 0 0 0 0 0 0
CLO 3 0 1 0 0 0 0 0 0 0 0 0 0
Approvals
Prepared By Saif Hassan
Approved By Not Specified
Last Update 15/9/2020