About

My name is Jacob Errington. I study computer science and mathematics at McGill University in Montreal.

And I’ve always been fascinated by magic.

In the modern age, the closest thing we have to magic is programming. You have to learn the secret languages, passed down through generations, some more arcane than others. Each comes with a philosophy about how the world works, and some are closer to the core elements of nature than others.

Hence, I’m fascinated by programming. I’m not so much fascinated with what programs can do, but rather by the abstract idea of being to model ideas correctly, precisely, and unambiguously. That probably explains why I like functional programming so much.

I grew up in Montreal and developed an interest in computers at a pretty young age. I remember being in the sixth grade when a friend of mine told me that he figured out how to make video games, and from that point onwards I was hooked. (It was only much later that I realized that game development is way too complicated for me, and requires a lot more than just programming!)

I first taught myself some basic programming in C and in C++, and later in high school, I was given the opportunity to take part in the Be a Computer Scientist for a Week day camp offered at McGill. In CEGEP, I took a course on numerical methods for physical applications, which involved a programming project. Rather than do a physical simulation, my team created a viewer and builder for 3D cellular automata similar to Game of Life. It was around this time that I began to use Haskell. I then got a Bachelors degree in Computer Science at McGill, with an emphasis on courses in programming language theory, compilers, and formal verification.

I’m currently pursuing a Masters degree at McGill under the supervision of Brigitte Pientka in the computational logic lab. My masters project is to design and implement a proof search system. Thanks to the Curry-Howard correspondence, this engine will be capable of generating programs of a given type. With a precise enough type, the generated program will be the right one!