Bachelors Level/Second Year/Third Semester/Science csit/third semester/data structures and algorithms/syllabus

B.Sc Computer Science and Information Technology

Institute of Science and Technology, TU

Nature of the course: (Theory+Lab)

F.M: 60+20+20 P.M: 24+8+8

Credit Hrs: 3Hrs

Data Structures and Algorithms [CSC211]
Course Objective
i.
To introduce data abstraction and data representation in memory.
ii.
To describe, design and use of elementary data structures such as stack, queue, linked list, tree and graph.
iii.
To discuss decomposition of complex programming problems into manageable subproblems.
iv.
To introduce algorithms and their complexity.
Course Description

This course includes the basic foundations in of data structures and algorithms. This course covers concepts of various data structures like stack, queue, list, tree and graph. Additionally, the course includes idea of sorting and searching.

S1:Introduction to Data Structures & Algorithms[4]
1
Data types, Data structure and Abstract date type
2
Dynamic memory allocation in C
3
Introduction to Algorithms
4
Asymptotic notations and common functions
S2:Stack[4]
1
Basic Concept of Stack, Stack as an ADT, Stack Operations, Stack Applications
2
Conversion from infix to postfix/prefix expression, Evaluation of postfix/ prefix expressions
S3:Queue[4]
1
Basic Concept of Queue, Queue as an ADT, Primitive Operations in Queue
2
Linear Queue, Circular Queue, Priority Queue, Queue Applications
S4:Recursion[3]
1
Principle of Recursion, Comparison between Recursion and Iteration, Tail Recursion
2
Factorial, Fibonacci Sequence, GCD, Tower of Hanoi(TOH)
3
Applications and Efficiency of Recursion
S5:Lists[8]
1
Basic Concept, List and ADT, Array Implementation of Lists, Linked List
2
Types of Linked List: Singly Linked List, Doubly Linked List, Circular Linked List
3
Basic operations in Linked List: Node Creation, Node Insertion and Deletion from Beginning, End and Specified Position
4
Stack and Queue as Linked List
S6:Sorting[8]
1
Introduction and Types of sorting: Internal and External sort
2
Comparison Sorting Algorithms: Bubble, Selection and Insertion Sort, Shell Sort
3
Divide and Conquer Sorting: Merge, Quick and Heap Sort
4
Efficiency of Sorting Algorithms
S7:Searching and Hashing[6]
1
Introduction to Searching, Search Algorithms: Sequential Search, Binary Search
2
Efficiency of Search Algorithms
3
Hashing : Hash Function and Hash Tables, Collision Resolution Techniques
S8:Trees and Graphs[8]
1
Concept and Definitions, Basic Operations in Binary Tree, Tree Height, Level and Depth
2
Binary Search Tree, Insertion, Deletion, Traversals, Search in BST
3
AVL tree and Balancing algorithm, Applications of Trees
4
Definition and Representation of Graphs, Graph Traversal, Minimum Spanning Trees: Kruskal and Prims Algorithm
5
Shortest Path Algorithms: Dijksrtra Algorithm
S9:Solution of Partial Differential Equations[5]
1
Review of partial differential equations, Classification of partial differential equation, Deriving difference equations, Laplacian equation and Poisson's equation, engineering examples
References
1.
Y Langsam , MJ Augenstein and A.M , Tanenbaum Data Structures using C and C++ , Prentice Hall India, Second Edition 2015
2.
Leen Ammeral, Programmes and Data Structures in C, Wiley Professional Computting
3.
G.W Rowe, Introduction to Data Structure and Algroithms with C and C++ , prentice Hall India
4.
R.L Kruse, B.P. Leung, C.L. Tondo, Data Structure and Program Design in C PrenticeHall India
Labrotary Work
The laboratory work consists of implementing the algorithms and data structures studied in the course. Student should implement at least following concepts
1.
Dynamic memory allocation and deallocation strategies
2.
Stack operations and Queue operations
3.
Array and Linked List implementation of List
4.
Linked List implementation of Stack and Queues
5.
Sorting, Searching and Hashing algorithms
6.
Binary Search Trees and AVL Tress
7.
Graph Representation, Spanning Tree and Shortest Path Algorithms