Tutorials

Thinking in Arrays: An Introduction to Array-Oriented Programming

Thursday, May 14th, 2026 1:30 p.m.–5 p.m. in Room 101A

Presented by

Iason Krommydas

Experience Level:

Some experience

Description

Python has become the dominant language in scientific computing, even in domains that demand high performance. This is largely due to the power of array-oriented programming, which separates complex problems into two parts: lightweight bookkeeping and heavy numerical computation. The latter is handled efficiently by vectorized operations that rely on fast, precompiled libraries.

This tutorial introduces array-oriented programming as a distinct mindset that encourages new ways of structuring problems. Rather than focusing on any one library, we’ll cover general techniques that apply to any array library with a particular focus on NumPy and JAX. You'll work in groups on three class projects: Conway's Game of Life using arrays, just-in-time (JIT) compilation for the Mandelbrot set, and exploring data in ragged arrays.

Array-oriented programming is a paradigm in its own right, challenging us to think about problems in a different way. From APL in 1966 to NumPy and ML libraries today, most users of array-oriented programming are scientists, analyzing or simulating data. This tutorial focuses on the thought process: all of the problems are to be solved in an imperative way (for loops) and an array-oriented way.

Search