This semester I am teaching two courses:
- CSCI 365, Functional Programming (using Haskell and Idris).
- CSCI 150, Foundations of CS
I’m in the middle of a series of blog posts on The Math Less Traveled exploring primality testing algorithms. I’ve finished up a sub-series exploring proofs of Fermat’s Little Theorem; next up is to start writing about primality tests themselves, and why it seems (but we can’t prove) that we live in a rather interesting universe where primality testing can be done quickly but not factoring.
However, the above series is on hold while I explore another rabbit hole: I recently figured out how to use an SMT solver to create minimal drawings of orthogons (polygons with only right angles), and am writing up some blog posts to explain it. Here’s the latest post in the series.
Chris Chalmers has been working on an rewrite of some of the core functionality of the diagrams library, which will allow for things like traversals over diagrams and diagram edits; get rid of the backend type parameter for diagrams (which was more of a nuisance than a help); and incidentally split out all the purely geometric parts of the library into a separate package. I’m excited to see this land (hopefully over the summer) and am helping with feedback, documentation, and so on.
Also related to the diagrams project, I have rewritten the active package from scratch—a library for describing and working with time-varying values (i.e. animations). I’m now working on putting the finishing touches on it and writing a paper about it.
For several years, off and on, I’ve been working on an English translation of André Joyal’s paper introducing combinatorial species, with additional commentary providing background and context. Recently I have picked it back up and have been working on writing additional commentary.
I’m working on writing up documentation for disco, a functional teaching language for discrete mathematics I’ve been developing, in preparation for some students to work on it over the summer.
Things I’m reading right now: