Skip to Content
Support Palestine 🍉  ⬩  In News
GecaCSPCC3004: Design and Analysis of AlgorithmsIntroduction to Design and Analysis of Algorithms

Design and Analysis of Algorithms (DAA) Lab Manual

Course Overview:

Department: Computer Science & Engineering

Course: B.Tech, 3rd Year

Lab Focus: Implementing classic algorithms across paradigms – Divide & Conquer, Greedy, Dynamic Programming, and Graph Theory

Language Used: Python (preferred for readability and interview relevance)

Why should you care?

  • DAA is the foundation of solving real-world computational problems efficiently.

  • It trains you to:

    • Analyze time and space complexity.
    • Recognize algorithmic patterns.
    • Solve problems with optimal methods (not just brute force).
  • DAA is a core subject in interviews for roles such as SDE, Research Intern, Data Analyst, etc.

What will you learn?

  • Lab 00: Fundamental Algorithms (Interview Basics)
  • Lab 01: Recursive vs Non-Recursive Algorithms
  • Lab 02: Merge Sort (Divide and Conquer)
  • Lab 03: Binary Search (Iterative & Recursive)
  • Lab 04: Greedy Knapsack Problem (Fractional)
  • Lab 05: Prim’s Algorithm for Minimum Spanning Tree
  • Lab 06: Kruskal’s Algorithm for Minimum Spanning Tree
  • Lab 07: Single Source Shortest Path (Multistage Graph)
  • Lab 08: All-Pairs Shortest Paths (Multistage Graph)
  • Lab 09: Huffman Coding (Greedy Tree Construction)
  • Lab 10: Combinatorial Problems (Knapsack / 8 Queens / Flow Shop)

How to get involved?

Before diving into the labs, it’s essential to set up your online presence and tools. This will not only help you in the labs but also prepare you for internships and job applications.

Ensure Account @ GitHub

… for code sharing and version control

If you don’t have a GitHub account, follow these steps:

  1. Head to https://github.com
  2. Click Sign Up, enter email, and choose a unique username.

Username Guidelines:
Usernames should be professional, ideally your name or a variation. Don’t use numbers or special characters unless necessary. Remember, consistency is the key in professional branding. Use same username across platforms like GitHub, LinkedIn, etc.

  1. Do the remaining steps to complete your profile

You can always change your username later, but it may affect links to your repositories. Setup your profile with a professional touch, like: @s-m-quadri 😊

  1. Done! 🎉

Ensure Account @ LinkedIn

… for professional networking and branding

If you don’t have a LinkedIn account, follow these steps:

  1. Head to https://linkedin.com
  2. Click Join now and sign up with your personal and/or academic email.
  3. Proceed to fill out your profile with relevant information.

Profile URL:
Ensure your LinkedIn profile URL is professional and easy to share. It should include your name and be free of numbers or special characters. For example, linkedin.com/in/s-m-quadri is better than linkedin.com/in/s-m-quadri12345. This helps recruiters find you easily and gives a good first impression.

  1. And Done! 🎉

Ensure Account @ LeetCode

… for practicing algorithmic problems

If you don’t have a LeetCode account, follow these steps:

  1. Head to https://leetcode.com
  2. Click Register using your GitHub account or email.

Note:
In the upcoming labs, you will be required to practice problems on LeetCode.

  1. Excellent! You’re all set! 🎉

Resources

Will be updated as we progress through the labs



💡

Some of my latest posts on LinkedIn

Last updated on