Minhaj University, Lahore
Faculty of Computer Science & Information Technology
School of Computer Science
Course Outline
Course Course Title Data Structures and Algorithm
Information Course Code Comp202 Course Type Computing Core
Credit hours 4(3+1) Hours per week (C-L) 3-0
Program(s) BS-CS Preferred Semester 3rd
Date Version 2nd
Offered Course Program(s) BSCS/ADP Semester Session Fall 2024
Information Instructor(s) Shoaib Saleem TA / Lab Engineer Hassan Saeed
QCH Telephone No. / Ext.
Email Class Hours 3 hours a week
Office / Room No. CS Faculty Office Office Hours
The course introduces the theory of complexity and abstract data structures as basic building blocks to structure
Course problem objects for efficient solutions. The course prepares the students to pick and combine the right data structure
Description for a given problem. The students are prepared to interpret a data structure and associated algorithms to distinguish
their space and time requirements.
The objective of this course is to enable students;
No. Objective Relation with
POs
CO1. Understand the fundamental concepts and principles of data structures and algorithms, and 1
analyze the efficiency and performance. Implement and apply various data structures, such
Course
as arrays, linked lists, stacks, queues, hash tables, trees, and graphs.
Objectives
CO2. Design efficient algorithms for common computational problems. Apply sorting and 2
(CO)
searching techniques to efficiently process and retrieve data.
Solve algorithmic problems and develop problem-solving skills.
CO3. Utilize data structures and algorithms to optimize code and improve software performance. 3
Understand the trade-offs between different data structures and algorithms in terms of time
and space complexity.
CO4. Analyse and solve real-world problems using appropriate data structures and algorithms. 4
Develop skills in algorithm design, analysis, and optimization.
At the end of this course, students will be able to;
Relation
No. Outcome BT Level
with GAs
C3(Cognitive
Implement various data structures and their algorithms and apply them in
CLO-1 2 Apply)
implementing simple applications
Course
C5(Cognitive
Learning
CLO-2 Analyze simple algorithms and determine their complexities. 2 Analyse)
Outcomes
(CLO)
C3(Cognitive
CLO-3 Apply the knowledge of data structure to other application domains. 3 Apply)
C6(Cognitive
CLO-4 Design new data structures and algorithms to solve problems 4 Design)
Prerequisites Programming Fundamental
Follow up Design and Analysis of Algorithms
Textbook Title Edition Authors Publisher Year ISBN
• Data Structures 4/E ISBN-13: 978-0-13-
and Algorithms n Adam Drozdek NA 2014 284737-7
C++
Reference • Introduction to 3/E T. H., Cormen., L. MIT press 2009 978-0-262-04630-5
Books Algorithms E., Charles, R. L.,
Ronald, and S.
Clifford,
1
• Data Structures 4/E Mark Allen Weiss Pearson 2014 ISBN-13: 978-0-13-
and Algorithm 284737-7
Analysis in C++
Case Study/ • Analysis and Research of Zhi-Gang Zhu Purpose LED 2020 10.1088/1742-
Research Paper Sorting Algorithm in Data Publishing 6596/1544/1/012002
Structure Based on C
Language
Software and • Students will perform Lab Work using different IDEs.
Tools • Semester Project will be given.
Assessment Assessment Weight Attained CLO Assessment Weight Attained CLO
Criteria Assignment 10% CLO-1,2,3,4 Quiz 5% CLO-2,3,4
(Theory Lab (1 Credit 100% CLO-3,4 Project / Presentation 5% CLO-4
100%/Lab Hours)
100%) Attendance 5% - Participation
Mid Term 25% CLO-1,2 Final 50% CLO-3,4
Methods of Quizzes, Assignments, Mid/Final Exam, Lab, Project
Evaluation
Notes Will be provided in Class
Week Topic Lectu Lecture Contents Relation Class Tasks | Resources
No. re No. with Activity
CLO
− Introduction to course on Data Chap 1, Pg# 1-6
Introduction Structures and Algorithms Introduce
(Book: Data highlighting its importance in yourself and
Structures and computer science the course
Algorithms n L1. 1
− Introduction Data Structures and its outline and
C++) types, Abstract data types assessment
W1. − Revision (Encapsulation and criteria
Inheritance)
− Pointers and self-referential Lecture,
L2. structures. 2 Practice Chap 1, Pg# 9-20
− Introduction to Arrays & its types. Questions
Complexity − Computational and Asymptotic Lecture, Dry
Analysis Complexity Run
(Book: Data L3. − Big-O Notation, Ω and Θ 2 Examples Chap 1, Pg# 51-59
Structures and Notations
W2. Algorithm in
C++)
− The Best, Average, and Worst Lecture, Chap 1, Pg#61-63
L4. Cases 2 Dry Run
− NP-Completeness Examples Chap 1, Pg# 68-70
Stack and − Introduction Stack (LIFO) and Lecture,
Queues Data Stack Operations Dry Run
Chap 4, Pg#131-138
structure L5. − Stack Implementation using arrays 3 Examples
(Book: Data − Dry Run Examples
Structures and Assignment 1
W3. Algorithm in − Evaluation of Arithmetic Lecture Notes
C++) Expressions in prefixes, postfix
L6. notations using stack. 3 Lecture
− Quiz 1
Stack and − Introduction to Queue and Queue
Queues Data Operations Chap 4, Pg# 142-144,
Lecture,
structure Lecture Notes
Practice
(Book: Data L7. − Implementation of Queue using 2
W4. Questions
Structures and stack and array Chap 4, Pg# 139-147
Algorithm in
C++)
L8. − Types of Queues: Circular Queue 2 Lecture Notes
2
Stack and − Guest Speaker Guest Speaker
Queues Data L9. -
Lecture
structure
(Book: Data − Types of Queues: Priority Queue
W5. Structures and Lecture, Dry Chap 4, Pg# 148-152
Algorithms n Run
L10. 2
C++) Examples
Assignment 2
Introduction − Quiz II
to Searching L11. 3 Lecture Lecture Notes
W6. − Introduction to Searching Lecture, Dry
− Linear Search Run
L12. 3
− Linear Search for sorted and Examples Lecture Notes
unsorted arrays
Introduction − Binary Search Lecture, Dry
to Searching − Binary Search for sorted arrays Run
L13. 3
Examples Lecture Notes
W7.
− Binary Search for unsorted arrays Lecture, Dry
− Revision and Queries Run
L14. 3
Examples Lecture Notes
Mid Term L15.
W8.
Exam L16. Mid-Term Exam Week
Linked List − Introduction to Link list and its
(Book: Data Chap 3, Pg# 75-89
operations.
Structures and L17. − Types of Link List 4 Lecture
Algorithm in Chap 3, Pg# 75-94
− Sorting of Link List Lecture Notes
C++)
W9.
− Types of Link List: Circular Link
List Lecture, Dry Chap 3, Pg# 94-95
L18. − Types of Link List: Doubly Link 4 Run
List Examples Chap 3, Pg# 90-93
Sorting − Introduction to Sorting Algorithms Lecture, Dry
(Book: Data − Selection Sort and Insertion Sort Run Chap 9, Pg#492-497
L19. 4
Structures and Examples
Algorithm in Assignment 3
W10. C++) − Bubble Sort and Bucket Sort
− Radix Sort and Shell Sort Lecture, Dry
Chap 9, Pg# 497-500
L20. − Heap Sort 4 Run
Chap 9, Pg# 505-526
Examples
Sorting − Divide and Conquer: Quick Sort Chap 9, Pg# 512-518
(Book: Data and Merge Sort Lecture, Dry Pg# 518-521
Structures and L21. 4 Run
Algorithm in Examples
W11. C++)
− QUIZ III
L22. − Introduction to trees, balancing 4 Lecture Chap 6, Pg#214
trees
Introduction − AVL trees. Chap 6, Pg#256-259
of Balanced L23. − Tree Traversal: Inorder, Preorder 3,4 Lecture Chap 6, Pg#224
binary trees and Postorder Lecture Notes
(Book: Data − Binary Search Trees.
W12.
Structures and − Minimum Spanning Trees
Algorithm in Chap 6, Pg#219-222
L24. 3,4 Lecture
C++) Chap 8, Pg#411-414
Binary Trees − Breadth First Search
Chap 6, Pg# 225-226
− Depth First Search
Graphs L25. 3,4 Lecture
W13. − Introduction to Graphs: Basic Chap 8, Pg# 393-395
Operations.
Hashing L26. − Hashing: Hash Table, Hash 3,4 Lecture Lecture Notes
3
(Book: Data Functions Chap 10, Pg# 549-551
Structures and − QUIZ IV
Algorithm in
C++)
Hashing − Collision, techniques to avoid or
(Book: Data resolve collisions, String hashing Lecture
Structures and L27. concepts. 3,4 Assignment Chap 10, Pg# 551-559
Algorithm in − Indexing Open Address and IV
W14. C++) chaining
− Guest Speaker Guest
L28. 3,4 Speaker -
Lecture
Shortest Paths − Topological Sort
Chap 8, Pg#421
− Shortest Path
Chap 8, Pg# 398-405
L29. − Adjacency Matrix and Adjacency 3,4 Lecture
Lecture Notes
List Implementation
− Case Study/ Research Paper
Memory − Memory Management: The
W15.
Management Sequential-Fit Methods and The
(Book: Data Non Sequential-Fit Methods Chap 12, Pg# 626-627
Structures and L30. − Garbage Collection 3,4 Lecture Chap 12, Pg# 636-653
Algorithm in
C++)
L31.
W16. Final Term
Exam L32. Final Term Papers