Fall 2026: Design and Analysis of Algorithms

From MKWiki
Jump to navigation Jump to search

Logistics

  • Class Timings: Mondays, Tuesdays, and Thursdays 9:30 am - 10:30 am
  • Classroom: (R-43)
  • Lab Timings: Fridays 8:30 am - 10:30 am
  • Labs: Computer Lab 4 (CL-3)

Course Overview

Lectures

Lecture Topic Lecture Slides Readings
Unit-1 Searching, Sorting, Selection, Divide and Conquer: [unit1.pdf] Chapter 2,4,6,7,8,9 (R1)
Unit 2 Graphs and Greedy algorithms: [unit2.pdf] Chapter 3, 4 (R2) & 15(R1)
Unit 3 Dynamic Programming: [unit3.pdf] Chapter 6 (R2)
Unit 4 Hash Functions, Collision resolution schemes: [unit4.pdf] Chapter 11 (R1)

Assignments and Tests

Class Assignments

  • Assignment No. 1,
  • Assignment No. 2,

Tests and Quizzes

  • Test 1 :
  • Test 2 :

Labs

Instructions

  • Please be on time to avoid the Attendance Penalty.
  • Please put your mobile phone on Silent Mode.
  • Each lab assignment needs to be submitted in the Google Classroom for evaluation(will be notified in the GC lab-wise, submit before the deadline).
  • Turn off(shut down) your assigned computer and arrange the chair before you leave the lab.

Practicals LIst

  1. Write a program to sort the elements of an array using Insertion Sort (The program should report the number of comparisons).
  2. Write a program to sort the elements of an array using Merge Sort (The program should report the number of comparisons).
  3. Write a program to sort the elements of an array using Heap Sort (The program should report the number of comparisons).
  4. Write a program to sort the elements of an array using Quick Sort (The program should report the number of comparisons).
  5. Write a program to multiply two matrices using the Strassen’s algorithm for matrix multiplication.
  6. Write a program to sort the elements of an array using Count Sort.
  7. Display the data stored in a given graph using the Breadth-First Search algorithm.
  8. Display the data stored in a given graph using the Depth-First Search algorithm.
  9. Write a program to determine a minimum spanning tree of a graph using the Prim’s algorithm.
  10. Write a program to determine the shortest path from a given node s to the other nodes of a graph using the Dijkstra’s algorithm.
  11. Write a program to solve the 0-1 knapsack problem using Dynamic Programming.

Resources

References:

  • R1: Cormen, T.H., Leiserson, C.E., Rivest, R. L., Stein C. Introduction to Algorithms, 4th edition, Prentice Hall of India, 2022.
  • R2: Kleinberg, J., Tardos, E. Algorithm Design, 1st edition, Pearson, 2013.