  The Simplex algorithm for solving linear programs-one of Computing in Science
& Engineering's top 10 most influential algorithms of the 20th century-is an
important topic in many algorithms courses. While the Simplex algorithm relies
on intuitive geometric ideas, the computationally-involved mechanics of the
algorithm can obfuscate a geometric understanding. In this paper, we present
gilp, an easy-to-use Simplex algorithm visualization tool designed to
explicitly connect the mechanical steps of the algorithm with their geometric
interpretation. We provide an extensive library with example visualizations,
and our tool allows an instructor to quickly produce custom interactive HTML
files for students to experiment with the algorithm (without requiring students
to install anything!). The tool can also be used for interactive assignments in
Jupyter notebooks, and has been incorporated into a forthcoming Data Science
and Decision Making interactive textbook. In this paper, we first describe how
the tool fits into the existing literature on algorithm visualizations: how it
was designed to facilitate student engagement and instructor adoption, and how
it substantially extends existing algorithm visualization tools for Simplex. We
then describe the development and usage of the tool, and report feedback from
its use in a course with roughly 100 students. Student feedback was
overwhelmingly positive, with students finding the tool easy to use: it
effectively helped them link the algebraic and geometrical views of the Simplex
algorithm and understand its nuances. Finally, gilp is open-source, includes an
extension to visualizing linear programming-based branch and bound, and is
readily amenable to further extensions.
