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%