1. Course Description
This course offers a thorough examination of the core principles of data structures and algorithms, crucial for computer science students. It starts with an introduction to data structures and advances through abstract data types, algorithm analysis, and design techniques. Topics covered include recursion, stacks, queues, linked lists, trees, sorting, searching, hashing, and graph algorithms, with in-depth explanations and practical examples. Through hands-on exercises, students gain proficiency in designing, implementing, and analyzing these structures and algorithms, with a focus on understanding their efficiency and real-world applications. Upon completion, students are equipped with the essential knowledge and skills to address intricate problems and develop efficient software solutions.
2. General Objectives
- Provide a comprehensive understanding of fundamental data structures and algorithms.
- Equip students with proficiency in designing, implementing, and analyzing data structures and algorithms.
- Foster a deep comprehension of the efficiency and practical implications of different algorithms.
- Prepare students to tackle complex problems and develop effective software solutions.
3. Specific Objectives and Contents
| Specific Objectives | Content |
|---|---|
| Unit I: Introduction to data Structure [3 Hrs.]
|
| Discuss the principles and characteristics of recursion. Apply recursion to solve problems and implement algorithms efficiently. | Unit II: Recursion [4 Hrs.] 2.1 Introduction to Recursion 2.2 Principle of Recursion 2.3 Types of Recursion
2.4 Recursion Examples
2.5 Application of Recursion |
| Become proficient in using stacks and understanding their terms.Implement stack algorithms such as POP and PUSH.Apply stacks in solving problems. | Unit III: Stacks [4 Hrs.]3.1 Introduction3.2 Operation stack3.3 Stack terminology3.4 Algorithm for POP and PUSH3.5 Stack Applications ▪ Stack frame ▪ Reverse string ▪ Calculation of postfix expression ▪ A notation conversion3.6 Algorithm for converting infix expression to postfix form |
| Understand queue terminology and operations.Implement insertion and deletion algorithms.Recognize queue variations and their applications. | Unit IV: Queue [4 Hrs.]4.1 Introduction4.2 Queue terminology4.3 Algorithm for insertion in queue4.4 Algorithm for deletion in queue4.5 Limitation of simple queue4.6 Variation in queue ▪ Circular queue ▪ Priority queue4.7 Application of queue |
| Understand linked list concepts and operations.Define key terms such as data field and link field.Perform operations like insertion, deletion, traversal, searching, etc.Identify types of linked lists. | Unit V: Linked List [5 Hrs.]5.1 Introduction5.2 Linked List5.3 Advantage and disadvantage5.4 Key terms ▪ Data field ▪ Link field5.5 Representation of linear linked list5.6 Operations of linked list ▪ Creation ▪ Insertion ▪ Deletion ▪ Traversing ▪ Searching ▪ Concatenation ▪ Display5.7 Types of linked list ▪ Singly linked list ▪ Doubly linked list ▪ Circular linked list ▪ Circular doubly linked list5.8 Create single linked list5.9 Insertion at specific position5.10 Deletion at specific position5.11 Application: Addition of two polynomials |
| Understand tree terminology and binary tree concepts.Implement traversal methods.Perform BST operations and understand AVL trees. | Unit VI: Trees [7 Hrs.]6.1 Introduction6.2 Tree terminology6.3 Binary tree ▪ Strictly binary tree ▪ Complete binary tree ▪ Extended binary tree6.4 Binary tree representation ▪ Array representation ▪ Linked list representation6.5 Create binary tree6.6 Tree traversal ▪ Preorder ▪ Inorder ▪ Postorder6.7 Binary Search Tree (BST) ▪ Insertion ▪ Search ▪ Deletion6.8 Tree height, level, depth6.9 AVL Tree6.10 Huffman Algorithm6.11 B-Tree |
| Learn sorting algorithms and efficiency analysis.Implement sorting techniques.Analyze performance using Big O notation. | Unit VII: Sorting [7 Hrs.]7.1 Introduction7.2 Internal and External sorting7.3 Sorting algorithms ▪ Bubble sort ▪ Insertion sort ▪ Selection sort ▪ Quick sort ▪ Merge sort ▪ Shell sort ▪ Binary sort7.4 Efficiency of sorting and Big O notation |
| Learn searching techniques and hashing.Understand collision resolution methods.Compare efficiency of searching methods. | Unit VIII: Searching [5 Hrs.]8.1 Introduction8.2 Searching techniques ▪ Sequential search ▪ Binary search ▪ Tree search8.3 Hashing ▪ Hash functions ▪ Characteristics of good hash function ▪ Types of hash function ▪ Hash tables and applications8.4 Collision resolution techniques ▪ Linear probing ▪ Quadratic probing ▪ Double hashing ▪ Chaining8.5 Rehashing8.6 Efficiency comparison |
| Understand graph terminology and types.Learn graph traversal algorithms.Study spanning trees and shortest path algorithms. | Unit IX: Graph [7 Hrs.]9.1 Introduction9.2 Graph terminology9.3 Types of graph ▪ Undirected graph ▪ Directed graph9.4 Graph representation9.5 Graph traversal ▪ BFS ▪ DFS9.6 Spanning tree and MST ▪ Kruskal’s algorithm ▪ Prim’s algorithm9.7 Shortest path (Dijkstra’s Algorithm)9.8 Applications |
| Understand asymptotic notations.Learn limitations of Big O notation. | Unit X: Growth Functions [2 Hrs.]10.1 Introduction to asymptotic notation10.2 Big O notation10.3 Omega notation10.4 Theta notation10.5 Limitation of Big O notation |
- Laboratory Work
It builds the foundation on how to write a program using any high-level language. Hence, this course requires a lot of programming practice so that students will be able to develop good logic building and program developing capability which is essential throughout the course.
Some important contents that should be included in lab exercises are as follows:
- Implementations of different operations related to Stack.
- Implementation of different operations related to linearand circular queue.
- Solution of TOH and Fibonacci Series using Recursion.
- Implementations of different operations related to singly linked list.
- Implementation of Trees: AVL trees,Balancing AVL.
- Implementation of merge sort.
- Implementation of differentsearching technique: sequential, Tree and Binary.
- Implementation of Graphs: Graph traversal
- Implementation of Hashing
Note: Each of the above lab session should cover more than 4 hours of practical work.
- Methods of Instruction
- Lecture
- Group discussion
- Question-answers
- Demonstration and discussion
- Presentations
- Guest lectures
- Group work/project work
- Problem solving
- Simulation
- Tutorials
- Evaluation systemand Student’s Responsibilities Evaluation System
In addition to the formal exam(s), the internal evaluation of a student may consist of quizzes, assignments, lab reports, projects, class participation, etc. The tabular presentation of the internal evaluation is as follows.
| External Evaluation | Marks | Internal Evaluation | Weight | Marks |
Semester-End examination |
50 | Theory |
30 | |
| Attendance & Class Participation | 10% | |||
| Assignments | 20% | |||
| Presentations/Quizzes | 10% |
| Internal Assessment | 60% | |||
| Practical | ||||
| Attendance & Class Participation | 10% |
20 | ||
| Lab Report/Project Report | 20% | |||
| Practical Exam/Project Work | 40% | |||
| Viva | 30% | |||
| Total External | 50 | Total Internal | 50 | |
| Full Marks: 50 + 50 = 100 | ||||
Student’s Requirements
Each student must secure at least 45% marks separately in both internal assessment and practical evaluation with 80% attendance in the class in order to appear in the Semester End Examination. Failing to get such score will be given NOT QUALIFIED (NQ) to appear the Semester-End Examinations. Students are advised to attend all the classes, formal exam, test, etc. and complete all the assignments within the specified time period.
Students are required to complete all the requirements defined for the completion of the courses.
- Prescribed Books and References Text Books
Langsam, Y., Augenstein, M. J., & Tanenbaum, A. M. (2019). Data Structures using C and C++. PHI
Reference Books
- Rowe, G. W. (1997).Introduction to Data Structures and Algorithms with C and C++. PHI
- Lafore, R. (2002). Data Structures and Algorithms in Java. Sams Publishing
- Baluja, G. S. (2016).Data Structures throughC. Dhanpat Rai & Co