Maya had not only solved it. She had included an animation (as a series of PNGs with a note: “See the GIF in the accompanying folder” ) showing the wave propagating, reflecting, and forming standing waves. At the bottom of the solution, she had written: “Dr. Finch—this is the problem that made me fall in love with numerical methods. Watching the membrane vibrate, knowing I wrote the physics and the code from scratch… it felt like magic. Thank you for never giving me the answer. Thank you for making me find it myself.” Alistair wiped his glasses. He was not crying. Professors do not cry. He was… experiencing a convergence of emotions.
Then came the email that changed his final years of teaching. Maya had not only solved it
For (LU decomposition of a nearly singular matrix), she deliberately broke the code by introducing a zero pivot, then showed how to use partial pivoting, and finally demonstrated np.linalg.solve as the safe, practical choice—but only after understanding the algorithm. Finch—this is the problem that made me fall
And so, every semester, Alistair’s inbox flooded with the same plea: “Professor Finch, I did Problem 4.17 on cubic splines. My coefficients are slightly different from the back of the book. Is my code wrong, or is the book’s answer rounded?” Thank you for making me find it myself
Alistair opened it. He scrolled to the last problem in the book—Chapter 10, Problem 10.4: “Solve the 2D wave equation on a rectangular membrane with fixed boundaries using the finite difference method with a time step that satisfies the CFL condition.”
She sent the final version to Alistair at 11:47 PM on a Friday. The subject line: “Last assignment submitted.”