The Varied Life of Chris Gregg

Before becoming a lecturer at Stanford, I:

I received my PhD in Computer Engineering from the University of Virginia, where I:

  • Studied VLSI, Solid State Devices, Probability and Stochastic Systems, Embedded Computing, Compilers, Operating Systems, Computer Architecture, Computer Networking, and Parallel Computing, and Heterogeneous Computing.
  • Wrote a little Java Applet to demonstrate how a Kogge-Stone adder works.
  • Designed, with Marisabel Guevara, designed a Fault Tolerant, Real-Time Reconfigurable Adder.
  • Wrote a bunch of papers.
  • Updated the Wikipedia page on Kogge-Stone Adders
  • Presented a poster on Contention-Aware Scheduling of Parallel Code for Heterogeneous Systems in HotPar 2010.
  • Worked at AMD during the summer of 2010, which culminated in a paper in GPGPU-4 titled Analyzing Program Flow within a Many-Kernel OpenCL Application.
  • Taught 4th and 5th grade students parallel programming. Luther Tychonievich and I created a new programming language (EcoSim), and we had a blast teaching the students about parallel programming concepts.
  • Taught 7th and 8th grade students how to write fundamental programs in Python, Scheme, Java and C.
  • Taught CS/ECE 3330, Computer Architecture, Fall 2011.
  • Ran in the Charlottesville 10-Miler (2008, 2009, 2010) and the Charlottesville Marathon (2010).

After getting my PhD, I

At Stanford, I

  • Have taught many courses in the introductory CS curriculum, including CS106A, CS106B, CS106X, CS107, CS107e, CS110, CS208e, and CS298.
  • Have facilitated many “Birds of a Feather” presentations at SIGCSE on teaching track faculty.
  • Have co-written a paper with Chris Piech on BlueBook, a computerized testing program that we have used before and since the COVID-19 outbreak.
  • Have written a book, titled, Your First Year Teaching Computer Science, which is geared towards new CS instructors who are just joining the community.
  • Have worked (Summer 2019, and part-time since then) at Facebook as a software engineer in the Artificial Intelligence Infrastructure group.
  • Created another typewriter printer project with an IBM Wheelwriter typewriter, which involved a lot of reverse-engineering of electronic protocols.