Our “Meet the Faculty” interviews provide a window into the work lives of faculty across the University of Waterloo. Faculty members talk about the day-to-day joys and struggles, and share tips for getting the work done and staying mentally and physically healthy in academia.
Patrick Lam is the soon-to-be-ex-director of UWaterloo’s Software Engineering program and an associate professor in the Department of Electrical and Computer Engineering. He’s also an at-large representative on the FAUW Board of Directors.
What do you teach and research, and what drew you to that work?
I am trained as a computer scientist and my subfield is programming languages and their applications to software engineering. When I came to Waterloo, I learned that Electrical and Computer Engineering departments tend to be quite scientifically diverse and include faculty from a wide range of disciplines, from physics to mechanical engineering, and fortunately passing through computer science as well.
Specifically, I develop techniques and tools which automatically understand what software developers are saying (and what they meant to say) when writing computer software. A common misconception that developing software is a solitary task where it’s just you telling the computer what to do. That’s totally not the case, especially today, and developers absolutely must communicate with their teammates (and others). My research aims to dig out some of the implicit communication developers are performing and make it explicit.
I believe that many of us just happen to fall into doing what we’re doing by coincidence, and I think there are a lot of interesting things to study in the world. But often there are mentors that help us find our own area. In my case it was my professors for undergrad, Prakash Panangaden and the late Laurie Hendren. I hope that I can similarly inspire my own students.
What kind of work is involved with being the director of a program?
Being a program director is a rewarding but high-volume service task. The two main parts are managing operational challenges and providing academic leadership to students and committees. Operational challenges include supporting instructors and balancing the concerns of the parent units; for software engineering this is especially challenging because it is jointly offered across Faculties by the School of Computer Science and the Department of Electrical and Computer Engineering, and these units are quite different. Academic leadership includes thinking about what the students should learn (and what they don’t need to learn) and guiding curriculum committee discussions. I strive to be a well-rounded intellectual role model for students.
For Software Engineering, we have an associate director who is the primary academic advisor. However, I do serve as a secondary advisor and work with students when they feel more comfortable with me. That is one of the most rewarding parts of the role, even if it’s somewhat peripheral.Continue reading “Meet the Faculty: Patrick Lam”