0% found this document useful (0 votes)
163 views

Data Structure and Algorithms (CS-443) : University Institute of Information Technology

This document provides information on the course "Data Structure and Algorithms (CS-443)" including: 1) The course aims to teach students how to write efficient programs by learning data structures like linked lists, stacks, queues, trees and graphs. 2) Students will implement various data structures and analyze algorithms to determine their complexities. 3) The course contents include data types, sorting algorithms, stacks, queues, linked lists, trees, graphs and complexity analysis.

Uploaded by

Hahsadasd
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
163 views

Data Structure and Algorithms (CS-443) : University Institute of Information Technology

This document provides information on the course "Data Structure and Algorithms (CS-443)" including: 1) The course aims to teach students how to write efficient programs by learning data structures like linked lists, stacks, queues, trees and graphs. 2) Students will implement various data structures and analyze algorithms to determine their complexities. 3) The course contents include data types, sorting algorithms, stacks, queues, linked lists, trees, graphs and complexity analysis.

Uploaded by

Hahsadasd
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

PIR MEHR ALI SHAH ARID AGRICULTURE UNIVERSITY

University Institute of Information Technology

Data Structure and Algorithms (CS-443)


Credit Hours: 4(3-2) Prerequisites: Programming Fundamentals
(CS-323)
Teacher: Saqib Majeed
Course Learning Outcomes (CLOs)
At the end of course the students will be able to: Domain BT Level*
1. Implement various data structures and their algorithms, C 2,3
and apply them in implementing simple applications.
2. Analyze simple algorithms and determine their C 4,5
complexities.
3. Apply the knowledge of data structures to other C 3
application domains.
4. Design new data structures and algorithms to solve C 6
problems.
*BT- Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A=Affective
domain

Course 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), queue, dequeuer, 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, binary search trees, heaps, M-way tress, balanced trees,
graphs, breadth-first and depth-first traversal, topological order, shortest path,
adjacency matrix and adjacency list implementations, memory management and
garbage collection.
Course Objective:
This course aims at teaching the students to write programs that not only are correct but
also computation and space efficient and optimized for the intended use through
appropriate structuring/organization of the related data. Students will learn the standard
data structures such as linked lists, stacks, queues, trees, and graphs and the
algorithms that manipulate them. Students will also be introduced to the concept of
algorithm complexity analysis in order to make them realize the cost of the operations
they perform on their data structures.
Teaching Methodology:
Lectures, Written Assignments, Practical labs, Semester Project, Presentations

Courses Assessment:
Mid Exam, Home Assignments, Quizzes, Project, Presentations, Final Exam

Reference Materials:
1. Data Structures by Gillberg Forouzan (Fourth Edition), Latest Edition
2. Data Structures and Algorithms in C++ by Adam Drozdek , 4th edition, 2012
3. Data Structures and Algorithm Analysis in C++ by Mark Allen Weiss, 4th edition,
2013.
4. Data Structures Using C and C++, Thomas Y. Langsam, M. J. Augenstein, A. M.
Tenenbaum, Prentice-Hall.
5. Data Structures and Algorithms in C++ by Michael T. Goodrich 2nd Edition, 2011.
6. Introduction to Algorithms, Thomas H. Cormen et al, MIT Press, 3rd edition, 2009.

Week/Lecture # Theory Practical


Abstract Data Types:
 Introduction to Data Structures-
Need and Significance
Lecture-I
 Review of the Pre-requisite
Knowledge
 Abstract Data type
Abstract Data Types:
Week 1  Abstraction
 Concrete and Abstract Data Types
Lecture-II
 Class invariants and pre-and post
conditions
 Structures
 Fundamental OO Design and
Practical Implementation Practice

Complexity Analysis:
 Complexity Analysis
Lecture-I
 Time and Space Complexity
 Big Oh notation
Searching Algorithms:
 Arrays (basic and Object types)
 Algorithms on arrays.
Week 2 Lecture-II  Recursion and analyzing recursive
algorithms,
 Linear Search
 Binary Search
 Implementation and
Comparison of searching
Practical
algorithm
Sorting Algorithms:
 Selection Sort
