On this page, I'll briefly outline my academic and research goals. For those of you who hate math, I suggest you leave this page as quickly as you can manage, before I drown you in a sea of algebraic and combinatorial goodness.
As I type this, I'm completing my Master's thesis in computer science at the University of Ottawa, where I'm studying combinatorics. I've always been interested in this field, and my research up-to-date has involved studying certain problems from design theory, as well as trying to solve highly symmetric problems efficiently using branch-and-cut techniques.
My work in design theory began in the summer of 2001, when I was the recipient of an NSERC research undergraduate award, and worked under the supervision of Dr. Lucia Moura to enumerate 2-(v,3,1) packing designs (also known as partial Steiner Triple Systems, or PSTS) with the avoidance of 2-(6,3,1) subdesigns (also known as Pasches). We managed to construct an isomorph-free catalogue of these designs for v = 3, ..., 15 via backtracking on point configurations using a distributed technique. A very outdated, and poorly written paper can be found below, if you're interested.
For the course component of my Master's degree, I studied a variety of different subjects and wrote several research papers. The topic I studied for my course in finite fields and coding theory was Reed-Muller codes; I wrote a paper explaining them, and wrote a small ANSI C library to perform encoding and decoding. For my combinatorial algorithms course, I studied a paper, "Pruning by Isomorphism in Branch-and-Cut", by Francois Margot (2001), and devised two algorithms to determine the symmetry group of an arbitrary ILP. To fulfill the requirements of my software usability course, I wrote a Java program called CookBook and performed a usability study on it, and also wrote a paper comparing three widely used UNIX GUI toolkits (Motif, Qt, and GTK+). I chose to investigate several algebraic algorithms (mostly pertaining to polynomials over fields) for my parallel algorithms course. All of these are available below.
Upon the completion of my Master's degree, I will be leaving the study of computer science and instead attempt a Ph.D. in mathematics (more specifically algebra). While I am still interested in combinatorics (most notably graph theory and design theory), I hold stronger interests in algebraic structures and would like to pursue research in finite fields and commutative algebra. My current research interests and questions include:
In my spare time, I am currently dedicated to examining the third question for the case q=2 and k=2. I have written a backtracking program to enumerate all universal cycles, but due to the combinatorial nature of the problem, I cannot even get results for n=5. If I can find a technique to test partial cycles for isomorphism (by imposing some lexicographical ordering on cycles where a cycle is canonical if and only if the subcycle of which it is an extension is canonical), then I can reduce the number of cycles we test dramatically. However, at the present moment, I have not found a feasible technique to do so - due to a structural restriction I place on the cycles to avoid a large number of isomorphisms, nauty is not feasible, and a pure brute-force method of building permutations using backtracking to test canonicity of incidence matrices of cycles can map a valid cycle to an invalid one (where vector spaces are repeated - it is likely this would happen with the nauty approach as well). More thought on this is needed in order to proceed.