A picture of me, possibly qualifying as recent.

John (Jack) Sampson

Assistant Professor

Dorothy Quiggle Faculty Development Assistant Professorship

Contact information:
Email - [lastname]@cse.psu.edu
Office - 354E Information Sciences and Technology Building
    University Park, PA 16802
Phone - Ext. 57496
CSE Department, School of EECS, College of Engineering, PSU


I mainly teach computer architecture/organization and digital design classes, the former at both undergraduate and graduate levels, and the latter at the undergraduate level. One of my teaching goals is to ensure that students are introduced to power and energy constraints and optimizations as early and as often as possible in their academic experience, in the hope that computational efficiency will become an intuitive consideration for them. Where practical within the constraints of the lesson plan, I like to expose students at both the graduate and undergraduate levels to both historical and emerging alternatives to the status quo as a reminder that the engineering aspect of computer engineering entails sensitivity to both technological and economic contexts. (Also, possibly, because I am excessively fond of tangents and parenthetical asides.) While I do believe there are some timeless lessons to be gleaned from the study of computer architecture and related topics, it is also important to examine the ways in which actual commercial designs diverge from clean, research-derived principles as well as the ways in which they embody them.

In teaching, as well as research, I find value in building working systems, and I am currently in the process of integrating FPGA-targeted material into three of the undergraduate courses in the Penn State computer engineering curriculum.
Fall 2016
PSU CSE 530 (Graduate) Computer Architecture Instructor
Text: Hennessy and Patterson, Computer Architecture: A Quantitative Approach 5th ed.
Notes: A core course in the PSU CSE graduate curriculum, the graduate computer architecture course is taught in an introductory fashion under the assumption that many incoming students may have only taken a computer organization (vs. computer architecture) course in their undergraduate studies. ~25 students
Spring 2016
PSU CSE 530 (Graduate) Computer Architecture Instructor
Text: Hennessy and Patterson, Computer Architecture: A Quantitative Approach 5th ed.
Notes: A core course in the PSU CSE graduate curriculum, the graduate computer architecture course is taught in an introductory fashion under the assumption that many incoming students may have only taken a computer organization (vs. computer architecture) course in their undergraduate studies. 24 students
Fall 2015
PSU CMPEN 270 (Undergraduate) Digital Design: Theory and Practice Co-instructor with Vijaykrishnan Narayanan
PSU CMPEN 271 (Undergraduate) Introduction to Digital Systems Co-instructor with Vijaykrishnan Narayanan
Text: Brown and Vranesic, Fundamentals of Digital Logic with Verilog Design 3rd ed.
Notes: Changes from last instance include lab assignments split into simulation / on FPGA portions (so that 271 students can get similar practice opportunities to 270 students for topics covered in labs), a significant reorganization of topic ordering, and the development of an extensive set of online practice and assessment tools. 320 students across all co-taught sections.
Spring 2015
CSE 598C (Graduate) Seminar on Computer Architectures for Emerging Technologies and Applications Instructor
Text: None. Assorted paper readings.
Notes: Graduate seminar focusing on such topics as non-volatile energy-harvesting processors, computing with DNA, computing with coupled oscillators, and computer architectures for emulating and simulating spiking neural networks. ~8 students
Fall 2014
PSU CMPEN 270 (Undergraduate) Digital Design: Theory and Practice Co-instructor with Vijaykrishnan Narayanan
PSU CMPEN 271 (Undergraduate) Introduction to Digital Systems Co-instructor with Vijaykrishnan Narayanan
Text: Brown and Vranesic, Fundamentals of Digital Logic with Verilog Design 3rd ed.
Notes: 270 and 271 were taught as a single lecture section (270 had labs in addition to lectures, 271 did not). Both Professor Narayanan and I were convinced that the two classes should A) be merged (not practically achievable in the short term, aside from concurrent lecture scheduling) and B) be modernized. The Fall 2014 semester's offering of 270/271 featured a complete reworking of the curriculum for digital logic/design - restructured syllabus, new textbook, new lecture slides, new assignments, new labs. The new version of the class features FPGA-targeted lab material, so that students can viscerally interact with (verilog-specified) designs of non-trivial size and complexity. In retrospect, the asymmetry of labs/no-labs in 270/271 was not handled as well as it could have been, but this, and other unexpected logistical hurdles, should hopefully be addressed in the next instantiation of these two classes. ~300 students across all sections
Spring 2014
PSU CMPEN 431 (Undergraduate) Introduction to Computer Architecture Instructor
Text: Patterson and Hennessy, Computer Organization and Design 5th ed.
Notes: PSU has both a computer organization (CMPEN 331) and computer architecture course (CMPEN 431) as part of its undergraduate offerings. This, the latter course, is only required for CMPEN majors and is an elective for CS majors. Previous instances of this course focused much more heavily on performance than efficiency, and I introduced material on the rise of dark silicon, mobile processing, and both material and projects dealing with the balance between performance and energy optimizations. ~60 students
Fall 2013
PSU CSE 530 (Graduate) Computer Architecture Instructor
Text: Hennessy and Patterson, Computer Architecture: A Quantitative Approach 5th ed.
Notes: A core course in the PSU CSE graduate curriculum, the graduate computer architecture course is taught in an introductory fashion under the assumption that many incoming students may have only taken a computer organization (vs. computer architecture) course in their undergraduate studies. During this semester, I updated the course with a new module on mobile processors. ~25 students
Fall 2011
UCSD CSE 291 (Graduate) Smartphone Processor Design Co-Instructor with Michael Bedford Taylor
Text: None. Assorted paper readings.
Notes: Graduate special-topics class on processing elements with smartphones. Mostly focused on the history and future of the MAP(mobile-application-processor) core, but also delved into baseband processing, mobile memory/storage, and SoC issues in the smartphone domain. ~15 students