Lecture-I
 Bubble Sort
 Insertion Sort
Sorting Algorithms:
Week 3  Divide and conquer algorithms
Lecture-II
 Merge Sort
 Quick Sort
 Implementation and
Comparison of sorting
Practical
algorithm

Stack Array Implementation:


Lecture-I  Stack: Basic/primitive functions
 Stack supporting functions
Stack Array Implementation:
 Stack Applications – Arithmetic
Expression,
Lecture-II  Infix, post-fix and pre-fix
Week 4 notations,
 In-to post transformation and
post-fix evaluation using algorithm
 Implementation of Static
Stack.
Practical  Infix to Post fix Conversion
and Evaluation

Stack Array Implementation:


 Parenthesis validation in
Lecture-I
mathematical expression using
stack.
Week 5 Stack Array Implementation:
Lecture-II  Multiple brackets validation using
stack.
 Parenthesis matching
Practical
validation implementation
Queue Array Implementation:
Lecture-I  Queue: Basic/primitive functions
 Queue supporting functions
Queue Array Implementation:
Week 6 Lecture-II  Circular queue
 Priority queue
 Implementation of queue
Practical operations, SJF
Queue Array Implementation:
 Double ended queue
 Deiqueue
Lecture-I
 Deoqueue
 Queue Applications – OS process
and Message queues
Link List:
Week 7
 Introduction of Link List
 Creating Different types of Link
Lecture-II
List
 Linked List – Operations and
Representations
 Linklist implementation using
Practical
primitive functions.
Stack Link List Implementation:
 Dynamic Implementation of Stack
Lecture-I
 Recursion using Linklist
 Linklist operations on Stack
Stack Link List Implementation:
Week 8 Lecture-II  Sorted linked list
 Searching an unsorted linklist,
 Stack Link list
implementation using
Practical
primitive and supporting
functions..
Midterm Exam
Queue Linklist Implementation:
Lecture-I  Linklist implementation of queue
 Linklist based Circular queue
Queue Linklist Implementation:
Lecture-II  Linklist base Variations: deQueue,
priority Queue.
 Project Allocation
Week 9  Dynamic Queue
Implementation,
 Circular queue
Practical implementation,
 Priority queue
implementation

Week 10 Lecture-I Queue Linklist Implementation:


 Linklist base Variations: doubly
linklist.
Hashing:
Lecture-II  Hashing and indexing,
 Open addressing and chaining
 Implementation of doubly
Practical
linklist
Trees and Traversals:
 Introduction and terminology,
 Binary trees and types,
Lecture-I  Tree traversals
 Binary Tree representation, basic
operations
Week 11
Binary Search Tree:
 Binary Search trees and
Lecture-II Representation and operations
 M-Way tree

 Tree implementation
Practical
 BST implementation
Balanced Tree and Heaps:
 AVL tree
Lecture-I  Heap (max and min)
 Heaps and Associated Algorithms

Week 12 Huffman Codes:


Lecture-II  Huffman Algorithm

 Max Heap implementation


Practical  Heap Sort

Graphs:
 Terminology, operations and
Lecture-I representation
 Graph traversals and searching
algorithms (BFS-DFS)
Graphs:
Week 13
Lecture-II  Weighted Graphs
 Dijkstra’s Algorithms
 Graph implementation using
Adjacency List and search
Practical
algorithms
 DFS and BFS implementation
Week 14 Lecture-I Shortest Path:
 Topological order
 Shortest path
Shortest Path:
Lecture-II  Adjacency matrix
 Adjacency list implementations
 Implementation of shortest
Practical
path algorithm.
Shortest Path:
 Warshal Floyd’s Algorithm
Lecture-I
 Unweighted graph
 Weighted graph
Week 15 Memory management:
Lecture-II  Memory Management
 Garbage collection.
 Implementation of Warshal
Practical
Floyd’s algorithm
Project Demos:
Lecture-I  GroupWise Project Demos and
Presentations
Final Course Revision:
Week 16 Lecture-II
 Revision of programming
Practical exercises

Final term Exam

You might also like