Patrick Lam

Thoughts and travels of Patrick Lam

Academic Tree circa 2003

26 Jun 2008

Pull requests accepted!

https://github.com/patricklam/plam.new-webpage

Henry M. Foley (physics)
+--Joseph Frederick Traub (1959, from Columbia) [Columbia] (quantum)
                http://www.cs.columbia.edu/~traub/
   +--Hsiang Tsung Kung (1973, from CMU) [Harvard] (networks)
                http://www.eecs.harvard.edu/~htk/
       +--Baudet, Gerard M. (78, from CMU)
       +--Cohn, Robert J. (92, from CMU)*
       +--Fisher, Allan L. (84, from CMU)
       +--Foster, Michael J. (84, from CMU)
       +--Hsu, Feng-hsiung (89, from CMU)
       +--Lam, Monica S. (87, from CMU) [Stanford]
          +--Michael Wolf, (August 1992, from Stanford)
             Thesis: "Improving Parallelism and Locality in Nested Loops".
          +--Michael Smith (November 1992, from Stanford) [Harvard]
             Thesis: "Support for Speculative Execution in High-Performance 
                      Processors".
          +--Todd Mowry (March 1994, from Stanford) [CMU]
             Thesis: "Tolerating Latency Through Software-Controlled Data Prefetching".
          +--Martin Rinard (August 1994, from Stanford) [MIT]
             Thesis: "The Design, Implementation, and Evaluation of Jade, 
                      a Portable, Implicitly Parallel Programming Language"
             +---Pedro Diniz (May 1997, from UCSB) [ISI]
                 Thesis: "Commutativity Analysis: A New Analysis Framework 
                          for Parallelizing Compilers"
             +---Radu Rugina (January 2002, from UCSB) [Cornell]
          +--Daniel Scales (December 1995, from Stanford) [VMWare]
             Thesis: "Efficient Shared Objects for Distributed Address Space Machines"
          +--Saman Amarasinghe (January 1997, from Stanford) [MIT]
             Thesis: "Parallelizing Compiler Techniques Based on Linear Inequalities"
          +--Jennifer Anderson (March 1997, from Stanford) [VMWare]
             Thesis: "Automatic Computation and Data Decomposition 
                      for Multiprocessors"
          +--Robert Wilson (December 1997, from Stanford) [Tensilica]
             Thesis: "Efficient Context-Sensitive Pointer Analysis for C Programs"
          +--Jason Nieh (December 1998, from Stanford) [Columbia]
             Thesis: "The Design Implementation and Evaluation of SMART: 
                      A Scheduler for Multimedia Applications"
          +--Shih-wei Liao (August 2000, from Stanford) [Intel Research]
             Thesis: "SUIF Explorer: an Interactive and Interprocedural Parallelizer"
          +--Brian Schmidt (August 2000, from Stanford) [Kealia]
             Thesis: "Supporting Ubiquitous Computing with Stateless Consoles 
                      and Computation Caches"
          +--Patrick Sathyanathan (June 2001, from Stanford) [HP]
             Thesis: "Interprocedural Data Flow Analysis--Alias Analysis"
          +--Amy Lim (September 2001, from Stanford) [Axis]
             Thesis: "Improving Parallelism And Data Locality With Affine Partitioning"
       +--Lehman, Philip L. (84, from CMU)
       +--Leiserson, Charles E. (81, from CMU)
       +--Oflazer, Kemal (87, from CMU)
       +--Pieper, Jon (93, from CMU)*
       +--Printz, Harry (91, from CMU)
       +--Robinson, John T. (82, from CMU)
       +--Song, Siang W. (81, from CMU)
       +--Sussman, Alan (91, from CMU)*
       +--Thompson, Clark D. (80, from CMU)
       +--Wu, I-Chen (93) 
   +-- Don Heller (PhD, 1977, from CMU)
+-- Joseph Sucher (PhD, 1957, from Columbia) [Maryland] (theoretical physics)
    Thesis: "Energy levels of the two-electron atom, to order 3 Rydberg."

* - Co-Chairman

Sources:

Couch

9 Jan 2008

“That’s a nice couch in your office, Patrick.”

When I moved into Edgerton House I realized that trying to live without furniture soon becomes deeply unsatisfactory: the floor just isn’t that great to sit on. To avoid a repeat of that experience, I quickly purchased furniture for my new place.

I found ads for a coffee table set and a couch on craigslist, which were actually posted by the same person. Better yet, this person had a van and offered to transport the furniture to my place. She was selling the coffee table set and a couch set: a one-place, a two-place, and the above three-place couch. My place is small, so I negotiated with her to purchase just the one- and three-place couches, and I recruited Todd (thanks again!) to help me move the couch into and out of the van.

How to bike to a workshop

5 May 2004

Epic bike trip in Massachusetts.

Concrete Atria are not Atria!

21 Mar 2004

Stupid Atrium

I was happy to leave my old office, NE43-632, at 200 Technology Square, and move to 32-G730 in the Stata Center. My two complaints about Tech Square were: (1) lack of sunlight; and (2) white noise. I always found the white noise to be annoying, but the lack of sunlight was not always a problem. When I had first arrived at MIT in 2000, we did have natural sunlight in my office.

