Data Structures and Algorithms(DSA) Syllabus
This page contains Syllabus of Data Structures and Algorithms of BCA.
Title | Data Structures and Algorithms |
Short Name | DSA |
Course code | CACS201 |
Nature of course | Theory + Practical |
Third Semester | |
Full marks | 60 + 20 + 20 |
Pass marks | 24 + 8 + 8 |
Credit Hrs | 3 |
Elective/Compulsary | Compulsary |
Course Description
Course Description
This course includes fundamental concept of data structures such as stack, queue, list.
linked list, trees and graph: application of these data structures along with several algorithms.
Course Objectives
The general objective of this course is to provide fundamental concepts of data structures, different algorithms and their implementation.
Units and Unit Content
- 1. Introduction to data structure
- teaching hours: 2 hrs
Definition, Abstract Data Type, Importance of Data structure
- 2. The Stack
- teaching hours: 3 hrs
Introduction, Stack as an ADT, POP and PUSH Operation, Stack Application: Evaluation of Infix, Postfix, and Prefix Expressions, Conversion of Expression.
- 3. Queue
- teaching hours: 3 hrs
Introduction, Queue as an ADT , Primitive Operations in Queue, Linear and Circular Queue and Their Application, Enqueue and Dequeue, Priority Queue
- 4. List
- teaching hours: 2 hrs
Introduction, Static and Dynamic List Structure, Array Implementation of Lists, Queue as a list
- 5. Linked Lists
- teaching hours: 5 hrs
Introduction, Linked List as an ADT, Dynamic Implementation, Insertion & Deletion of Nodes, Linked Stacks and Queues, Doubly Linked Lists and Its Advantages
- 6. Recursion
- teaching hours: 4 hrs
Introduction, Principle of Recursion, Recursion vs. Iteration, Recursion Example: TOH and Fibonacci Series, Applications of Recursion, Search Tree
- 7. Trees
- teaching hours: 5 hrs
Introduction, Basic Operation in Binary tree, Tree Search and Insertion/Deletion, Binary Tree Transversals(pre-order, post-order and in-order), Tree Height, Level and Depth, Balanced Trees: AVL Balanced Trees, Balancing Algorithm, The Huffman Algorithm, Game tree, B-Tree
- 8. Sorting
- teaching hours: 5 hrs
Introduction, Internal and External Sort, Insertion and Selection Sort, Exchange Sort, Bubble and Quick Sort, Merge and Radix Sort, Shell Sort, Binary Sort, Heap Sort as Priority Queue, Efficiency of Sorting, Big'O'Notation.
- 9. Searching
- teaching hours: 5 hrs
Introduction to Search Technique; essential of search, Sequential search, Binary search, Tree search, General search tree, Hashing: Hash function and hash tables, Collision resolution technique, Efficiency comparisons of different search technique.
- 10. Graphs
- teaching hours: 5 hrs
Introduction, Graphs as an ADT, Transitive Closure, Warshall's Algorithm, Types of Graph, Graph Traversal and Spanning Forests, Kruskal's and Round-Robin Algorithms, Shortest- path Algorithm, Greedy Algorithm, DijKstra's Algorithm
- 10. Algorithms
- teaching hours: 5 hrs
Deterministic and Non-deterministic Algorithm, Divide and Conquer Algorithm, Series and Parallel Algorithm, Heuristic and Approximate Algorithms
Lab and Practical works
Laboratory Works
There shall be 10 lab exercises based on C or Java
I. Implementations of different operations related to Stack
2. Implementations of different operations related to linear and circular queues
3. Solutions of TOH and Fibonacci Series using Recursion
4. Implementations of different operations related to linked list: singly and doubly linked
5. Implementation of trees: AVL trees, Balancing of AVL
6. Implementation of Merge sort
7. Implementation of different searching technique: sequential, Tree and Binary
8. Implementation of Graphs: Graph traversals
9. Implementation of Hashing
10. Implementations of Heap