Dr. Porter is an Assistant Teaching Professor in the Computer Science and Engineering Department at the University of California, San Diego. Professor Porter earned his undergraduate degree in computer science from the University of San Diego (2000), and his Masters and Ph.D in computer science from UC San Diego (2006 and 2011, respectively). He was an Assistant Professor at Skidmore College for three years, prior to joining the faculty at UC San Diego in 2014. Advised by Professor Dean Tullsen, his Ph.D. is in Computer Architecture (high-level processor design) where he focused on improving single-thread performance in the Multi-Core era. Although still active in computer architecture, he is now primarily focused on computer science education research where his emphasis is on identifying core course concepts which are essential to student success, developing pedagogies which facilitate student engagement with those concepts, and creating assessment instruments to evaluate the effectiveness of those pedagogical practices. His research, funded by several National Science Foundation grants, has earned the Best Student Paper award at the International Conference on High Performance Computer Architecture (HPCA) in 2011, the Best Paper Award at the Special Interest Group on Computer Science Education (SIGCSE) Technical Symposium in 2013, and the Chair’s Award at the International Computing Education Research Conference (ICER) in 2014. He also earned the Skidmore College President’s Award for his co-development of interdisciplinary classes designed to improve scientific literacy. Most importantly, Professor Porter loves teaching and working with students; he has taught a wide array of courses including Introductory Programming in Java, Data Structures, Computer Organization, Computer Architecture, Operating Systems, and Teaching Methods in Computer Science.


Data Structures and Performance

Object Oriented Programming in Java

Capstone: Analyzing (Social) Network Data

Mastering the Software Engineering Interview

Advanced Data Structures in Java