1 Jan 0001

Teaching

I am teaching the following course in Spring 2022:

  • SE490: Design Project 1
  • ECE653: Software Testing, Quality Assurance, and Maintenance [S22 webpage]

Here’s some of the courses that I’ve taught in the past.

  • [F21] ECE 198: Design Project Studio (syllabus)
  • [S19] SE490: Design Project 1
  • [W19, W17, W10, W09] SE465: Software Testing, Quality Assurance & Maintenance (sometimes under ECE 453/CS447 numbers) [github]
  • [W22, W21, W19, W18, W15, W14, W13, W11] ECE459: Programming for Performance [github]
  • [F18, F16] SE 101: Introduction to Methods of Software Engineering [F18, F16]
  • [W22, W21, S12, F08] ECE750-T5: Static Analysis for Software Engineering [W22 webpage] [W21 webpage]
  • [S11, W11] ECE155: Engineering Design for Embedded Systems. [S11 syllabus, W11 syllabus]
  • [F10] ECE 251: Programming Languages and Translators
  • [W08] ECE 493T3: Component-Based Software Engineering
  • [S06] COMP 302 (McGill): Programming Languages and Paradigms [syllabus]

About me

1 Jan 0001

(Last updated January 2020).

Professional

I’ve been at the University of Waterloo since January 2008, now as Associate Professor of Electrical and Computer Engineering. I’ve also served as Director and Associate Director of the Software Engineering program.

The goal of my research is to help developers state and verify key properties of their software; I apply static analysis techniques to software engineering problems.

In 2007, I was a postdoc at McGill University’s School of Computer Science, working with the late Laurie Hendren, Eric Bodden, and the Sable research group. For many years before that, I was a PhD student at MIT’s Computer Science and Artificial Intelligence Laboratory, working with Martin Rinard, Viktor Kuncak, and others.

ECE 453/CS 447/CS 647 Software Testing, Quality Assurance, and Maintenance, Winter 2023

1 Jan 0001

Course Information: ECE 453/CS 447/CS 647 Software Testing, Quality Assurance, and Maintenance, Winter 2023

Important Dates (may change, assignment descriptions are correct)

Date Event
Jan 9 A0 out
Jan 13 A0 due
Jan 16 A1 out
Jan 30 A1 due
Jan 23 Fuzz out (see your handin repo, under the fb directory)
Feb 13 Fuzz due
Feb 13 A2 out
Feb 15 Quiz 1
Mar 6 A2 due
Mar 6 A3 out
Mar 15 Quiz 2
Apr 10 A3 due
Apr 10 Last day of lectures
Apr 10 Project due

SymEx Jupyter Notebook

Referred to in one of the videos from W22. SymEx.ipynb

ECE 453/CS 447/CS 647 Software Testing, Quality Assurance, and Maintenance, Winter 2023: Grading Policy

1 Jan 0001

Grading Scheme

Graduate students taking this course have a project. Undergraduate students are not required to do a project, but may choose to do so after consulting me.

ECE 453/CS 447

  • Assignments: 35%
    • Assignment 1: 10%
    • Fuzz Battle: 5%
    • Assignment 2: 10%
    • Assignment 3: 10%
  • Quizzes: 20%
    • Quiz 1: 10%
    • Quiz 2: 10%
  • Final Exam: 45%

CS 647

  • Assignments: 35%
    • Assignment 1: 10%
    • Fuzz Battle: 5%
    • Assignment 2: 10%
    • Assignment 3: 10%
  • Quizzes: 20%
    • Quiz 1: 10%
    • Quiz 2: 10%
  • Final Exam: 25%
  • Project: 20%

Comments and caveats

All assignments, quizzes, and tests that are submitted online will be returned online. Submissions will be by pushing to gitlab.

ECE 453/CS 447/CS 647 Software Testing, Quality Assurance, and Maintenance, Winter 2023: Projects

1 Jan 0001

ECE 453/CS 447/CS 647: Projects

There are two choices of project. Projects can be done in groups of 2. You must declare your project by the end of Week 8. All projects must be approved by the instructor. Talk to me. Sooner the better. Deadline for project approval is Week 10. Projects are due by the last day of class.

ECE 653 Software Testing, Quality Assurance, and Maintenance, Spring 2022

1 Jan 0001

ECE 653 S22: Grading

  • Assignments: 35%
    • Assignment 1: 10%
    • Fuzz Battle: 5%
    • Assignment 2: 10%
    • Assignment 3: 10%
  • Quizzes: 20%
    • Quiz 1: 10%
    • Quiz 2: 10%
  • Final Exam: 25%
  • Project: 20%

All assignments, quizzes, and tests that are submitted online will be returned online. Submissions will be by pushing to gitlab.

Final exam will be in-person.

All quizzes are take home, open book, closed internet. Each online test will be time limited and must be completed within 3 days. That is, you can pick the best time to take the test, but once you start, you have to finish within the given time limit.