You have spent many hours learning how to approximate differential equations on a grid and solve them — now it’s time to learn how to organise a large code base so that your hard‑won numerical methods remain readable, reusable, and easy to test. You’ll study a set of software design ideas that turn a messy script into a clean, flexible PDE framework. As a running example, we will build a library that prices two‑factor financial options, but the ideas apply to any computational science project.