explicit vs implicit schemes
When you step a time-dependent PDE forward, there is a fork in the road. You can write each new value directly in terms of values you already know — an EXPLICIT scheme, where the future is computed from the past in plain arithmetic. Or you can write the equation so that the new values appear on both sides, tangled together — an IMPLICIT scheme, where you must solve a system of equations to extract the new row. The whole practical trade-off of finite differences for time-dependent problems lives in this choice.
An explicit scheme like FTCS gives an update of the form u_j^{n+1} = (something built only from u^n). Each new value is read off in O(1) work; a full time step costs just O(N) for N nodes and is trivial to program. The catch is stability: explicit schemes are CONDITIONALLY stable, bound by a CFL-type restriction (r = alpha*k/h^2 <= 1/2 for the heat equation, c*k/h <= 1 for waves), so the time step is capped, sometimes brutally. An implicit scheme like BTCS or Crank-Nicolson couples the new neighbours, so a time step requires solving a linear system A u^{n+1} = b — for a 1D problem this is a cheap tridiagonal solve (O(N) via the Thomas algorithm), but in 2D/3D it is a large sparse system needing iterative or multigrid solvers. The payoff is UNCONDITIONAL stability: no time-step limit from stability, only from accuracy.
So the rule of thumb: explicit is cheap per step but the step is capped (great when the natural time scale already forces small steps, e.g. fast wave propagation you want resolved anyway); implicit is expensive per step but you can take big ones (great when you would otherwise be forced into absurdly tiny steps, above all for STIFF problems where the explicit limit is thousands of times smaller than accuracy needs). The honest framing: neither is universally better. You pick explicit when steps are small for physical reasons and you value simplicity; you pick implicit when stability would otherwise strangle you, accepting the per-step solve as the price of freedom. Many production codes use both — explicit for the non-stiff parts and implicit for the stiff ones (IMEX schemes).
Diffusion with alpha = 1, h = 0.01: FTCS's stability cap is k <= h^2/2 = 5*10^-5, so reaching t = 1 needs at least 20000 explicit steps. BTCS or Crank-Nicolson can take k = 0.01 (1000x larger), finishing in 100 steps — each costing a tridiagonal solve, but vastly fewer of them. If accuracy only needs k around 0.01, the implicit route wins decisively.
Explicit: cheap step, capped size. Implicit: costly step, no stability cap.
Unconditional stability of an implicit scheme is NOT a license for arbitrarily large steps — accuracy still degrades as k grows, and the per-step solve gets harder to converge when the system is poorly conditioned. Conversely, an explicit scheme's small step is sometimes exactly what physics needs anyway, in which case its simplicity wins. The choice is a cost-vs-stability trade, not a verdict on quality.