---
title: "Section 1 · Design and Analysis of Algorithms"
description: "Eleven lab sessions on greedy, divide-and-conquer, dynamic programming and graph algorithms, each solved in Python, C and Rust."
image: "https://syntax.theether.in/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://syntax.theether.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Section 1 · Design and Analysis of Algorithms

Section 1 of MCS-216 covers the algorithm labs. Every session states the problem exactly as the lab manual does, walks through the logic, then gives a working program in Python, C and Rust.

> **Lab manual**
>
> Download the official manual: <a href={"/mcs-216.pdf"} target="_blank" rel="noopener">MCS-216 Lab Manual (PDF)</a>. Sessions here follow its numbering and problem instances.

## Sessions

| Session | Topic |
| --- | --- |
| 1 | Polynomial evaluation, GCD, power, sorting basics |
| 2 | Fractional knapsack (greedy) |
| 3 | Task scheduling with and without deadlines (greedy) |
| 4 | Sorting and selection (divide and conquer) |
| 5 | Search and merge (divide and conquer) |
| 6 | Dijkstra's shortest path |
| 7 | Minimum spanning tree |
| 8 | Binomial coefficient (divide and conquer vs dynamic programming) |
| 9 | Floyd–Warshall all-pairs shortest path |
| 10 | Matrix chain multiplication |
| 11 | Optimal binary search tree and Huffman coding |

## How to use a session

1. Read the problem statement and solve it on paper first.
2. Compare your approach with the explanation.
3. Run the program in the language your lab uses (C is the IGNOU default), then read the other two to see the same idea in a different style.
4. Copy only what the lab record asks for. Blocks marked for the notebook are the ones examiners expect.

Source: https://syntax.theether.in/mcs-216/section-1/index.mdx
