CSC112 Algorithms and Data Structures
CSC112 Algorithms and Data Structures
Algorithms and Data Structures Spring 2022
COMSATS University Islamabad
COURSE DESCRIPTION FILE
CSC112 Algorithms and Data Structures
DEPARTMENT OF ELECTRICAL & COMPUTER ENGINEERING
COMSATS University Islamabad
COURSE DESCRIPTION FILE
CSC112 Algorithms and Data Structures
DEPARTMENT OF ELECTRICAL & COMPUTER ENGINEERING
Algorithms and Data Structures
Course code:
CSC112 (3+1)
Prerequisites:
CSC141: Introduction to Computer Programming
Co requisites:
CSC 241: Object Oriented Programming
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. Nell Dale, “C++ Plus Data Structures”, Jones & Bartlett Learning, 4th Edition
2. Alfred V Aho, John E Hopcroft and Jeffery D Ullman, “Data Structures and Algorithms”, Pearson
Education. (Available in Pearson Publisher’s catalog)
Reference Books:
1. A Practical Introduction to Data Structures and Algorithm Analysis Clifford A. Shaffer Third Edition
2. Robert Lafore, “Sam’s Teach Yourself Data Structures and Algorithms in 24 Hours”, Sams Techmedia
3. Seymour Lipschutz and G A Vijayalakshmi Pai, “Data Structures”, Tata Mc Grew Hills
4. Samiran Chattopadhyay, Debabrata Ghosh Dastidar and Matagini Chattopadhyay, “Data Structures
through C Language”, BPB Publication
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. Upon completion of the course, students will discuss the use of primitive data types and built‐in data
structure. (C1‐PLO1)
2. Employ different types of data structures such as arrays, lists, stack, queues, trees, and graphs. (C2‐
PLO1)
3. Analyze sorting, searching, recursion, divide‐conquer, hashing techniques in C++/ Java language. (C4‐
PLO2)
4. Write programs that use each of the following data structures: arrays, strings, linked lists, stacks,
queues, and hash tables. (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 Structures, Introduction to Algorithm 1.5
Analysis, Big‐O Notation
Linked Lists
3 F/Data Structures Doubly Linked List, Circular List, Linked Lists 4.5
Vs. Arrays, Assignment 1
Stacks, its implementation
Stack Applications (Parsing, Arithmetic 3
4 expression evaluation), Infix to pre‐fix and
post‐fix conversion, Expression Evaluation
F/Data Structures from Post‐fix
Queues: its implementation, Quiz 1
5
Queue Applications: Circular Queue, 3
Priority Queue
Recursion
6 PF/Recursion 3
Implementing Recursion
AL/Fundamental Algorithms Bubble, Selection and Insertion sort
2
3
Merge sort, Quick sort
Introduction to Trees, the basic concepts
7 PF/Data Structures Tree Traversals, Traversing Binary Trees 4.5
(Level order, Pre order, Post order and In
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. Linked List Implementation 3
3. Stack Implementation with Applications 3
4. Queue Implementation with applications 3
5. Implementation of recursion 3
6. Sessional 1
7. Sorting Implementation 3
8. Quick and Merge Sort Implementation 3
9. Binary search tree implementation 3
10. AVL trees implementation 3
11. Sessional II
12. Binary Heaps Implementation 3
13. Implementation of graphs 3
14. Hashing Implementation 3
15. Huffman Coding Implementation 3
Computer Resources:
For the purposes of this course, the software such as Java/C++ are installed in the laboratory that is used
for implementation of algorithms and data structures.
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 3 Design/Development of Solutions: An ability to design solutions for complex
engineering problems and design systems, components or processes that meet
specified needs with appropriate consideration for public health and safety, cultural,
societal, and environmental considerations.
PLO 4 Investigation: An ability to investigate complex engineering problems in a methodical
way including literature survey, design and conduct of experiments, analysis and
interpretation of experimental data, and synthesis of information to derive valid
conclusions.
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.
PLO 6 The Engineer and Society: An ability to apply reasoning informed by contextual
knowledge to assess societal, health, safety, legal and cultural issues and the
consequent responsibilities relevant to professional engineering practice and solution
to complex engineering problems.
PLO 7 Environment and Sustainability: An ability to understand the impact of professional
engineering solutions in societal and environmental contexts and demonstrate
knowledge of and need for sustainable development.
PLO 8 Ethics: Apply ethical principles and commit to professional ethics and responsibilities
and norms of engineering practice.
PLO 9 Individual and Team Work: An ability to work effectively, as an individual or in a team,
on multifaceted and /or multidisciplinary settings.
PLO 10 Communication: An ability to communicate effectively, orally as well as in writing, on
complex engineering activities with the engineering community and with society at
large, such as being able to comprehend and write effective reports and design
documentation, make effective presentations, and give and receive clear instructions.
PLO 11 Project Management: An ability to demonstrate management skills and apply
engineering principles to one’s own work, as a member and/or leader in a team, to
manage projects in a multidisciplinary environment.
PLO 12 Lifelong Learning: An ability to recognize importance of, and pursue lifelong learning in
the broader context of innovation and technological developments.
PLOs
PLO10
PLO11
PL012
PLO 9
PLO1
PLO2
PLO3
PLO4
PLO5
PLO6
PLO7
PLO8
CLOs
CLO1 C1
CLO2 C2
CLO3 C4
CLO4 A3
Table 2: Mapping CLOs to PLOs
Version Applicable From
Version 1 Fall 2016
Version 2 Spring 2017
Version 3 Fall 2017