Teach the same idea without “math mode”: run a mini-debugger that counts loop iterations and recursive calls.
This page shows a trace (what runs), a stack view (for recursion), and a line hit heatmap (which statements dominate).
The simulator limits trace length for huge runs and uses sampling when needed.
The line with the highest hit count usually explains the Big-O.