PDSA: Programming, Data Structures and Algorithms using Python
Programming, Data Structures and Algorithms using Python: week-wise syllabus, notes, short notes, and available revision material.
Programming, Data Structures and Algorithms using Python
DiplomaComplete week-wise syllabus
PDSA · 12 weeks
Week 1: Python refresher
Topics covered
Python refresher
- Variables
- Control flow
- Functions
- Lists, tuples and dictionaries
Expected skills: Use Python fundamentals to express an algorithm.
Week 2: Complexity, sorting & searching
Topics covered
Complexity, sorting & searching
- Big-O, Big-Ω and Big-Θ
- Best, average and worst cases
- Linear versus binary search
- Selection sort
- Insertion sort
- Merge sort
Expected skills: Analyse basic search and sorting methods and compare their complexity.
Week 3: Basic data structures
Topics covered
Basic data structures
- Arrays
- Lists
- Stacks
- Queues
- Hashing and dictionaries
- Abstract data types
Expected skills: Select a basic data structure and explain its supported operations.
Week 4: Graph algorithms I
Topics covered
Graph algorithms I
- Adjacency matrix and adjacency list
- BFS
- DFS
- Reachability
- Connected components
Expected skills: Represent graphs and use traversals to study connectivity.
Week 5: Graph algorithms II
Topics covered
Graph algorithms II
- Topological sort
- Directed acyclic graphs
- Dijkstra and Bellman–Ford
- Minimum spanning trees
- Prim and Kruskal
Expected skills: Choose suitable algorithms for graph ordering, shortest paths and spanning trees.
Week 6: Union-find, heaps & binary search trees
Topics covered
Union-find, heaps & binary search trees
- Disjoint sets
- Priority queues
- Binary heaps
- Heapify
- Heapsort
- Binary search tree operations
Expected skills: Use disjoint sets, heaps and search trees and trace their operations.
Week 7: Balanced trees & greedy algorithms
Topics covered
Balanced trees & greedy algorithms
- AVL trees
- Rotations
- Greedy design
- Interval scheduling
- Huffman coding
Expected skills: Explain AVL balancing and reason about greedy choices.
Week 8: Divide & conquer
Topics covered
Divide & conquer
- Recurrences
- Quicksort
- Counting inversions
- Closest-pair problem
Expected skills: Decompose a problem and analyse a divide-and-conquer approach.
Week 9: Dynamic programming
Topics covered
Dynamic programming
- Memoization versus tabulation
- Longest common subsequence
- Edit distance
- Matrix chain multiplication
- Knapsack
- Grid dynamic programming
Expected skills: Define states and transitions for standard dynamic-programming problems.
Week 10: String & pattern matching
Topics covered
String & pattern matching
- Naive string matching
- Efficient string matching
- Text problems
Expected skills: Compare string-matching approaches and apply them to text.
Week 11: Flows, linear programming & complexity classes
Topics covered
Flows, linear programming & complexity classes
- Maximum flow and minimum cut
- Linear programming intuition
- P
- NP
- NP-completeness
Expected skills: Explain the roles of flow models, linear programming and complexity classes.
Week 12: Summary
Topics covered
Summary
- Consolidation
- Revision
Expected skills: Review algorithmic techniques and practise choosing an appropriate approach.
Quick revision map
PDSA topic distribution
Weeks 1–3: Programming and algorithm foundations
3 weeksPython, complexity, searching, sorting, data structures
Weeks 4–5: Graphs
2 weeksTraversals, DAGs, shortest paths, spanning trees
Weeks 6–7: Structured data and greedy methods
2 weeksUnion-find, heaps, BSTs, AVL trees, greedy design
Weeks 8–9: Algorithm design
2 weeksDivide and conquer, recurrences, dynamic programming
Weeks 10–11: Strings and advanced models
2 weeksPattern matching, flows, LP, complexity classes
Week 12: Revision
1 weekConsolidation and practice