Computer Algorithm Lab
Course Information:
- Semester: 4th
- Course Code: 07-0613-CALab406
- Credits: 01
- Course Teacher: Md Habibul Basar Faruq
- Email: mh.faruq06@gmail.com
Lab Objectives
Upon completion of this lab, students will be able to:
- Implement fundamental data structures (arrays, linked lists, stacks, queues, trees, graphs)
- Develop and analyze sorting/searching algorithms (selection, insertion, merge, quick, radix)
- Implement recursion-based solutions (Fibonacci, factorial, series summations)
- Apply divide-and-conquer, greedy, and dynamic programming techniques (Knapsack, matrix chain multiplication)
- Explore backtracking (N‑Queens, subset sum) and graph algorithms (DFS, BFS, Dijkstra)
Weekly Lab Activities
-
Week 1: Introduction
- Lab setup, compiler/IDE installation
- Using version control (Git)
- Debugging tools (gdb/IDE)
- Introduction to algorithm analysis (Big-O basics)
-
Week 2: Basic Coding & Recursion Basics
- Arrays, loops, and functions
- Simple recursion problems (factorial, Fibonacci)
-
Week 3: Linked Data Structures
- Linked lists (singly and doubly linked)
- Stack and Queue implementation
-
Week 4: Tree Data Structures
- Binary Trees and Tree Traversals (Inorder, Preorder, Postorder)
-
Week 5: Divide and Conquer – Sorting I
- Merge Sort
- Quick Sort
-
Week 6: Sorting II & Experimental Analysis
- Selection Sort
- Insertion Sort
- Radix Sort
- Compare time complexity experimentally
-
Week 7: Graph Algorithms – Part I
- Graph representation (Adjacency Matrix, List)
- DFS and BFS traversal
-
Week 8: Greedy Algorithms – Part I
- Activity Selection Problem
- Job Scheduling
-
Week 9: Greedy Algorithms – Part II
- 0/1 Knapsack
- Fractional Knapsack
-
Week 10: Dynamic Programming – Part I
- Fibonacci using DP
- C(n,r) calculation using DP
-
Week 11: Dynamic Programming – Part II
- Matrix Chain Multiplication
- All-Pairs Shortest Path (Floyd-Warshall)
-
Week 12: Backtracking
- N-Queens Problem
- Subset Sum Problem
-
Week 13: Graph Shortest Path
- Dijkstra’s Algorithm
- Bellman-Ford overview
-
Week 14: Integrated Lab Project
- Combine Data Structures & Algorithms
- Mini-project development
-
Week 15: Project Demonstration & Analysis
- Performance evaluation (time & space complexity)
- Final presentation and report submission
Assessment Components
- Weekly Coding Assignments & Reports: 40%
- Lab Participation & Attendance: 10%
- Final Project Implementation: 30%
- Project Presentation & Written Report: 20%