Chapter 1 — Teaching Notes
One-line purpose. Replace the students' inherited caricature of Fortran with an accurate picture of a living, dominant, specialist language — and motivate the entire course — before any code is written.
Key ideas to emphasize
- The "two Fortrans." This is the load-bearing idea of the chapter and arguably of the whole course. Students arrive picturing FORTRAN 77; make the FORTRAN-77-vs-Fortran-90+ distinction concrete and repeat it until it sticks. The Latin/Italian analogy lands well.
- Why it's fast, honestly. Arrays as first-class objects, and the no-aliasing rule. Do not let this
become hand-waving — the
y = y + a*xC-vs-Fortran contrast in §1.3 is the anchor; return to it. - The honesty discipline. Model it explicitly: we do NOT claim "Fortran runs every supercomputer," and we do NOT run code to get outputs. Students should leave knowing that precision of claim is a professional value, not pedantry.
- The ethic. "Never rewrite what you can refactor" — plant it here; it pays off in Part IV.
Misconceptions to preempt
- "Fortran is low-level / close to assembly." (It is high-level; that is why it optimizes well.)
- "Modern Fortran = FORTRAN 77." (No — larger gap than C to C++.)
- "NumPy proves you never need Fortran." (NumPy is compiled C/Fortran.)
- "Fortran is dead because I never see it." (Invisibility ≠ absence; it lives in HPC.)
A live demonstration (5 minutes)
Open godbolt.org, select gfortran, and paste the two-line y = y + a*x array statement, then paste the
equivalent C loop with and without restrict. Students cannot read assembly yet, but they can count
instructions and see the vectorized Fortran is shorter — a vivid, wordless version of §1.3. (You are not
teaching assembly; you are teaching that the language choice changes what the compiler produces.)
Class-time budget (~50 min)
- 10 min: the myth and the "two Fortrans" (§1.1).
- 10 min: where Fortran runs; the honest TOP500 claim (§1.2).
- 15 min: why it's fast — arrays + no aliasing, with the live demo (§1.3).
- 10 min: why it persists + the myth debunked (§1.4–1.5).
- 5 min: the course map, tracks, and launch the heat-solver project (§1.6).
Prerequisites to review
None technical. Confirm students can open a terminal before Chapter 2; assign Exercise 1.27
(gfortran --version) as a pre-Chapter-2 check so installation problems surface early.
Connections
Forward: Ch. 5 and Ch. 27 (arrays/speed), Ch. 15 (f2py), Ch. 21 (LAPACK), Part IV (legacy), Part VIII (parallel). This chapter foreshadows all of them; naming the payoffs now increases motivation.