CS2002 · Diploma / Programming · 4 credits

Programming, Data Structures & Algorithms using Python

The classical data structures and algorithms, taught in Python — recursion, complexity, searching, sorting, stacks, queues, trees and graphs.

Instructor Prof. Madhavan Mukund Term Every term Prereq CS1002

§ 1Calendar

  • Quiz 1—
  • Quiz 2—
  • End-term examination—

§ 2Previous Year Questions

  • PDSA weekwise PYQs

    Past questions sorted by week.

    discourse.onlinedegree.iitm.ac.inby Preethy ParthasarathyDiscourse login required

§ 3Resources

Course material2

Notes3

Books1

TA resources1

Practice1

CS2002 · Diploma / Programming · 4 credits

Syllabus

The official course syllabus, transcribed from the IITM BS Data Science & Applications course booklet.

§ 1Course Description

This course provides a strong foundation in the basic concepts of algorithm design and analysis, along with standard data structures, using Python as the primary implementation language.

Lectures-Tutorials-Practicals-Credits: 4-0-0-4

§ 2Faculty

§ 3Week-by-week

Week 1: Python recap; Jupyter/Colab; Exception handling; OOP; Code implementation and efficiency.

Week 2: Algorithm analysis; Complexity; Searching and sorting (selection, insertion, merge); Implementation.

Week 3: Quicksort - analysis and implementation; Comparison of sorting algorithms; Lists vs arrays; Implementation of lists and dictionaries; Stack and queue.

Week 4: Graphs and representations; Breadth-first and depth-first search; Applications of BFS and DFS; Directed acyclic graphs; Topological sorting; Longest path.

Week 5: Shortest paths (Dijkstra, Bellman-Ford, Floyd-Warshall); Minimum spanning trees (Prim's, Kruskal's).

Week 6: Union-Find data structure; Priority queues and heaps; Heaps in algorithms; Search trees.

Week 7: Balanced search trees; Greedy algorithms - interval scheduling, minimizing lateness, Huffman coding.

Week 8: Divide and conquer - counting inversions, closest pair of points, integer multiplication; Recursion trees; Selection algorithms.

Week 9: Dynamic programming - memoization; Applications - grid paths, subsequences, edit distance, matrix multiplication.

Week 10: String matching algorithms - Boyer-Moore, Rabin-Karp, and KMP algorithm; Automata-based string matching; Regular expressions.

Week 11: Linear programming and applications; Network flows; Reductions; Intractability (P vs NP).

Week 12: Course Summary.

CS2002 · Diploma / Programming · 4 credits

OPPE

Practice material for the Programming, Data Structures and Algorithms using Python online proctored programming exam.

§ 1Practice and past questions

Practice1

TA sessions1

  • TA session resources (May 2026)

    TA session slides and materials, including problem-solving sessions.

    discourse.onlinedegree.iitm.ac.inDiscourse login required