Teaching Computational Skills with GEANT4
I wrote a set of open GEANT4 radiation labs while teaching at Cecil College, and 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 Engineering 101 students was to get them some experience with tools and techniques that are note typically part of an intro course, but that I feel are more valuable today than they have ever been:
- 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 software 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.
hover / hold for original
hover / hold for originalWhy 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).

