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*x C-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.