graduate Learning Mixtures of Linear Dynamical Systems A project on unsupervised clustering of trajectories drawn from linear dynamical systems undergraduate py_knots Knot algorithms in Python, 2022. topological data analysis Analysing UNGA votes, 1945-2015. scala_knots Knot algorithms in Scala, 2020. superficial Algorithms for surfaces in Scala, 2020. idris Interactive proofs in Idris, 2019.