Aaron Moss

PhD - Programming languages

Aaron Moss
Was your undergraduate in CS? If not, what did you study?
Yes. I was an algorithms major at the University of New Brunswick, and did a minor in mathematics.

Why did you choose graduate studies and why did you choose graduate studies in CS?
I came to graduate school partially for the ability to work on my own projects, rather than those selected by my employer, but mostly because I really enjoy teaching and want to get a job as a university professor. As for why CS, it's the field that I know, and there are a lot of problems here I find fascinating.

What is your research area and why did you choose it?
I'm working on building efficient abstract data structures for vectorized computer architectures such as GPGPU. I've always enjoyed the theoretical aspect of data structures and algorithm design, and this project lets me combine my interest in algorithmic theory with solving practical problems for people writing software for modern parallel platforms.

Who is your supervisor and why did you choose to work with him/her?
My supervisor is Dr. Peter Buhr of the programming languages research group. When I was looking at Waterloo, I read some papers of his that he'd linked from his faculty webpage, and was quite intrigued by the combination of programming languages and parallel and concurrent programming research he does, which meshed well with my interest in algorithms and desire to do a practical parallel programming project.

Why did you choose Waterloo for graduate studies? If you did your undergraduate at Waterloo, why did you stay?
Waterloo has a world-class computer science program, arguably the best in Canada, so it was on my short list as long as I had been considering graduate studies. What made it my top choice was honestly non-academic factors: my wife is a history PhD student, and Waterloo had a history department doing research that appealed to her as well as having a computer science department doing research that appealed to me. Also, I don't care much for big cities, so the prospect of moving somewhere like Toronto, Montreal, or Vancouver didn't appeal to me.

What sort of research/projects are you working on?
My current research project is a multi-precision integer simplex solver for GPU; I'm using it as a proof of concept for my ideas about efficient vectorized data structures.

What classes are you taking? What has been your favourite class so far?
I'm currently taking a course on functional parsing, covering parsing techniques from functional programming; my favourite course so far was a graduate seminar on space efficient data structures, which was pretty much what it sounds like.