Fall 2023, DSA Outline
Fall 2023, DSA Outline
NCEAC
NCEAC.FORM.
COURSE OUTLINE
INSTITUTION University of Management & Technology, Lahore
PROGRAM (S) TO BE BS Computer Science
EVALUATED
Course Description:
Course Code CC2042
Course Title Data Structures and Algorithms
Credit Hours 3+1
Prerequisites by Data Structures & Algorithms
Course(s) and
Topics
Assessment Class Participation 5%
Instruments with Quizzes 10%
Weights Assignments 10%
(homework,
Project 10%
quizzes, midterms,
final, programming Mid Term 25%
assignments, lab Final Term 40%
work, etc.)
Course Moderator Dr Umer Suleman
URL (if any)
Textbook (or
Laboratory Manual 1. Book Name: Data Structures Using C++, 2nd Edition By Author :D. S. Malik,
for Laboratory 2010.
Courses) 2. Book Name : Data Structures and Algorithms in C++, 2nd Edition By
Author: Micheal T. Goodrich, Roberto Tamassia and David MountJohn
Wiley and Sons, Inc, 2011.
3. Book Name: Algorithms, 4th Edition by Author: Robert Sedgewick, Kevin
Wayne, 2011
Course Upon successful completion of the course, a student should be able to:
Goals/Objectives
Understand the design of fundamental data structures as well as algorithms that
operate on them.
Analysis of Wide Range of Data Structures Available
Comparison of Data Structures Based on their Analysis
Implementing new Data Structures for the real time & industrial needs.
1
National Computing Education Accreditation Council
NCEAC
NCEAC.FORM.
in a programming language
Domain & BT
CLOs Description
Level *
Implement various data structures and their
CLO 1 algorithms and apply them in implementing C 2, 3
simple applications.
Analyze simple algorithms and determine their
CLO 2
complexities.
C 4, 5
Apply the knowledge of data structures to
CLO 3
other application domains.
C3
Design new data structures and algorithms to
CLO 4
solve problems.
C6
* BT= Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A= Affective domain
PLO 7: Communication
2
National Computing Education Accreditation Council
NCEAC
NCEAC.FORM.
PLO 9: Ethics
Evaluation
Date Duration Topics Covered Instruments CLOs
used
Introduction of Data Structures and Algorithm, Course
1 Evaluation Scheme, Evaluation Instruments for DSA 1
(with justification), OOP Concepts,
Memory Organization, Pointers, Pointer Arithmetic, Void
Pointer, Pointer to a pointer, Dangling Pointers, Dynamic
2 1
Memory Allocation, Memory Allocation/De-allocation,
Memory Leakage
Basics, Efficiency of an algorithm, Time Complexity vs.
Space Complexity, Calculating Time Complexity (Linear
3 1
Statements, Conditional Statements, Loop Structures),
Examples & Exercises
Arrays, Static Array, Dynamic Arrays, Array Memory
concepts, 1D, 2D and multidimensional arrays, Array
4 Quiz 1 1
Storage into Memory, Row-First Order vs. Column-First
Order in arrays
Pros and Cons, Array Initialization, Array Operations
(Traversal, Insertion, Deletion, Updating, Searching),
5 2
Array Bounds (C++), Character Arrays, Array Name and
Pointer
Linear Search vs. Binary Search, Sorting Algorithms
6 2
(Slow Sorts), Complexity Analysis.
7 Recursive Array Sorting (Merge Sort / Quick Sort) 1
Linked Lists Introduction, List Operations (Traversal,
8 Insertion, Deletion), Node and Node Pointers, List ADT, Assignment 1 1
List Implementation (Single List)
Double Linked List Operations, DList ADT, DList
9 2
Implementation, discussion
Quiz 2
10 2
Other Variants of Lists, Circular Lists, Double Circular
Lists, Custom Operations on the Lists
11 1
Stack, Basics, Its Usage, Stack ADT, Stack Operations,
12 Implementation of Stack (Array), Stacks & Function Assignment 2
Calls
List based Implementation of Stack, Applications of
13 2
Stacks
14 Queue, Introduction, Operations, ADT, Implementation Quiz 3 1
15 of Queue with variations (Circular Queue, Priority 2
3
National Computing Education Accreditation Council
NCEAC
NCEAC.FORM.
Queue), Applications of Queues,
16 Mid Term Exam
Introduction to Trees Concepts & Terminologies, Binary
Trees, Expression Trees, Binary Search Trees, BST
17 -
Property, BST Operations (Traversal, Insertion, 2
18
Searching), BST Storage into an Array, Locating (Parent
of a node, Direct children of a node)
BST Implementation (Pointers Based), Tree Population 2
19 - (Inserting Nodes into a BST), Tree Traversals (Infix,
20 Prefix, Postfix, Level-order), Deleting / Updating BST Assignment 03 3
Nodes, Discussions
Balanced Binary Trees, Purpose, AVL Tree, Balancing
21 Quiz 03 3
Factor and Rotations
Heap, Max Heap, Min Heap, Operations (Insertion,
22 2
Deletion, Searching, Traversal), Heap Applications
Hashing, Hash Functions, Collision Resolution
23 Assignment 04 3
Techniques (Chaining, Open Addressing, Re Hashing)
24 Revisiting Recursive Algorithms, Analyzing Recursive 3
Algorithms (Master Method, Substitution Method,
25 3
Recursion Tree)
Arithmetic Expressions, Infix to Postfix Conversion,
26 Quiz 04 2
Evaluating Postfix, Infix to Prefix Conversion
Graph, Graph Data Structure, Graph Applications,
27 Terminologies, Presenting a Graph (Adjacency Matrix, Assignment 05 2
Adjacency List)
Graph Traversals (Breadth First Traversal, Depth First
28 2
Traversal)
Minimum Spanning Trees, Topological Sort Example of
29 Quiz 05 3
Kruskal Algorithm And their Algorithmic Analysis
30 Graph and Shortest Path Problems 3
31 Revision 3
32 Final Term Exam
Laboratory Assignments
Projects/Experiments Done
in the Course
Programming Assignments 2-4 programming assignment
Done in the Course
Class Time Spent on (in 3 hours per week
credit hours)
Oral and Written
Communications
4
National Computing Education Accreditation Council
NCEAC
NCEAC.FORM.
2
3