Skip to content
September 2026 qualifier: applications close Sun 27 Sep · Week 1 starts Fri 2 Oct
Qualifier Hub

IITM BS BSCS2002: Programming, Data Structures and Algorithms using Python

By Editorial TeamLast reviewed

5 min readData Science
On this page

Programming, Data Structures and Algorithms using Python (BSCS2002), known as PDSA, is a 4 credit diploma level course in the IITM BS in Data Science. It belongs to the Diploma in Programming. The course page lists no prerequisite, but as with all diploma courses you must first pass the 8 foundation courses. It teaches how to measure an algorithm's speed, use standard data structures, and design algorithms, all in Python.

CodeCreditsLevelPrerequisites
BSCS20024DiplomaNone (all foundation courses done)

The course page names Madhavan Mukund, Director of the Chennai Mathematical Institute, as the instructor.

What you learn

  • Weeks 1 to 3: the basics. A Python refresher. Then big O notation, sorting and searching. Then arrays, lists, stacks, queues and hashing.
  • Weeks 4 to 7: graphs and trees. Two weeks of graph algorithms. Then union-find, priority queues, heaps and binary search trees. Then balanced search trees and greedy algorithms.
  • Weeks 8 to 10: design methods. Divide and conquer, dynamic programming, and string or pattern matching.
  • Weeks 11 and 12: bigger ideas and review. Network flows, linear programming and classes of algorithms, then a summary week.

The course page lists the goals in plain terms: estimate upper bounds with big O, use standard structures, compare sorting and searching methods, work with graphs, use divide and conquer and dynamic programming, and model problems with linear programming and network flows.

How it is assessed

The course page lists the standard pattern: 12 weeks of coursework, weekly online assignments, 2 in-person invigilated quizzes and 1 in-person invigilated end term exam. It does not mention a programming exam. The handbook says details can vary by course and points to the grading document, so check yours for an OPPE in week 1. Our guide to handling DBMS and PDSA has exam tips, and what OPPE is explains the rules if your course has one.

Where it counts

  • Diploma in Programming. PDSA is one of its 6 theory courses. See the Diploma in Programming.
  • Re-entry. The handbook lists PDSA as one of the final exams for a student who exited with the Diploma in Programming and rejoins at the Diploma in Data Science level.
  • Electronic Systems students. The ES handbook lists PDSA (as CS2002, 4 credits, no prerequisite) as an open elective from the DS programme.
  • Terms. The DS handbook says all diploma courses are offered every term.

The course page and the ES handbook agree on 4 credits and no prerequisite. The DS handbook gives only the 23 credit total for the diploma's 6 theory courses.

Who finds it hard

If you got through Python by memorising patterns from old questions, PDSA will feel different. It asks why a method works and how fast it is, not only whether the output is right. Expect graphs (weeks 4 and 5) and dynamic programming (week 9) to take the most time. The code is short, but the idea behind it is not.

How to prepare

  1. Implement each structure yourself. Write your own stack, queue and heap with Python lists before you use the built-in tools. You will understand the time each step takes.
  2. Count steps, not seconds. Binary search on 1,000 sorted items needs at most about 10 comparisons, because 2 to the power 10 is 1,024. Linear search may need 1,000. Do this kind of estimate for every algorithm.
  3. Trace graphs on paper. Draw a graph with 6 nodes. Run breadth first search and depth first search by hand and write the visit order. Then run your code and compare.
  4. Solve dynamic programming in three steps. Write the smaller subproblem in words, write how a bigger answer comes from smaller ones, then fill a table by hand for a small input. Code comes last.
  5. Keep a complexity sheet. One line per algorithm with its best use and its running time.

What to take before or after

Before PDSA, be solid in Programming in Python (BSCS1002), especially lists, dictionaries and functions. After it, the degree level has Advanced Algorithms (BSCS4021). PDSA ideas also return in degree electives such as Algorithmic Thinking in Bioinformatics.

Common questions

Can I take PDSA in my first diploma term?

Yes. It has no prerequisite beyond the foundation level. Pair it with a course you find easier, so you have time for weekly practice.

Is PDSA only theory, or do I have to code?

You code throughout. The course is taught in Python and the goals include implementing data structures and algorithms, not just describing them.

Do I need maths for PDSA?

Some. Big O analysis uses simple counting and logarithms, and linear programming appears in week 11. Revise logarithms before week 2 if they feel rusty.

23 PDSA handwritten and PDF notes by students

Official sources

All posts in Course guides

Was this page helpful?

Share with your study group:WhatsAppTelegram