Geoffrey Lindsay Herman

Geoffrey Lindsay Herman
Geoffrey Lindsay Herman he/him/his
  • Severns Teaching Associate Professor
3213 Siebel Center for Comp Sci

For More Information


Dr. Geoffrey L. Herman is the Severns Teaching Associate Professor in the Department of Computer Science at the University of Illinois at Urbana-Champaign. He earned his Ph.D. in Electrical and Computer engineering from the University of Illinois at Urbana-Cha¬mpaign as a Mavis Future Faculty Fellow and conducted postdoctoral research in the School of Engineering Education at Purdue University.

His was awarded the IEEE Education Society Mac Van Valkenburg Early Career Teaching Award and the Scott H. Fisher Computer Science Teaching Award. He helped found the Grainger College of Engineering’s Strategic Instructional Innovations Program, which has been empowering faculty innovation in teaching for over 10 years and has provided seed funding that has led to several millions of dollars in external grant funding and hundreds of research papers. He is also a leader in faculty professional development, leading national workshops on professional development for computer science teaching faculty and creating peer mentoring networks for engineering teaching faculty through the Teaching Professionals Program.

His research focuses on how students learn engineering and computing concepts and studying processes for creating systemic change in how engineering and computer science are taught in college settings. His research on students’ misconceptions in programming was awarded the best paper in the first 50 years of the ACM Special Interest Group, Computer Science Education. His research has been awarded over $7 million in external funding and has resulted in over 120 peer-reviewed journal articles and conference papers.

He is a board member of the Computer Research Association Education committee. He is also an associate editor for the Journal of Engineering Education.

Teaching Statement

Students are humans.

Students are not brains on sticks. When I first began teaching, I missed this. I focused so much on crafting perfect explanations and was dismayed when students didn’t learn well. I responded by studying cognitive psychology to understand why learning is difficult. This knowledge improved my teaching, but was also inadequate, addressing my students’ cognition but not the rest of their being. Students come to my courses with complex and varied motivations, experiences, and knowledge all contextualized by history, politics, and culture. I’ve since become a student of organizational psychology, sociology, counseling psychology, and history. I’m beginning to understand the systemic factors that give some students a head start and keep others shackled at the starting line. I’ve started to scratch the surface of how things like cultural narratives and social media can paralyze students with fears of inadequacy and drive them away from a field where they could thrive. I am cultivating what I hope is a holistic teaching philosophy that embraces the needs of all my students.

I design sequences of activities that require students to put their knowledge and skills into action. Before coming to class in CS 233 Computer Architecture, students watch short video lectures and then complete a short, autograded assignment. Then in class, students solve problems on the same material in a group with their peers. These assignments require students to use their knowledge in many ways, explaining their reasoning to peers, answering autograded questions, and wrestling with reflection questions that ask them why a solution was sufficient or how concepts interact. These multi-modality activities are critical for helping students develop robust knowledge and the ability to use it flexibly. Students then engage the same material yet again after class through short homework assignments and longer lab assignments. I try to directly build on knowledge from one module to the next. If not possible, I assign short exercises late in the semester to remind students of content from earlier in the course. The possibility of success or failure, the immediate feedback, the minimal points, and the repeated exercises on the same content all help students’ bodies and minds experience the information as important and give them enough practice to begin automating their use of knowledge to achieve higher-level performance.

I design my courses with my students’ mental and emotional health in mind. While some stress is needed to trigger deeper learning, too much stress makes learning impossible. Rather than having a few high-stakes exams, I use many lower stakes quizzes to minimize test anxiety. I also provide students with a second chance on quizzes for when they perform poorly. These techniques make stress more manageable and also reinforce active learning with spaced repetition in their learning.

I also share about my own struggles with mental health and frequently remind students about the accommodations we provide. The use of frequent assessments and course rhythms helps me detect when students are struggling. For example, students who are struggling with their emotional health during my class frequently start by missing deadlines for the labs and then missing quizzes and then homework assignments. By monitoring when students miss multiple deadlines, I have been better able to reach out to students before they enter a freefall and get them the help and accommodations they need.

I use collaborative learning for my in-class activities to fight these historic injustices. We require all students in CS 233 to rotate group members for the first couple weeks of the semester so that isolated students have a chance to network and build their social capital and find study partners. When we need to assign students to teams, we make sure that students from minoritized groups are not isolated on their teams but get to see other minoritized students in CS and normalize their own presence. I also focus on hiring students from underrepresented groups to my course staff to help student teams during class and further increase their visible representation in my classroom. Collaborative learning also provides a context where students feel that they are not alone in their struggles to learn but instead build connections with others through shared struggles. The use of collaborative learning also gives me the freedom to devote more of my attention and energy to students who are struggling. When helping teams during class, I normalize failure and struggle by always reinforcing that each team had a question or made a mistake that I had seen other teams have and that groups were not alone in their struggles. I essentially get to give 8 hours of individualized attention to students every week, even in a class of 400.

I am committed to continuing to learn as a teacher and grow as a person so that I can better dignify and humanize my students, caring for their whole persons and not just their learning outcomes.

Graduate Research Opportunities

I mentor students who are interested in engineering education research and who are interested in learning how to design better instruction.

Undergraduate Research Opportunities

I welcome any student who is interested in improving engineering and computer science education to join me in improving their own learning experiences and those of their peers through undergraduate research opportunities. I am currently primarily interested in studying how we can help students learn in courses like CS 225 (Data Structures) and CS 233 (Computer Architecture) and in how we can use technologies like the Computer-Based Testing Facility to help students learn more.

Selected Articles in Journals

Refereed Conference Papers and Presentations

Recent Courses Taught

  • CS 199 233 - Supplementary proj for CS-233
  • CS 233 - Computer Architecture
  • CS 233 - Computer Architecture Honors
  • CS 296 33 - Honors Course
  • CS 500 - Topics in Comp Ed Rsrch
  • CS 591 CED - Advanced Seminar
  • CS 591 CED - Computers & Edu Reading Grp
  • CS 591 CED - Computers and Education
  • CS 598 GLE - Learning & Comp. Science Topic
  • CS 598 GLH - Learning and Comp Science