Data structures and algorithms in Python — class-based ADTs, analysis, and practice with stdlib alternatives.
- Duration
- 14 weeks
- Certificates
- 2
- CO threshold
- 70%
- Price
- ₹5,000 (one-time access)
Tagline: Data structures and algorithms in Python — class-based ADTs, analysis, and practice with stdlib alternatives.
| Field |
Value |
| Course code |
PY-DS-A |
| Duration |
14 weeks |
| Credits |
4 |
| Compliance |
NBA-aligned OBE |
| Prerequisite |
PY-FUND-A or equivalent Python |
| Publication |
published |
| Price |
INR 5000 |
| DB snapshot |
2026-10-08T15:04:29.983Z |
Course objective
Inhabit, implement, analyze, and practice fundamental data structures and algorithms in Python with class-based ADTs, then choose stdlib alternatives wisely — after completing Python OOP Professional.
Course outcomes (CO1–CO6)
| CO |
Bloom |
Weight |
Statement |
| CO1 |
analyze |
17% |
Analyze algorithm cost (Big-O) and design recursive solutions with clear base/recursive cases. |
| CO2 |
apply |
17% |
Implement array- and link-based sequence ADTs (list model, stack, queue, deque, linked lists) and compare to stdlib. |
| CO3 |
apply |
16% |
Build tree and priority-queue/heap structures with traversals and heap operations. |
| CO4 |
apply |
17% |
Implement maps/hash tables and binary search trees; explain collision and balance trade-offs. |
| CO5 |
analyze |
16% |
Apply sorting/selection algorithms and light text algorithms; relate to list.sort / bisect. |
| CO6 |
evaluate |
17% |
Represent graphs, run DFS/BFS and lite shortest-path/MST ideas, and complete integrative capstones. |
Activity totals (live from platform)
| Metric |
Count |
| Units / chapters |
16 |
| Topics |
167 |
| Topic quiz activities |
1018 |
| MCQ questions |
1018 |
| Practice labs |
105 |
| Evaluated coding labs |
154 |
| Instructional content blocks |
983 |
Certificates & earning criteria
| Certificate |
CO scope |
Evaluated lab quota |
CO attainment |
Gate |
| Python DS Foundations |
CO1–CO3 |
≥ 90% |
≥ 70% |
Python DS Foundations summative quiz |
| Python DS Professional |
CO1–CO6 |
≥ 95% |
≥ 70% |
Python DS Professional end-of-course capstone |
Unit syllabus (unit → topics → activities)
Unit 1 — Algorithm analysis
Unit totals: 6 topics · 42 MCQ questions · 0 practice · 3 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Timing experiments & limits |
8 |
0 |
0 |
— |
| 2 |
Growth functions intuition |
6 |
0 |
0 |
— |
| 3 |
Big-O notation |
6 |
0 |
1 |
— |
| 4 |
Analyzing loops & simple algorithms |
6 |
0 |
1 |
— |
| 5 |
Justification lite |
6 |
0 |
1 |
— |
| 6 |
Interview prep: algorithm analysis |
10 |
0 |
0 |
— |
Unit 2 — Recursion
Unit totals: 11 topics · 70 MCQ questions · 7 practice · 10 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Why recursion exists |
6 |
0 |
0 |
— |
| 2 |
Inhabit: base vs recursive case |
6 |
1 |
0 |
— |
| 3 |
Inhabit: the call stack as a desk |
6 |
1 |
0 |
— |
| 4 |
Paper: recursion tree on a named n |
6 |
0 |
0 |
— |
| 5 |
Contrast: wrong base / infinite recursion |
6 |
1 |
0 |
— |
| 6 |
Factorial & linear recursion |
6 |
1 |
1 |
— |
| 7 |
Binary search recursively |
6 |
1 |
1 |
— |
| 8 |
Recursion cost & pitfalls |
6 |
0 |
1 |
— |
| 9 |
Multiple recursion & design recipe |
6 |
0 |
1 |
— |
| 10 |
Practice playground |
6 |
2 |
6 |
— |
| 11 |
Interview prep: recursion |
10 |
0 |
0 |
— |
Unit 3 — Array sequences & list
Unit totals: 11 topics · 70 MCQ questions · 6 practice · 12 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Why sequences & Python sequence types |
6 |
0 |
0 |
— |
| 2 |
Inhabit: referential arrays |
6 |
1 |
0 |
— |
| 3 |
Inhabit: compact vs referential |
6 |
0 |
0 |
— |
| 4 |
Paper: dynamic array growth |
6 |
0 |
0 |
— |
| 5 |
Contrast: insert-front cost |
6 |
1 |
1 |
— |
| 6 |
Dynamic array class & amortization |
6 |
1 |
2 |
— |
| 7 |
Cost of list operations |
6 |
0 |
2 |
— |
| 8 |
Apps: scoreboard & insert-sort peek |
6 |
1 |
1 |
— |
| 9 |
Stdlib honesty: when list is enough |
6 |
0 |
0 |
— |
| 10 |
Practice playground |
6 |
2 |
6 |
— |
| 11 |
Interview prep: arrays & list |
10 |
0 |
0 |
— |
Unit 4 — Stacks
Unit totals: 10 topics · 64 MCQ questions · 7 practice · 12 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Why stacks (LIFO map) |
6 |
0 |
0 |
— |
| 2 |
Inhabit: Stack ADT |
6 |
1 |
0 |
— |
| 3 |
Paper: push/pop on a named stack |
6 |
0 |
0 |
— |
| 4 |
Contrast: LIFO vs FIFO misuse |
6 |
1 |
0 |
— |
| 5 |
Array-based stack (class) |
6 |
1 |
2 |
— |
| 6 |
Apps: reverse a sequence |
6 |
1 |
1 |
— |
| 7 |
Apps: matching parentheses |
6 |
1 |
1 |
— |
| 8 |
Stdlib honesty: list as stack |
6 |
0 |
0 |
— |
| 9 |
Practice playground |
6 |
2 |
8 |
— |
| 10 |
Interview prep: stacks |
10 |
0 |
0 |
— |
Unit 5 — Queues & deques
Unit totals: 11 topics · 70 MCQ questions · 8 practice · 12 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Why queues (FIFO map) |
6 |
0 |
0 |
— |
| 2 |
Inhabit: Queue ADT |
6 |
1 |
0 |
— |
| 3 |
Contrast: FIFO vs LIFO |
6 |
1 |
0 |
— |
| 4 |
Paper: circular array queue |
6 |
0 |
0 |
— |
| 5 |
Circular array queue class |
6 |
1 |
2 |
— |
| 6 |
Queue apps (buffer / line) |
6 |
1 |
1 |
— |
| 7 |
Deque ADT & class |
6 |
1 |
1 |
— |
| 8 |
Stdlib honesty: collections.deque |
6 |
0 |
1 |
— |
| 9 |
Choose array vs deque |
6 |
1 |
0 |
— |
| 10 |
Practice playground |
6 |
2 |
7 |
— |
| 11 |
Interview prep: queues & deques |
10 |
0 |
0 |
— |
Unit 6 — Singly linked lists
Unit totals: 12 topics · 76 MCQ questions · 8 practice · 13 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Why links vs contiguous arrays |
6 |
0 |
0 |
— |
| 2 |
Inhabit: Node and next |
6 |
1 |
0 |
— |
| 3 |
Inhabit: head, empty, one-node |
6 |
1 |
0 |
— |
| 4 |
Paper: insert and delete walks |
6 |
0 |
0 |
— |
| 5 |
Contrast: lost node / bad link update |
6 |
1 |
0 |
— |
| 6 |
Singly linked list class |
6 |
1 |
2 |
— |
| 7 |
Linked stack |
6 |
1 |
1 |
— |
| 8 |
Linked queue |
6 |
1 |
1 |
— |
| 9 |
Circular list & round-robin lite |
6 |
0 |
1 |
— |
| 10 |
SLL vs array sequences |
6 |
0 |
0 |
— |
| 11 |
Practice playground |
6 |
2 |
8 |
— |
| 12 |
Interview prep: singly linked lists |
10 |
0 |
0 |
— |
Unit 7 — Doubly linked lists
Unit totals: 10 topics · 64 MCQ questions · 6 practice · 12 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Why prev pointers |
6 |
0 |
0 |
— |
| 2 |
Inhabit: doubly linked node |
6 |
1 |
0 |
— |
| 3 |
Paper: insert between neighbors |
6 |
0 |
0 |
— |
| 4 |
Contrast: SLL vs DLL delete-middle |
6 |
1 |
0 |
— |
| 5 |
Doubly linked list class |
6 |
1 |
2 |
— |
| 6 |
Deque via doubly linked list |
6 |
1 |
1 |
— |
| 7 |
Positional list ADT lite |
6 |
0 |
1 |
— |
| 8 |
Stdlib honesty & link vs array |
6 |
0 |
0 |
— |
| 9 |
Practice playground |
6 |
2 |
8 |
— |
| 10 |
Interview prep: doubly linked lists |
10 |
0 |
0 |
— |
Unit 8 — Trees — structure
Unit totals: 12 topics · 70 MCQ questions · 7 practice · 9 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Why trees (hierarchy map) |
6 |
0 |
0 |
— |
| 2 |
Inhabit: root parent child leaf depth height |
6 |
1 |
0 |
— |
| 3 |
Inhabit: general vs binary tree |
6 |
1 |
0 |
— |
| 4 |
Paper: named hierarchy desk |
6 |
0 |
0 |
— |
| 5 |
Contrast: tree vs cyclic graph |
6 |
1 |
0 |
— |
| 6 |
Binary tree ADT & properties |
6 |
0 |
0 |
— |
| 7 |
Linked binary tree implementation |
6 |
1 |
1 |
— |
| 8 |
Array representation lite |
6 |
1 |
1 |
— |
| 9 |
General tree linked lite |
6 |
0 |
1 |
— |
| 10 |
Stdlib honesty for trees |
6 |
0 |
0 |
— |
| 11 |
Practice playground |
0 |
2 |
6 |
— |
| 12 |
Interview prep: tree structure |
10 |
0 |
0 |
— |
Unit 9 — Tree traversals
Unit totals: 11 topics · 64 MCQ questions · 8 practice · 9 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Why traversals |
6 |
0 |
0 |
— |
| 2 |
Inhabit: preorder & postorder |
6 |
1 |
0 |
— |
| 3 |
Inhabit: BFS level order |
6 |
1 |
0 |
— |
| 4 |
Paper: trace four orders on one tree |
6 |
0 |
0 |
— |
| 5 |
Contrast: wrong order breaks expression eval |
6 |
1 |
0 |
— |
| 6 |
Implement preorder postorder BFS |
6 |
1 |
1 |
— |
| 7 |
Inorder & BST peek |
6 |
1 |
1 |
— |
| 8 |
Expression tree case study lite |
6 |
1 |
1 |
— |
| 9 |
Boundary: advanced tours survey only |
6 |
0 |
0 |
— |
| 10 |
Practice playground |
0 |
2 |
6 |
— |
| 11 |
Interview prep: traversals |
10 |
0 |
0 |
— |
Unit 10 — Priority queues & heaps
Unit totals: 11 topics · 70 MCQ questions · 7 practice · 10 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Why priority (not FIFO) |
6 |
0 |
0 |
— |
| 2 |
Inhabit: Priority Queue ADT |
6 |
1 |
0 |
— |
| 3 |
Contrast: unsorted vs sorted list PQ |
6 |
1 |
0 |
— |
| 4 |
Paper: heap array parent/child |
6 |
0 |
0 |
— |
| 5 |
Up-heap & down-heap |
6 |
1 |
1 |
— |
| 6 |
Heap PQ class & analysis |
6 |
1 |
1 |
— |
| 7 |
Heap-sort lite |
6 |
0 |
1 |
— |
| 8 |
Stdlib honesty: heapq |
6 |
1 |
1 |
— |
| 9 |
Practice playground |
0 |
2 |
6 |
— |
| 10 |
Python DS Foundations summative quiz |
12 |
0 |
0 |
— |
| 11 |
Interview prep: heaps |
10 |
0 |
0 |
— |
Unit 11 — Maps & hash tables
Unit totals: 11 topics · 64 MCQ questions · 7 practice · 9 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Why maps (key to value) |
6 |
0 |
0 |
— |
| 2 |
Inhabit: Map ADT |
6 |
1 |
0 |
— |
| 3 |
Paper: word-count desk |
6 |
1 |
0 |
— |
| 4 |
Hash functions inhabit |
6 |
0 |
0 |
— |
| 5 |
Contrast: collisions & load factor |
6 |
1 |
0 |
— |
| 6 |
Hash table implementation |
6 |
1 |
1 |
— |
| 7 |
Chaining vs open addressing lite |
6 |
0 |
1 |
— |
| 8 |
Sets & multisets lite |
6 |
1 |
1 |
— |
| 9 |
Stdlib honesty: dict & set |
6 |
0 |
0 |
— |
| 10 |
Practice playground |
0 |
2 |
6 |
— |
| 11 |
Interview prep: hashing |
10 |
0 |
0 |
— |
Unit 12 — Search trees
Unit totals: 11 topics · 66 MCQ questions · 7 practice · 9 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Why ordered maps & BST |
6 |
0 |
0 |
— |
| 2 |
Inhabit: BST search property |
6 |
1 |
0 |
— |
| 3 |
Paper: insert & search walk |
6 |
0 |
0 |
— |
| 4 |
Contrast: sorted inserts imbalance |
6 |
1 |
0 |
— |
| 5 |
BST search & insert |
6 |
1 |
1 |
— |
| 6 |
BST delete cases |
6 |
1 |
1 |
— |
| 7 |
Why balance? Framework peek |
6 |
0 |
0 |
— |
| 8 |
AVL rotations lite |
6 |
1 |
1 |
— |
| 9 |
Advanced trees survey MCQ |
8 |
0 |
0 |
— |
| 10 |
Practice playground |
0 |
2 |
6 |
— |
| 11 |
Interview prep: BST & balance |
10 |
0 |
0 |
— |
Unit 13 — Sorting & selection
Unit totals: 11 topics · 64 MCQ questions · 7 practice · 10 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Why study sorting |
6 |
0 |
0 |
— |
| 2 |
Inhabit: comparison model |
6 |
1 |
0 |
— |
| 3 |
Paper: merge on a named array |
6 |
0 |
0 |
— |
| 4 |
Merge-sort |
6 |
1 |
1 |
— |
| 5 |
Quick-sort |
6 |
1 |
1 |
— |
| 6 |
Contrast: worst-case quick vs merge |
6 |
1 |
0 |
— |
| 7 |
Lower bound & bucket/radix lite |
6 |
0 |
0 |
— |
| 8 |
Stdlib honesty: list.sort |
6 |
0 |
1 |
— |
| 9 |
Quick-select lite |
6 |
1 |
1 |
— |
| 10 |
Practice playground |
0 |
2 |
6 |
— |
| 11 |
Interview prep: sorting |
10 |
0 |
0 |
— |
Unit 14 — Graphs — search
Unit totals: 12 topics · 70 MCQ questions · 10 practice · 10 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Why graphs |
6 |
0 |
0 |
— |
| 2 |
Inhabit: vertex edge directed |
6 |
2 |
0 |
— |
| 3 |
Inhabit: path cycle connected |
6 |
1 |
0 |
— |
| 4 |
Paper: named city graph |
6 |
0 |
0 |
— |
| 5 |
Contrast: adj list vs matrix |
6 |
1 |
0 |
— |
| 6 |
Graph ADT & adjacency structures |
6 |
1 |
1 |
— |
| 7 |
DFS & extensions |
6 |
1 |
1 |
— |
| 8 |
BFS |
6 |
1 |
1 |
— |
| 9 |
DAGs & topological order |
6 |
1 |
1 |
— |
| 10 |
Stdlib honesty for graphs |
6 |
0 |
0 |
— |
| 11 |
Practice playground |
0 |
2 |
6 |
— |
| 12 |
Interview prep: graph search |
10 |
0 |
0 |
— |
Unit 15 — Graphs — weighted lite
Unit totals: 9 topics · 52 MCQ questions · 7 practice · 8 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Why edge weights |
6 |
0 |
0 |
— |
| 2 |
Inhabit: shortest path vs BFS |
6 |
2 |
0 |
— |
| 3 |
Paper: Dijkstra on a small desk |
6 |
0 |
0 |
— |
| 4 |
Dijkstra lite |
6 |
1 |
1 |
— |
| 5 |
MST Prim or Kruskal one deep |
6 |
1 |
1 |
— |
| 6 |
Union-find peek |
6 |
1 |
0 |
— |
| 7 |
Boundary: dense theory omit |
6 |
0 |
0 |
— |
| 8 |
Practice playground |
0 |
2 |
6 |
— |
| 9 |
Interview prep: weighted graphs |
10 |
0 |
0 |
— |
Unit 16 — Capstone & synthesis
Unit totals: 8 topics · 42 MCQ questions · 3 practice · 6 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
References & GC intuition |
6 |
0 |
0 |
— |
| 2 |
Choosing structures — decision table |
6 |
1 |
0 |
— |
| 3 |
Capstone A — multi-ADT project |
0 |
0 |
1 |
— |
| 4 |
Capstone B — graph or sort+structure |
0 |
0 |
1 |
— |
| 5 |
Capstone reflection |
8 |
0 |
0 |
— |
| 6 |
Practice playground |
0 |
2 |
4 |
— |
| 7 |
Python DS Professional summative |
12 |
0 |
0 |
— |
| 8 |
Interview prep: course synthesis |
10 |
0 |
0 |
— |
Counts are from the live course catalog. MCQs = questions in topic checkpoint quizzes. Practice = formative run-only or SQL practice lane. Evaluated = submit-graded labs that count toward progress and certificates.
← All paid courses · LLM site guide