THIS SITE

Information for

Patrick Lam

Associate Professor, Director, S/W Eng Program

Contact InformationPatrick Lam

Phone: 519-888-4567 x38017
Location: DC 2534

Website

Biography Summary

Patrick Lam is an Associate Professor and Associate Director of Software Engineering, and cross-appointed to the School of Computer Science at the University of Waterloo.

Professor Lam’s research interests include static program analysis, verifiable software specifications, data mining, renewable energy and software engineering. He believes that 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).

Professor Lam has received multiple grants for his research efforts from the Natural Sciences and Engineering Research Council of Canada, including the NSERC Engage Grant in 2013 worth $25,000. He also has a current ongoing NSERC Discovery Grant from 2013 to 2018 worth $20,000 a year.

Additionally, Professor Lam has been recognized for his paper, “Soot – A Java Optimization Framework” by the Centre for Advanced Studies Conference hosted by IBM as a First Decade High Impact Paper in 2010. He has written many other published works for a variety of sources.

Research Interests

  • Program Verification
  • Static Analysis
  • Specification Languages
  • Program Understanding
  • Pointer Analysis
  • Compilers
  • Lightweight Specifications
  • Communication Systems
  • Information Systems
  • Verifiable Domain-specific Languages
  • Software Engineering
  • Verifiable Software Specifications
  • Cybersecurity
  • Infrastructure Integrity

Education

  • 2007, Doctorate, Computer Science, Massachusetts Institute of Technology
  • 2000, Master's, Computer Science, McGill University
  • 1999, Bachelor's, Joint Honours Mathematics and Computer Science, McGill University

Courses

  • ECE 155 - Engineering Design with Embedded Systems
    • Taught in 2013
  • ECE 750 - Special Topics in Computer Software
    • Taught in 2013
  • SE 401 - Seminar
    • Taught in 2013
  • SE 402 - Seminar
    • Taught in 2014
  • SE 490 - Design Project 1
    • Taught in 2014
  • SE 465 - Software Testing and Quality Assurance
    • Taught in 2015, 2017
  • SE 101 - Introduction to Methods of Software Engineering
    • Taught in 2016
  • ECE 453 - Software Testing, Quality Assurance and Maintenance
    • Taught in 2017
  • ECE 459 - Programming for Performance
    • Taught in 2013, 2014, 2015, 2018
  • SE 301 - Seminar
    • Taught in 2018

Selected/Recent Publications

  • Eyolfson, Jon and Lam, Patrick, C++ const and Immutability: An Empirical Study of Writes-Through-const (Artifact), DARTS-Dagstuhl Artifacts Series, 2, 2016
  • Eyolfson, Jon and Tan, Lin and Lam, Patrick, Correlations between bugginess and time-based commit characteristics, Empirical Software Engineering, 19(4), 2014, 1009 - 1039
  • Demsky, Brian and Lam, Patrick, Views: Synthesizing fine-grained concurrency control, ACM Transactions on Software Engineering and Methodology (TOSEM), 22(1), 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), 34(2), 2012
  • Sebastian Fischmeister and Patrick Lam, Time-Aware Instrumentation of Embedded Software, IEEE Transactions on Industrial Informatics, 6(4), 2010, 652 - 663
    Link