Programming, Data Structures & Algorithms using Python
The classical data structures and algorithms, taught in Python — recursion, complexity, searching, sorting, stacks, queues, trees and graphs.
§ 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
-
Supplementary content (Drive folder)
drive.google.comIITM login required
-
Course YouTube channel
youtube.com
Notes3
-
Course notes
Notes and study material for this course.
iitmbsdegree.inby IITM BS Students' Corner -
Topic-wise notes
Topic-wise notes on ML Study Hub.
degreedost.comby ML Study Hub -
PDSA notes on Medium
Written notes for the Programming, Data Structures and Algorithms using Python course.
medium.comby Pratham Bhalla
Books1
-
PDSA online textbook
The course textbook as a website, by the instructor.
pdsaiitm.github.ioby Atul Pratap Singh (Instructor)
TA resources1
-
TA session resources (May 2026)
Slides and materials from the TA sessions, in one thread.
discourse.onlinedegree.iitm.ac.inDiscourse login required
Practice1
-
LeetCode with Python
Worked solutions to common data structures and algorithms problems.
vikrantmehta123.github.ioby Vikrant Mehta
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
- Prof. Madhavan Mukund, Director, Chennai Mathematical Institute
§ 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.
OPPE
Practice material for the Programming, Data Structures and Algorithms using Python online proctored programming exam.
§ 1Practice and past questions
Practice1
-
LeetCode with Python
Worked solutions to common data structures and algorithms problems, useful for OPPE practice.
vikrantmehta123.github.ioby Vikrant Mehta
TA sessions1
-
TA session resources (May 2026)
TA session slides and materials, including problem-solving sessions.
discourse.onlinedegree.iitm.ac.inDiscourse login required