Geoffrey Herman

Research and Reform: Creating change in engineering and computer science education


Teaching Interests

My interests are primarily focused on first- and second-year computer science and engineering courses. These courses include digital logic design, computer organization, introductory programming, analog signal processing, digital signal processing.

I am also interested in teaching graduate-level courses in engineering and computer science education such as cognition and and the science of learning, educational research methodologies, assessment.

Teaching Experience

Course Terms Taught
Learning and Computer Science Spring 2018
Online Learning Systems Fall 2017
Computer Architecture (CS 233) Fall 2016, Spring 2017, Fall 2017, Spring 2018, Fall 2018
Survey of Engineering Education Research Spring 2015
Introduction to Computer Engineering Summer 2008, Fall 2012, Spring 2013, Fall 2013, Spring 2014
Digital Signal Processing Summer 2010

Evidence-Based Instructional Practices

I incorporate a variety of evidence-based instructional practices (instructional practices demonstrated to be effective by research) into my teaching. Resources I use to implement a variety of these practices can be found in my Teaching Portfolio. Selected exemplars can be found below.

Flipped classroom (pdf): I create video lectures for students to watch before class. Students complete a small homework exercise before coming to class. We then work through a series of short problems in class to help students better understand the concepts in class. Additional slides can be found in my Teaching Portfolio.

Video lectures designed according to principles from Cognitive Load Theory (video): To maximally take advantage of how the brain processes information from videos, the audio and visual channels of a video should never have duplicate information (e.g., never read the words on screen) but instead should complement each other, forcing the video watcher to connect the words being spoken with the image being displayed. This tactic forces the watcher to actively engage when watching, making neural connections and accelerating learning. Additional videos can be found in my Teaching Portfolio.

Peer Instruction (pdf): In lecture-based classes, I use many short, multiple-choice questions to help students assess their own learning and engage students in rapid feedback. Students are encouraged to talk to their neighbors to help them further refine their understanding of course content.

Assertion-Evidence slide design (pdf): To help students easily identify the main point of each slide in a lecture, slide headings are full-sentence assertions rather than simply topical headings. The rest of the slide is designed as evidence to support the main assertion.

Context Rich Collaborative Problem Solving (pdf):  In discussion-based classes, students work in teams of 3-4 solving complex, real-world problems that engage students in deeper thinking about core concepts and problem solving methods. Additional worksheets can be found in my Teaching Portfolio.

