Below are several programs that I have made in the course of my teaching and research, separated more-or-less by topic.

Some are incredibly particular to my corners of research and others are of more general interest.

Whenever possible, programs are written using the SageMath programming language and run in-browser via the SageMathCell. Source code for sage programs can be obtained in the html.

Some programs are only available as Mathematica CDFs, with source code available upon request.

Some are incredibly particular to my corners of research and others are of more general interest.

Whenever possible, programs are written using the SageMath programming language and run in-browser via the SageMathCell. Source code for sage programs can be obtained in the html.

Some programs are only available as Mathematica CDFs, with source code available upon request.

The Heisenberg Group

- Malcifyer: Calculates the Mal'cev normal form of elements in the discrete Heisenberg group.
- Path Grapher: Graphs paths in the continuous Heisenberg group.
- Heisenberg Renders: 3D models for visualizing the Heisenberg group that I made for my dissertation work.

HNN Extensions of $\mathbb{Z}^m$

- Horocyclic Word Simplifier: Simplifies spellings of elements in the horocyclic subgroup of
*any*HNN extension of $\mathbb{Z}^3$. - McCann-Schofield Reduction Algorithm: Gives the word length for a horocyclic element $a^k \in BS(p,q)$ for *most* combinations of $p$ and $q$. (some debugging needed)
- Cubing Growth Calculator: Calculates the horocyclic growth series for the groups $\mathbb{Z}^3*_{g \mapsto g^3}$.

Linear Algebra

- Eigenspace Visualizer(Mathematica cdf): Input a $2 \times 2$ matrix $A$ and this will graph its eigenspaces. You may click anywhere in the graph to draw a vector $v$, and $Av$ will be displayed. Beneath the graph the Eigenvalues are listed with an associated eigenvector for each.

Statistics

- ANOVA simulator (Mathematica cdf): Simulates Anova by generating $4$ data sets of size $n$ from normal distributions with means $\mu_1$, $\mu_2$, $\mu_3$ and $\mu_4$ and standard deviation $\sigma$ (all are manipulable sliders except the number of groups which is fixed at 4). The program graphs the boxplots side-by-side and displays all sample means, all sample standard deviations, the degrees of freedom, the mean squares, $F$ and the $P$-value.

- Bayes' Theorem Calculator: Mathematica or Sage
- Sampling Distributions: Mathematica or Sage
- Binomial Approximations: Mathematica or Sage

Single Variable Calculus

- Taylor polynomial visualizer (Mathematica cdf): Input a function $f(x)$ and a value $c$, and this will graph the Taylor polynomial of $f(x)$ centered at $c$ to any degree from $1$ to $20$ (manipulable).

- Riemann sum visualizer (Mathematica cdf) : Input a function $f(x)$ and an interval $[a, b]$ and this will graph a left/right Riemann sum approximation for any number of rectangles from $2$ to $100$ (manipulable).

Differential Equations

- Euler's Method and Improved Euler's Method demonstration (Mathematica nb): Demonstrates Euler's method on the ODE $y' = y$. Specify $y_0$, $x_0$, $x_n$, and the number of steps and this will carry out the method and graph the results alongside the true value (manipulable). Also appropriate for a Calculus I course if Euler's is covered with differentials.

- Lorenz Attractor/Runge-Kutta Method Demonstration (Mathematica nb): Demonstrates RK4 methods on the ODEs that arise from the Lorenz system with specified parameters and graphs the evolution of the system over time (manipulable).