CSC211 Data Structures and Algorithms
CSC211 Data Structures and Algorithms
Data Structures and Algorithms Spring 2022
COMSATS University Islamabad
COURSE DESCRIPTION FILE
CSC211 Data Structures and Algorithms
DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING
COMSATS University Islamabad
COURSE DESCRIPTION FILE
CSC211 Data Structures and Algorithms
DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING
Algorithms and Data Structures
Course code:
CSC211 (3+1)
Prerequisites:
CSC103: Programming Fundamentals
Course Catalog Description:
This course provides an introduction to the design and analysis of fundamental data structures and
algorithms. The topics cover: Introduction to design patterns; Basic algorithms analysis; Fundamental data
structures ‐ implementation strategies for stacks, queues and linked lists; Recursion; Implementation
strategies for tree and graph algorithms; Hash tables; Applications of data structures (e.g. data
compression and memory management). A special emphasis is placed on programming and hands‐on
experience, meant to reinforce the theoretical aspects covered in lectures.
Textbooks:
1. Aaron M. Tenenbaum, “Data Structures Using C and C++”, Pearson Education, 2nd Edition
2. Dharmender Sing Kushwaha, Arun Kumar Misra, “Data Structures a Programming Approach with C”,
PHI.
Reference Books:
1. Robert Sedgewick, Kevin Wayne, “Algorithms”, Addison‐Wesley, 4th Edition
2. Thomas H. Cormen “Introduction to Algorithms”, The MIT Press, 2nd Edition
3. Reema Thareja, “Data Structures using C”, Oxford University Press, 2nd Edition
Course Learning Objectives:
The purpose of this course is to provide the students with solid foundations in the basic concepts of data
structures and algorithms. The main objective of the course is to teach the students how to select and
design data structures and algorithms that are appropriate for problems that they might encounter. This
course is about abstract data types, their associated algorithms and studying their computational
complexities. Moreover, this course offers the students a mixture of theoretical knowledge and practical
experience.
Course Learning Outcomes:
1. Ability to describe different types of data structures and algorithms and their applications. (C2‐PLO1)
2. Develop computer programs to implement different types of data structures (such as arrays, lists,
stack, queues, trees, and graphs) and their associated algorithms. (C3‐PLO2)
3. Analyze algorithms such as sorting, searching, recursion, divide‐conquer, hashing techniques etc. (C4‐
PLO2)
4. Write programs that use data structures (arrays, strings, linked lists, stacks, queues, graphs and hash
tables etc) and algorithms. (A3‐PLO5)
Course Schedule:
3 credit hours lecture 2 equal sessions / week
One laboratory session/week (3 hours/session)
Topics Covered:
Body of knowledge identify by No of
Topics (Book’s chapter title or
Unit IEEE/ACM Guide line (Page 34, teaching
topics
Appendix A) hours
Introduction, why do we need Data
1 AL/Basic Analysis 1.5
Structures.
Linked Lists
2 F/Data Structures Doubly Linked List, Circular List, Linked Lists 4.5
Vs. Arrays, Assignment 1
Stacks, its implementation
Stack Applications (Parsing, Arithmetic 3
3 expression evaluation), Infix to pre‐fix and
post‐fix conversion, Expression Evaluation
F/Data Structures from Post‐fix
Queues: its implementation, Quiz 1
4
Queue Applications: Circular Queue, 3
Priority Queue
Recursion
5 PF/Recursion 3
Implementing Recursion
Introduction to Algorithm Analysis, Big‐O
Notation.
6
AL/Fundamental Algorithms Bubble, Selection and Insertion sort. 3
Merge sort, Quick sort
Introduction to Trees, the basic concepts
Tree Traversals, Traversing Binary Trees
7 PF/Data Structures (Level order, Pre order, Post order and In 4.5
order) Searching, inserting and deletion in
and balancing of Binary Search Trees
Heaps Assignment 2
9 PF/Data Structures 3
Heaps Contd.
Introduction to Graphs, Quiz 3
Graph Implementations Assignment 3
10 PF/Data Structures 3
Graph Traversals: Breadth First Search
and Depth First Search
Dijkstra’s Shortest Path First Algorithm,
10 PF/Data Structures 4.5
Minimum Spanning Trees
Hashing, Hashing Key Value Concept,
Mapping functions, Handling the Collisions
chaining, overflow areas, re‐hashing, using
11 PF/Data Structures neighboring slots (linear 3
probing),quadratic probing, random
probing
Hashing Contd., Quiz 4
12 PF/Data Structures Huffman Coding, Assignment 4 3
13 Revision 1.5
Terminal Examination 12
Total no. of Hours 42+3=45
Assessment Plan:
Theory Quizzes (4) 15%
Homework assignments 10%
Mid‐term exam (in class, 60‐80 minutes) 25%
Terminal exam (3 hours) 50%
Total (theory) 100%
Lab work Lab reports (12) 25%
Lab Mid‐term exam 25%
Lab project and terminal exam 50%
Total (lab) 100%
Final marks Theory marks * 0.75 + Lab marks * 0.25
Learning Outcomes Assessment Plan (Tentative):
Sr. # Course Learning Outcomes Assessment
1. Quiz 1
2. Quiz 2
3. Quiz 3
4. Quiz 4
5. Assignment 1
6. Assignment 2
7. Assignment 3
8. Assignment 4
9. Mid‐term Exam
10. Terminal Exam
Table 1: Assessment Plan for Course Learning Outcomes
Laboratory Experiences:
Estimated Lab
Sr. # Lab Title
Hours
1. Introduction, Recap of the previous programming concepts 3
2. Singly Linked List Implementation 3
3. Doubly Linked Lists and Circular Linked Lists Implementation 3
4. Stack Implementation with Applications 3
5. Queue Implementation with applications 3
6. Sessional 1
7. Implementation of recursion 3
8. Sorting Implementation 3
9. Quick and Merge Sort Implementation 3
10. Binary search tree implementation 3
11. Sessional II
12. AVL trees implementation 3
13. Binary Heaps Implementation 3
14. Implementation of graphs 3
15. Hashing Implementation 3
16. Huffman Coding Implementation 3
Computer Resources:
For the purposes of this course, the software such as GNU C Compiler and IDE are installed in the
laboratory that is used for implementation of data structures and algorithms.
Mapping Course Learning Outcomes (CLOs) to Program Learning Outcomes (PLOs):
PLO 1 Engineering Knowledge: An ability to apply knowledge of mathematics, science,
engineering fundamentals and an engineering specialization to the solution of complex
engineering problems.
PLO 2 Problem Analysis: An ability to identify, formulate, research literature, and analyze
complex engineering problems reaching substantiated conclusions using first principles
of mathematics, natural sciences and engineering sciences.
PLO 5 Modern Tool Usage: An ability to create, select and apply appropriate techniques,
resources, and modern engineering and IT tools, including prediction and modeling, to
complex engineering activities, with an understanding of the limitations.
PLOs
PLO10
PLO11
PL012
PLO 9
PLO1
PLO2
PLO3
PLO4
PLO5
PLO6
PLO7
PLO8
CLOs
CLO1 C2
CLO2 C3
CLO3 C4
CLO4 A3
Table 2: Mapping CLOs to PLOs
Version Applicable From
Version 1 Fall 2019