The best way to get an idea of what research I'm currently looking into is to follow along on my research blog. Be sure to leave a comment, too.
)The Ph.D. thesis is still in its early stages, but it focuses around programming language design aimed at aiding static analysis. In other words, if every program is structured or restricted in certain ways, can that make it easy to statically guarantee that it a computation will halt in a certain amount of time or consume a certain amount of memory?
The general topic of my thesis was providing a mathematical model for (and consequently describing the computational power of) the RNA editing process in kinetoplastids (specifically U-insertion and deletion). Kinetoplastids are glorious creatures who infect us with all kinds of fun diseases like sleeping sickness (kills 40000 people per year) and Chagas disease (20000 per year). Apart from making things sick, kinetoplastids enjoy using their flagella to vaguely float around, and inserting and deleting uridine into and from their post-transcriptional messenger RNA.
The model is a variation on insertion/deletion systems (often studied in computational biology) called guided insertion/deletion systems, owing to the fact that guide RNA directs the mechanism for insertion and deletion. I worked on the math and, in parallel, wrote code to simulate the insertion/deletion systems in Literate Haskell.
You may download my thesis in the following formats: Postscript; PDF
. Note that the PDF is
post-dated because it was typeset well after the final submission of the
thesis. The two are equivalent in content, but the PS version should be
considered the "official" version if one exists, I suppose. Please read the errata.
The thesis also contains source code written in Literate Haskell. You will need a Haskell compiler; I highly recommend GHC.


At the University of Calgary (where I got my undergraduate degree), one must finish and defend a year-long project, colloquially referred to as the undergraduate thesis, in order to obtain an honours degree. Mine was on the implementation of a pure, lazy, functional programming language and the exploration of a novel typing system, such that it was more permissive than the usual Hindley-Milner systems used in popular languages such as Haskell, but it would still guarantee correct semantics. The thesis consisted of two documents: