Teaching Computational Skills with GEANT4
I wrote a set of open GEANT4 radiation labs while teaching, and half-taught them a few times before I left for Such Software. The framing matters: these are not really radiation-physics labs. They are computational-skills labs that happen to use radiation transport as the subject. The intent for PHE 101 students was to get them through the mechanics that no one in an intro course ever actually shows you:
- Compile software from source. Configure, build, deal with a missing dependency, end up with a binary that runs. For a lot of students this is the first time code is a thing you build rather than a thing that magically exists.
- Run a CLI program. Arguments, flags, an input file in, an output file out. No GUI, no hand-holding.
- Parse data out of an output file. Real tools emit text, not a tidy spreadsheet. Reading a results file and pulling numbers out of it is half of computational work.
- Plot with matplotlib. Turn those numbers into a figure you can reason about.
- Analyze with pandas. Load, filter, group, and summarize, instead of doing it by hand.
The radiation simulation gives all of that a concrete, non-toy payoff: you set up a source and a target, run it, parse the output, and an attenuation curve falls out that you then fit. The skills transfer to anything; the physics makes them stick.
Why GEANT4
GEANT4 (GEometry ANd Tracking) is CERN's open-source C++ toolkit for simulating particles through matter. Same fundamental job as MCNP, different constraints. The reason I reached for it in a classroom is mundane: it is open source and installs on a student laptop. MCNP is export-controlled and distributed through RSICC, which makes handing it to a room of undergraduates a non-starter. Neither tool is "better." MCNP has the validation pedigree for criticality and reactor work; GEANT4 is the one you can actually put in a student's hands.
The C++ toolkit model also helps the teaching goal. Because you build geometry, source, physics list, and scoring as code rather than a fixed input deck, the lab is already a programming exercise. The student is compiling and running something real, not filling in a form.
Use them
The labs are open. If you teach intro physics, health physics, or anything that should include a first real taste of computational work, take them, fork them, and tell me what is missing. The background that taught me this is on my Google Scholar page. I wrote about leaving teaching for the studio in Founder Mode (Again).