From the internal format of a Python object through metaclasses, GUI development with Tkinter, and machine learning with scikit-learn — the language understood at the interpreter level.
Python-specific depth you won’t find in the market.
When you write x = 5, we show you the int object created in memory — its type pointer, its value, its reference count. Every statement is explained at the level of what the interpreter actually creates, binds, and garbage collects.
Not just “global and local.” You learn the four scopes (local, enclosing, global, built-in), the LEGB rule, how LHS and RHS name lookup differ, and why UnboundLocalError and free variable errors occur — with the fix for each.
Most Python courses stop at classes. We go through the full depth: iterators, context managers, decorators (function decorating function, class decorating class — all four combinations), descriptors, attribute management, and metaclasses. You understand how Python constructs its own type system.
Not just scripts and exercises. You build GUI applications with Tkinter, manage files and directories with the os and sys modules, create child processes and threads, persist data with pickle and shelve, and connect to databases with sqlite3.
You see the function object, the code object inside it, and the PVM bytecode that executes it. You understand what a function definition actually creates in memory and how the call mechanism works.
The course takes you from zero programming knowledge through NumPy, Pandas, Matplotlib, and scikit-learn — including the essential mathematics (linear algebra, statistics, probability) needed for machine learning. Not a separate ML course bolted on — an integrated progression.
Four phases across ~125 sessions, each building on the last.
Fundamentals, data types, control flow, procedural programming, scope architecture, functional programming. The language mastered from first principles.
File I/O, operating system interfaces (os and sys modules), process and thread management, data persistence, database connectivity, and GUI development with Tkinter.
OOP, operator overloading, inheritance, exception handling, iterators, context managers, decorators, descriptors, attribute management, and metaclasses.
NumPy, Pandas, Matplotlib, essential mathematics, and hands-on machine learning with scikit-learn — from data collection to trained models.
This is the full course content across ~125 weekday sessions.
From “what is computing?” to the internal format of a Python object — type, value, reference count, garbage collection, and the assignment statement understood at the interpreter level.
Branching, looping, and a systematic deep-dive into every built-in type — with every operation on str, list, tuple, dict, and set covered exhaustively.
if-else, if-elif-elsestr, tuple, list, dict, and setstr: concatenation, scalar multiplication, membership testing, indexing, slicing, index(), count(), strip(), split(), format(), join(), and all inspection methodsappend(), extend(), insert(), remove(), pop(), sort(), reverse(), copy(), clear()tuple: concatenation, multiplication, indexing, slicing, membership, index(), count()dict: adding/editing/removing key-value pairs, keys(), values(), items(), pop(), update(), get(), setdefault(), fromkeys()union(), intersection(), difference(), symmetric_difference(), all update variants, issubset(), issuperset(), isdisjoint(), add(), remove(), discard()The def statement understood at the memory level — function objects, code objects, PVM bytecode, the four Python scopes, and the LEGB lookup rule.
globals() and locals()or: cause and fixor: cause and fixnonlocal statements*args and **kwargs technique__code__, __name__, __dict__Comprehensions, lambda expressions, map, filter, reduce, generators, and the functools package — Python’s functional dimension.
lambdaThe os and sys packages — file I/O, directory management, process creation with fork/exec, thread management and synchronisation.
from ... import, aliasing with asos.fork()os.execve()os.wait()os.exit()Storing data beyond program lifetime with pickle, DBM, shelve, and sqlite3 — then building desktop GUI applications with Tkinter.
dump() and load() methodsThe class statement, operator overloading, inheritance, polymorphism, abstract classes, multiple inheritance, and the diamond problem — Python OOP understood from the foundation of its type system.
@classmethod and static methods with @staticmethod__add__, __sub__, __mul__, __truediv__, __floordiv__, __mod__, __and__, __or__, __abs__, __pow____getitem__ and __setitem____call____str__, __repr__ for print()__len__ for len()@abstractmethod from the abc packageabc.ABCMeta__bases__ and __mro__try-except, multiple except blocks, the as clause, generic handlerstry-except-else, try-except-finally, try-except-else-finallysys.exc_info() — the assert statementThe design patterns and protocols that separate a Python user from a Python engineer — iterators, context managers, all four decorator combinations, the descriptor protocol, and metaclasses.
fget, fset, fdel — getter(), setter(), deleter() — creating managed attributesThe ndarray at the heart of Python’s scientific computing stack — creation, operations, indexing, broadcasting, vectorisation, and structured arrays.
Series, DataFrames, indexing, alignment, function application, sorting, correlation, handling missing data, and I/O across CSV, HTML, XML, Excel, and JSON.
The three-layer architecture of Matplotlib — from simple line charts through 3D surfaces, with full control over every visual element.
From essential mathematics through the ML development cycle — data collection, feature engineering, model training, and evaluation using scikit-learn’s estimator-transformer-predictor architecture.
Batch 51 starts 21st April 2026. No pre-requisites. First week is open for all.