Harry Sha
Assistant Professor, Teaching Stream
Harry Sha still remembers his first computer science class. The assignments felt like fun puzzles that required creative problem-solving. It was his first year at Stanford University, and he was convinced he would study psychology. When the second computer science class in the sequence introduced algorithms and Sha built a mini version of Google Maps, he walked away feeling empowered.
Those early classes changed his career direction, eventually leading Sha to computer science and a PhD.
As an undergraduate teaching assistant, Sha discovered a passion for working with students and continued to pursue teaching opportunities during his PhD. More recently, his commitment earned him the inaugural Department of Computer Science Graduate Teaching Award.
Now, Sha brings that same passion for the classroom to DCS, joining the department as an assistant professor in the teaching stream.
What attracted you to the University of Toronto and the Department of Computer Science?
I moved to Toronto in 2021 for my PhD and fell in love with the city. In addition, U of T values teaching, and I felt the department and the university would support me. The teaching-stream faculty are incredibly strong, and I knew I would receive great mentorship.
When you’re not teaching, researching, or thinking about computer science, how do you like to spend your time?
I like to run, rock climb, bike, play guitar, cook and explore the city!
You’ve taught a wide range of courses at U of T. What do you enjoy most about working with students in the classroom?
I really like computer science, and I genuinely think most of the content is super cool and that learning it is a fun process. So, when I see students get excited and curious and ask great questions, it makes me really happy.
How would you describe your teaching philosophy, and what kind of learning experience do you hope students take away from your courses?
I believe that learning should be a joyful experience. I try to emphasize that by creating environments where students can explore and experiment with a problem, so they can experience the excitement of discovering something on their own.
I also emphasize applications, even in more theoretical courses, to show how what they learn applies to real-world problems. Additionally, I try to pose interesting questions that spark students’ curiosity and encourage them to think more deeply.
My biggest hope is that my students leave my course excited about CS and wanting to learn more.
Your academic background is in theoretical computer science. What are some of the big ideas in the field that you find most exciting?
Theoretical computer science is a relatively young field, and many basic questions remain unsolved. The most famous question in the field is P vs. NP, which boils down to whether or not being able to verify something quickly implies we can also solve it quickly.
This Q&A has been edited for clarity and length.
