I am a Teaching Professor of Computer Science at UC San Diego interested in computer science education research and computer architecture. I co-founded the Computing Education Research Laboratory dedicated to better understanding how students learn computing and how we can best help them succeed.
I am actively involved in studying Peer Instruction in computing and helping faculty adopt Peer Instruction in their classes. If you are interested in using Peer Instruction in your classes, please feel free to contact me. Materials for Peer Instruction in Computer Science courses and practical guidance for those new to Peer Instruction can be found at peerinstruction4cs.org
My computer science education research interests include Peer Instruction, concept inventories, predicting student outcomes, CS1, CS2, media computation, active learning, flipped classrooms, and program evaluation. For active computer science education research projects, please see my Projects page.
My architecture research interests include speculative multithreading, transactional memory, security, thread-level parallelism, branch-prediction, cache-design, chip-multiprocessors, simultaneous multithreading, process scheduling, architecture-aware scheduling, and cache coherence.
I was previously an Assistant Professor at Skidmore College and an instructor at the University of San Diego. I received my MS in 2006 and Ph.D. in 2011 in computer architecture, superbly advised by Dean Tullsen at UC San Diego. Prior to graduate school, I was a Lieutenant in the US Navy serving as Navigator of USS Milius (DDG-69). I received my bachelors degree in computer science at the University of San Diego.