Charles Eric LaForest, PhD Student

Mad Scientist In Training

Why

I want to understand computers from the silicon up to the user interface. I want to make better and beautiful machines, like starships and samurai, not Buicks and bureaucracies. I want to make it possible again for two hairy dropouts named "Steve" to homebrew something insanely great in their garage.

More pragmatically put: I want to be a toolsmith for scientists in non-computing disciplines.

Whence

  • 1995 - 1999:
    Diploma in Computer Engineering Technology, Algonquin College, Ottawa
  • 2004 - 2007:
    Bachelor of Independent Studies, University of Waterloo
    Advisor: Chrysanne DiMarco (UW)
    Thesis Supervisors: Greg Steffan (UoT) and Andrew Morton (UW/Guelph)
    Thesis: Second Generation Stack Computer Architecture
  • 2007 - 2009:
    Master of Applied Science (ECE), University of Toronto
    Advisor: Greg Steffan
  • 2009 - now:
    Philosophić Doctor (ECE), University of Toronto
    Advisor: still Greg Steffan

What

  • Computer Architecture
  • Asynchronous Circuits
  • Higher-Order Functions (Runtime Code Generation)
  • Shared-Nothing Message-Passing Concurrency (à la Erlang)

Writing

None yet! (Working on it...)

Ways

  • ECE1747 - Parallel Programming
  • ECE1755 - Parallel Computer Architecture
  • CSC2227 - Topics in the Design and Implementation of Operating Systems
  • ECE1754 - Parallelizing Compilers
  • ECE540   - Optimizing Compilers
  • ECE1764 - Algorithms and Data Structures
  • ECE1636 - Supervisory Control of Discrete-Event Systems
  • CSC2232 - Topics in System Performance and Reliability

Work

  • TA: ECE1755 - Parallel Computer Architecture
  • TA: ECE540 - Optimizing Compilers
  • TA: APS111 - Engineering Strategies and Practice