Data Structures and
Algorithms
CSCP-2034
Program BSCS
Credit Hours 3
Duration 16 Weeks / 32 sessions
Computer Organization and Assembly
Prerequisites
Language
Resource Person
Course Description
This course familiarize students with concepts of creating, storing, retrieving, ordering, and
manipulation of data structures, abstract data types (ADTs), and the basics of analysis of
algorithms. The students will learn formal specification of data structures in depth.
Course Objectives
To introduce the students to basic data structures and their associated algorithms.
To introduce the theory of complexity and develop the skills to analyze time and space
requirements for a data structure and its associated algorithms.
To implementing data structures in C++
To determine, which data structures are appropriate in various situations.
Learning Outcomes
On completion of this course, students will be able to:
Understand the properties of Abstract Data Types and various data structures.
Understand the associated operations associated.
Identify the strengths and weaknesses of different data structures.
Design and employ appropriate data structures for solving computing problems.
Possess the knowledge of various existing algorithms.
Analyze and compare the efficiency of algorithms.
Violation of Academic Honesty Policy:
If any two projects / assignments are identical or partially identical, a zero will be awarded.
The repetition of such kind may lead to an “F” grade in the course.
Class Conduct
Class attendance is mandatory. You may miss up to 6 class sessions. On the seventh absence,
you will be withdrawn from the course. As a courtesy to the instructor and other students, be
prepared to arrive at class and be in your seat on time. In addition, please note that each class
last for 90 minutes.
Also keep in mind some general rules as given below:
Cell phones should be powered off.
Eatables are not allowed in the class.
The teacher will not tolerate any disruptive behavior in the class.
The Dress Code has to be observed, no warnings will be given, and violators will be
asked politely to leave the class and consequently will be marked absent.
Participation
Students are required to attend all classes and read all the assigned material in advance of
class (although not necessarily with perfect comprehension). Advanced preparation and class
participation are crucial for periods in which we discuss cases. During discussion sessions,
the instructor generally keeps track of the insightful and useful comments students make.
(Any unproductive contribution is not rewarded)
Data Structures and Algorithm Analysis by Clifford A. Shaffer , Edition 3.2 Edition,
Data Structures and Algorithm Analysis in C++ by Mark Allen Weiss , Fourth Edition
Calendar of Activities & (Session Plan)
Weeks Contents Activities
Introduction to the Course
Complexity Analysis I
1
Complexity Analysis II
Abstract Data Types, Stacks ADT
Applications of Stack e.g. Polish notations, Arithmetic expression
2 evaluation
Infix, Post fix, Prefix concepts and implementation
Queues ADT I
Queues ADT II
3 Assignment-1
Implementation and applications of queue
List ADT
Quiz 1
4 Linked Lists I
Singly linked lists
Linked Lists II
Doubly linked lists
Linked Lists III
5
Implementation of Stack and Queue using Link List
Linked Lists IV
6 Link List Iterators Assignment-2
Recursion I
Understanding the nature of problem
7 Why need recursion
Quiz-2
Identifying base case and terminating point
Stack trace and Recursive Tree
Recursion II
How to implement-two parts of a recursive function.
8
Examples: Factorial and its logic and memory model and stack trace.
9 MID TERM
Trees I
Tree Data Structure Definition and Basic terminologies
10
Tree II
Tree Traversal, Expression trees
Tree III Assignment-3
11 Binary Search Trees
Tree IV
Height Balanced Trees (Red Black trees) I
12 Tree V
Height Balanced Trees (Red Black trees)
Heaps I
Heap Data Structure, Max and Min Heaps
13
Heaps II
Priority Queues and Heap Sort
Searching Techniques I
Linear Search, Binary Search and Indexed Sequential Search
Assignment-4
14 Searching Techniques II
Bubble Sort, Selection Sort, Insertion Sort
Searching Techniques III Quiz-4
Merge Sort, Quick Sort
15
Graphs I
Basic Terminologies
Graphs II
Breadth First and Depth First search traversals, test for acclivity
16
Hashing
Definition and its types and examples
17th Week FINAL TERM