Syllabus: A Three-Semester Sequence in Scientific Computing with Fortran

This maps the book onto a full three-course sequence, the way a computational-science program might teach it. Each semester is ~14 weeks. The running heat-solver project is the spine; each semester ends with a project milestone.

Semester 1 — Foundations and Modern Fortran (Parts I–II, Chapters 1–13)

Goal: a student who can write correct, well-structured modern Fortran programs.

Weeks Chapters Topic
1 1–2 Why Fortran; toolchain, compile–link–run, implicit none
2–3 3–4 Types, kinds, arithmetic; control flow
4–5 5 Arrays (spend real time here — it is the pivotal chapter)
6 6–7 Procedures and intent; I/O and namelist
7 Midterm; review
8–9 8–9 Modules; derived types
10–11 10–11 Object orientation; pointers vs. allocatable
12 12–13 Strings; error handling and debugging
13–14 Project milestone 1: a modular serial program (solver scaffold through Chapter 13); final exam

Assessment: weekly problem sets (even, un-daggered exercises), midterm, final, project milestone 1.

Semester 2 — Interoperability, Legacy, and Numerical Methods (Parts III–VI, Chapters 14–26)

Goal: a student who can connect Fortran to the ecosystem, modernize old code, and implement real numerical methods.

Weeks Chapters Topic
1–2 14–15 C interop (iso_c_binding); Python interop (f2py) — measure the speedup
3 16 The ecosystem: LAPACK/BLAS, fpm, stdlib, tools
4–5 17–19 Reading, modernizing, and translating FORTRAN 77
6 20 Floating point (the ideas the rest of the semester rests on)
7 Midterm
8–9 21–22 Linear algebra with LAPACK; integration and differentiation
10–11 23–24 ODEs; PDEs and finite differences (the solver's numerical core)
12–13 25–26 Scientific data formats; visualization output (VTK/ParaView)
14 Project milestone 2: a correct, validated, visualized serial solver; final exam

Assessment: problem sets, a modernization assignment (Part IV), midterm, final, project milestone 2 (validate against the analytical steady state; produce a ParaView figure).

Semester 3 — Performance and Parallelism (Parts VII–X, Chapters 27–40)

Goal: a student who can make code fast and run it in parallel across a cluster.

Weeks Chapters Topic
1–2 27–28 Why Fortran is fast; profiling and benchmarking
3–4 29–30 Optimization techniques; compiler flags
5 31 Why parallel; Amdahl's Law
6–7 32–33 Coarrays; OpenMP
8 Midterm
9–10 34–35 MPI; GPU computing
11 36–37 Anatomy of real scientific code; testing and software engineering
12–13 38 Capstone: the complete parallel simulation, presented as a paper
14 39–40 Fortran 2023 and beyond; careers; wrap-up

Assessment: profiling/optimization lab, a parallelization assignment, midterm, and the capstone project (Chapter 38) as the final deliverable — graded with rubrics/project-rubric.md.

Notes

  • If a program has cluster access, schedule the MPI (Chapter 34) lab there; otherwise run MPI as multiple local processes.
  • Part X (Chapters 39–40) is deliberately light — a good place to invite a guest speaker from a national lab, weather service, or aerospace firm.