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.

Ctrl K
1 resources in this course · 12 syllabus weeks

Programming, Data Structures and Algorithms using Python

Diploma

Complete 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 weeks

Python, complexity, searching, sorting, data structures

Weeks 4–5: Graphs

2 weeks

Traversals, DAGs, shortest paths, spanning trees

Weeks 6–7: Structured data and greedy methods

2 weeks

Union-find, heaps, BSTs, AVL trees, greedy design

Weeks 8–9: Algorithm design

2 weeks

Divide and conquer, recurrences, dynamic programming

Weeks 10–11: Strings and advanced models

2 weeks

Pattern matching, flows, LP, complexity classes

Week 12: Revision

1 week

Consolidation and practice