Course on writing efficient, high-performance software for scientific and engineering applications. Covers the theory and fundamentals underlying performant code, including algorithmic complexity, data structures, and type systems. Examines hardware from a programmer's perspective: processor architecture, memory hierarchy, cache behavior, and multicore execution, along with the use of profiling tools to measure and improve performance. Develops fluency in C++, Rust, and Python, with attention to ownership models, type systems, and performance trade-offs.
3 units · Letter or Credit/No Credit
Course on writing efficient, high-performance software for scientific and engineering applications. Covers the theory and fundamentals underlying performant code, including algorithmic complexity, data structures, and type systems. Examines hardware from a programmer's perspective: processor architecture, memory hierarchy, cache behavior, and multicore execution, along with the use of profiling tools to measure and improve performance. Develops fluency in C++, Rust, and Python, with attention to ownership models, type systems, and performance trade-offs.
Offered in Spring 2027 at Stanford University.