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.]
|
| Unit II: Recursion [4 Hrs.]
|
| Unit III: Stacks [4 Hrs.]
|
| Unit IV: Queue [4 Hrs.]4.1 Introduction
|
| Unit V: Linked List [5 Hrs.]
|
| Unit VI: Trees [7 Hrs.]
|
| Unit VII: Sorting [7 Hrs.]
|
| Unit VIII: Searching [5 Hrs.]
|
| Unit IX: Graph [7 Hrs.]
|
| Unit X: Growth Functions [2 Hrs.]
|
4. 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 linear and 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 different searching 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.
5. Methods of Instruction
- Lecture
- Group discussion
- Question-answers
- Demonstration and discussion
- Presentations
- Guest lectures
- Group work/project work
- Problem solving
- Simulation
- Tutorials
6. Evaluation system and 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 |
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.
7. 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