CATME team assignments: We use the CATME ( tool to assign students to teams for collaborative problem solving. The CATME tool can help create teams that help all students feel like they can contribute and improve learning.

Frequent testing and second-chance testing: With the help of the PrairieLearn platform (, students take frequent, small exams rather than 1 or 2 large midterm exams. These frequent exams help students stay current with course material and deepen students’ learning of core course material. To encourage mastery-oriented learning, students can opt to re-take any exam to improve their performance. Anyone is welcome to log into PrairieLearn and peruse our homework assignments and practice exams.

Teaching Philosophy Statement

For me, teaching is the natural culmination of learning. I love to learn and I love to teach. Consequently, I want to enrich others with what I have learned and share my enthusiasm for learning.

As this natural love for teaching has been complemented by my research, I have become passionate about promoting two things: students’ intrinsic motivation to learn and their development of coherent disciplinary conceptual frameworks. When students develop a coherent disciplinary conceptual framework, they can learn new concepts faster and better apply their knowledge to new situations. When students are properly motivated, they learn more and are more willingly to think deeply. These two goals mutually support each other and powerfully accelerate learning.

To improve my teaching, I make decisions through my own conceptual framework for good teaching and learning: Learning and intrinsic motivation are promoted when students have a strong sense of purpose, autonomy, and competence. As a teacher I must communicate and articulate the disciplinary purpose for why students must learn the course content, but this disciplinary purpose must also intersect my students’ personal purposes for learning. I structure my courses to give students the autonomy to discover and explore their personal purpose within the discipline by presenting them with carefully bounded choices. I then support these choices with carefully selected course structures to give my students a sense of competence and a belief that they can succeed.

Finding the intersection of disciplinary and personal purpose

At its core, each discipline is built upon a core conceptual framework: Classical mechanics is built upon Newton’s laws and economics is built upon opportunity cost. In my instruction of computing courses, I discovered that state plays a vital role in computing’s core conceptual framework. When fully understood, these frameworks irreversibly change the way students understand a discipline and even affect the way they view the world: Once students grasp Newtonian mechanics, they never see the flight path of a ball in the same way. Additionally, when students understand these frameworks, they gain a powerful tool to organize the rest of their learning in that discipline. My goal is to identify these frameworks that define the purpose of the discipline and then help my students find and grasp these frameworks that will change the way they live. For example, I structure my computing courses to reveal that computers do two things: store state and manipulate state through computation.

Each discipline also promotes certain habits of mind. In order to develop the mind of an engineer, students must learn to think analytically by interpreting project requirements, decomposing problems into manageable parts, and assessing the quality of their final product. To teach analytical thinking, I model it in class and give students time to practice it: I speak my thought processes aloud without skipping steps, have students explain their reasoning to others in small groups, and require that students document their solution strategies when solving homework problems.

By setting a clear disciplinary purpose that is bounded by the conceptual framework and the habits of mind, I am able to strategically decide what content to include in the course and avoid the temptation to “cover the material.” In my introductory computing courses, I am ecstatic if my students understand the pervasive nature of state in computing, because I know that I have equipped them for careers in not only computing, but also signal processing, control theory, systems engineering, and many other engineering disciplines. Because I establish a strong disciplinary purpose for the classroom, I can create meaningful bounds for what activities will promote students’ pursuit of disciplinary expertise. However, these bounds are not oppressive, but they can actually provide more opportunities for students to discover how their personal values and purposes align with the discipline.

Purpose and autonomy

Students can discover how their personal values align with the discipline and discover their intrinsic motivation to learn, only if they are given a degree of autonomy to explore the discipline on their own terms. This exploration requires that students be presented with choices to choose the what, why, and how they learn while being constructively bounded by the clearly defined disciplinary purpose. For example, in my computing courses, I want my students to understand state and its centrality to computing, but I am less concerned about the exact contexts of their learning. When one group of students was concerned about sustainability and the environment, I let them focus on how the design of state machines and digital circuits can be optimized to minimize power consumption. When another group was more interested in designing new computer architectures, I let that group focus on designing new state machines with practical specifications. Both groups of students learned about the importance of state, but they also were allowed to embrace their personal purposes.

Through classroom mechanisms such as peer-review, online tutorials, and collaborative learning, I can provide students with the choices to pursue these different learning goals and activities. This freedom to pursue personal purpose has motivated my students to pursue projects that far exceeded the scope of the standard syllabus and become more interested in remaining in computing. For example in my theory-focused digital logic class, I have had a team teach themselves hardware description languages to program Field-Programmable Gate Arrays, digital to analog conversion, and voltage divider circuits, just so that they could learn how to control physical devices with digital technology.

Autonomy, structure, and a sense of competence

As I increase my students’ autonomy to choose what, why, and how they learn, I can further promote my students’ intrinsic motivation by providing the classroom structures that positively support and bound their autonomy. For example, I let my students negotiate what topics and types of assignments will be included in the syllabus of my courses. I support this autonomy, by providing structure for the negotiations: I explain why certain topics or activities are non-negotiable according to my disciplinary purpose, but I give students the autonomy to choose purpose-driven optional topics and activities. I explain how these optional topics or activities support the disciplinary purpose and can support different personal purposes. I also provide clearly defined rubrics and grading schemes that not only assess my students’ learning, but also reinforce the disciplinary purpose. These clearly defined course structures provide students with a sense of competence (a sense of their ability to succeed) in a classroom environment that is often radically different from their other courses.

To further support each students’ sense of competence, I never grade on a curve. I set clear expectations of what abilities students need to demonstrate, and I communicate that each student can exceed my expectations. Because I want my students to fully realize their autonomy as self-directed learners, I emphasize questioning techniques rather than presenting information directly. Finally, I emphasize team-based learning and teach students how to create effective teams. While students often feel uncertain when pursuing goals by themselves, effective learning teams can increase self-efficacy and enable students to learn more and accomplish more during their learning activities.


The three central goals of promoting students’ purpose, autonomy, and competence will improve my students’ intrinsic motivation to learn and help them develop those key conceptual frameworks that can make them effective engineers, leading my students to become the self-directed learners that will become the researchers and innovators that can change the world.


Innovation in Engineering and STEM Education
SIIP_WIDER network
How Students Learn Engineering and Computer Science
Designing Educational Assessment Tools
Intrinsic Motivation Course Conversions