Patrick Lam, PEng
Biography
Dr. Patrick Lam is an Associate Professor in the Department of Electrical and Computer Engineering and cross-appointed to the Cheriton School of Computer Science at the University of Waterloo.
Dr. Lam’s research interests include static program analysis, verifiable software specifications, data mining, renewable energy and software engineering. His research “aims to give developers ways to automatically link high-level designs to low-level implementations, through the use of programming language extensions” (Patrick Lam, http://patricklam.ca).
He has received multiple research grants from the Natural Sciences and Engineering Research Council of Canada (NSERC), including the NSERC Engage Grant in 2013, worth $25,000, and an ongoing NSERC Discovery Grant (2013–2018), valued at $20,000 per year.
Dr. Lam has also been recognized for his influential paper, "Soot – A Java Optimization Framework", which was awarded the First Decade High Impact Paper recognition at the Centre for Advanced Studies Conference hosted by IBM in 2010. In addition, he has published numerous other works across various sources.
Research Interests
Program Verification
Static Analysis
Specification Languages
Program Understanding
Pointer Analysis
Compilers
Lightweight Specifications
Verifiable Domain-Specific Languages
Software Engineering
Verifiable Software Specifications
Infrastructure Integrity
Education
2007, Doctorate Computer Science, Massachusetts Institute of Technology, United States
2000, Master's Computer Science, McGill University, Quebec
1999, Bachelor's Joint Honours Mathematics and Computer Science, McGill University, Quebec
Teaching*
- CS 447 - Software Testing, Quality Assurance, and Maintenance
- Taught in 2023
- CS 647 - Software Testing, Quality Assurance and Maintenance
- Taught in 2023
- ECE 198 - Project Studio
- Taught in 2021
- ECE 453 - Software Testing, Quality Assurance, and Maintenance
- Taught in 2023
- ECE 459 - Programming for Performance
- Taught in 2021, 2022, 2023, 2025
- ECE 653 - Software Testing, Quality Assurance and Maintenance
- Taught in 2022
- ECE 750 - Special Topics in Computer Software
- Taught in 2021, 2022
- SE 465 - Software Testing and Quality Assurance
- Taught in 2025
* Only courses taught in the past 5 years are displayed.
Selected/Recent Publications
Eyolfson, Jon and Lam, Patrick, C++ const and Immutability: An Empirical Study of Writes-Through-const (Artifact), DARTS-Dagstuhl Artifacts Series, , 2016
Eyolfson, Jon and Tan, Lin and Lam, Patrick, Correlations between bugginess and time-based commit characteristics, Empirical Software Engineering, 1009, 2014
Demsky, Brian and Lam, Patrick, Views: Synthesizing fine-grained concurrency control, ACM Transactions on Software Engineering and Methodology (TOSEM), 4, 2013
Bodden, Eric and Lam, Patrick and Hendren, Laurie, Partially evaluating finite-state runtime monitors ahead of time, ACM Transactions on Programming Languages and Systems (TOPLAS), 7, 2012
Sebastian Fischmeister and Patrick Lam, Time-Aware Instrumentation of Embedded Software, IEEE Transactions on Industrial Informatics, 652, 2010
Graduate studies
I am currently seeking to accept graduate students. Please submit your graduate studies application and include my name as a potential advisor.