I am a PhD Candidate in the Department of Computer Science at the University of Toronto, where I work with Prof. Eric C.R. Hehner.My current research interests lie at the intersection of Quantum Information and Programming Methodology. Both these fields of Computer Science are relatively new and both have grown immensely in recent years. Quantum Computation and Quantum Information is the study of information processing and communication accomplished with quantum mechanical systems. Thinking physically about computation and using the laws of quantum mechanics allows one to perform computational and cryptographic tasks that are impossible in the world of classical computing. Programming Methodology (also known as Formal Verification) is the field of Computer Science concerned with mathematics and modelling applicable to the specification, design, and verification of software and hardware. In particular, the formal methods provide tools to formally express software and hardware specifications, prove correctness of implementations, and reason about various properties of specifications (e.g. implementability) and implementations (e.g. time and space complexity). Today formal methods are successfully employed in all stages of software and hardware development. The subject of my current research work is Quantum Programming: the study of developing programs intended for execution on a quantum computer. In my PhD thesis, I have developed Quantum Predicative Programming --- a theory of quantum programming, which provides tools to write both classical and quantum specifications, develop quantum programs that implement these specifications, and reason about their comparative time, space, and communication complexity all in the same formal framework.
The next step in my research work is looking at formal verification of security properties of distributed systems. In particular, I will focus on rigorous reasoning about quantum cryptographic protocols.
I have extensive teaching experience. I am currently a Course Instructor for Introduction to Computer Science (a first year Computer Science course) and Principles of Programming Languages (a third year Computer Science course). I have taught Principles of Programming Languages twice before -- in the Spring and Summer terms of 2008, both times with excellent course evaluations. I have just finished teaching Introduction to Computer Programming (a first year Engineering Science course) and Accelerated Introduction to Computer Science (a first year Computer Science course) in the Fall term of 2009.
I have received an Honours Bachelor of Science with High Distinction in June 2002 and a Master of Science in November 2004, both from the University of Toronto. I spent a year on parental leave taking care of David and I expect to receive a PhD in June 2010. My major academic awards include two Natural Sciences and Engineering Research Council of Canada (NSERC) Postgraduate Scholarships (2003-2004 and 2004-2007) and three Ontario Graduate Scholarships (OGS) (2002-2003, 2004-2005, and 2005-2006).
My best thesis avoidance techniques are backpacking, canoeing, reading, cinematography, practicing yoga, cooking, and playing with my son.
LINKS: My homepage. My current CV. My LinkedIn profile.