Illuminating and Interacting with the Notional Machine in Introductory Programming Courses
Add to Google Calendar
Programming is an essential skill in computing and engineering fields, but research shows many students are not competent programmers even after completing initial programming courses. A widely understood challenge in programming education is that the notional machine, which defines how static program code translates to a dynamic entity at runtime, is often a black-box to students. In this talk, I will discuss an approach to attacking this problem using a web-based program visualization tool called "Labster" for interactive learning experiences in introductory programming courses. In particular, I will provide an overview of the Labster system, describe its design principles and how they are guided by learning theories, and report initial results from an ongoing study of Labster integrated into lab exercises in the eecs280 course at the University of Michigan. I will also discuss my teaching philosophy and engage the audience with a brief example of what might appear in a lecture on writing recursive code in C++.
James Juett is a PhD candidate at the University of Michigan. His first teaching experiences were as an undergraduate while working one-on-one with students as a math lab tutor and as supplemental instruction leader at Wartburg College. During his graduate program at the University of Michigan, he has served as a Graduate Student Instructor (GSI) over eight terms for eecs492, eecs280, and eecs281. In 2015, he received the Rackham Graduate School Outstanding GSI award. James's research focuses on the use of interactive program visualization tools to create more effective experiences for students in introductory programming education. He is a believer in constructivist principles, the power of active learning, and the idea that you do not have to understand how to teach "“ you have to understand how students learn.