JuliaCon 2025

Julia in Academia: Textbooks, Stanford Courses, and the Future
2025-07-23 , Main Room 6

In three recent textbooks on optimization, decision-making, and safety validation, we use Julia instead of pseudocode to present fully executable and concise algorithm descriptions. This talk explores why we chose Julia and how we auto-generate entire textbooks using Julia and LaTeX. We will also discuss how Julia and Pluto support interactive learning and automate grading in Stanford graduate courses—along with exploring Julia's potential future roles in academia.


Julia is no stranger to academia—seeing as it grew out of MIT and was initially adopted by the scientific community. In this talk, we discuss how we have been using Julia for both writing textbooks and for teaching graduate-level courses in computer science and aeronautics/astronautics engineering at Stanford University. Based on our experience as educators, we will discuss the good and not-so-good cases for Julia, and the potential future roles for Julia in academia.

In the first part of the talk, we will discuss why we chose Julia as the algorithm description language in three MIT Press textbooks: Algorithms for Optimization (2019), Algorithms for Decision Making (2022), and Algorithms for Validation (2025). Not only do we present the algorithms in Julia, but we generate the figures and examples using Julia's pythontex integration. This allows us to present concise algorithms to the reader and display figures and examples using the exact algorithms within the text. The textbooks use a custom Tufte-style LaTeX template that we've open sourced (sisl/tufte_algorithms_book). We will also highlight the features of Julia that enable concise algorithms in print, including multiple dispatch, auto-differentiation, and full Unicode support. Along with Julia-specific features, we will showcase packages in the ecosystem that seamlessly integrate into the algorithms, including LazySets, IntervalArithmetic, JuMP, and Distributions.

The second part of the talk will focus on how we use Julia in both our lectures and assignments at Stanford. A new course we are teaching at Stanford titled Validation of Safety-Critical Systems follows our validation textbook and heavily uses Julia and Pluto.jl in lecture materials and course assignments. Through light-weight interactive Pluto notebooks, we demonstrate complicated topics to students during lecture which also allows them to explore the topics on their own time after class. Notably, we also use Pluto for four programming assignments. We will discuss why we ultimately chose to require Julia and use Pluto, and the framework we implemented to obfuscate hidden code from the students, to test their work locally, and integrate into Gradescope for auto-grading and friendly leaderboard competitions.

Finally, we will talk about the future of Julia in academia—from teaching, to assignments, to textbooks, and research papers. We will showcase recent development of a prototype package we use for lecture material, PlutoPapers.jl, and the potential for interactive research papers written entirely in Julia, Markdown, and LaTeX (mossr/PlutoPapers.jl).

Robert Moss just received his Ph.D. in computer science from Stanford University where his thesis studied algorithms for safe planning under uncertainty using surrogate models. Robert was an associate staff member at MIT Lincoln Laboratory where he was on the team that designed, developed, and validated the next-generation aircraft collision avoidance system (ACAS X) for commercial aircraft, unmanned vehicles, and rotorcraft. Robert has been a Julia user since 2013 and led the use of Julia as the specification language for ACAS X.