Karim Ali

PhD - Programming languages

Karim Ali
Was your undergraduate in CS? If not, what did you study?
Yes it was but not at uWaterloo.

Why did you choose graduate studies and why did you choose graduate studies in CS?
Because I loved doing research and believe that it will open a plethora of opportunities once I'm done with it (e.g., working in academia as well as industry as opposed to just the industry if I haven't pursued my graduate studies).

What is your research area and why did you choose it?
I'm doing my PhD in programming languages and compiler design. I took a course during my MMath in compilers and was very intrigued by the topic. I wanted to change my area of studies in my PhD so it made sense to me to explore the field of compiler design during my PhD.

Who is your supervisor and why did you choose to work with him/her?
Ondřej Lhoták. He's the instructor of that course I took during my MMath. I found him to be a really good instructor in class and very helpful during office hours. He's a very smart guy and exciting to work with. It was the easiest decision I made during my academic career to do my PhD with Ondřej. I highly recommend him as a supervisor for prospective graduate students!

Why did you choose Waterloo for graduate studies? If you did your undergraduate at Waterloo, why did you stay?
I applied to various universities in Canada and the U.S.. Waterloo was the only Canadian school I applied to though after it was highly recommended by my undergraduate professors back in Egypt (some of whom did their graduate studies here in Canada but not in Waterloo). Even though I got accepted at the 3 schools I applied to, Waterloo was the only one that guaranteed me funding before arriving. That made my decision easier to go to Waterloo, both for its reputation and guaranteed funding.

What sort of research/projects are you working on?
I'm working on compiler design, in specific static analyses and call graph construction algorithms for Java and Scala. One of my main PhD contributions is the Averroes project (which can be found on my research website).

What classes are you taking? What has been your favourite class so far?
I've finished all my course requirements. My favourite courses though are:

CS 744 - Advanced Compiler Design: that course got me into doing my PhD in programming languages and compiler design.

CS 870 - Numerical Algorithms and Image Processing: by far the most enjoyable course I've taken in my PhD though it has no relation whatsoever with my research interests. Justin Wan is an amazing instructor. I really enjoyed the lectures, the assignments and the project as well.

Any other information you would like to share about yourself?
I used to be the president of the Egyptian Student Association, lots of fun events for the Egyptian and Arabian community in general (though events are open to everybody). I'm also a community assistant at CLV North (single grads and family residence). So if somebody would like to ask questions about CLV, I can definitely help out. You can also share my research webpage (plg.uwaterloo.ca/~karim).