Steve Millman is a Professor of Practice in the School of Electrical, Computer and Energy Engineering who innovated his Digital Design Fundamentals (CSE/EEE 120) and Python (EEE 419) courses.

To give his students the opportunity to practice logic design problems and receive instantaneous feedback, Millman programmed his own software that randomly generates practice problems for his Digital Design course. He called this software Logic Tutor. The software is able to provide students immediate feedback through auto-graded practice problems. If students are required to complete four problems of a particular type, Logic Tutor will continue to auto-generate problems and provide feedback until students have provided adequate correct answers. There is no penalty for wrong answers and students are encouraged to work at their own pace to master course concepts.

Logic Tutor was inspired by a similar program that Millman’s daughter, Leah, used for a circuits course. That course, EEE 202, uses Circuit Tutor, which was created by Prof. Brian Skromme and a team under three grants from the National Science Foundation. Millman saw that she was able to deeply learn and master concepts through random practice problems. Millman wanted something similar for his students that was free to use. So, he programmed it himself.

One of the things that bothered Millman in the standard way of teaching was the disconnect of providing students feedback on their homework assignments and assessing them on an exam. Millman shares, “They did the homework, took the quiz, didn’t do so well, and found out that they’d worked all the problems incorrectly.” This was one of the motivators for developing the instantaneous feedback of Logic Tutor, but also the motivation to flip his classes.

Flipped learning, a combination of online and in-person learning, reverses the traditional order of learning by having students first engage with learning materials (recorded lectures, readings) prior to coming to class, and then faculty use class time for hands-on activities (practice exercises, group work). Millman spends his freed up class time giving group quizzes in his Python course. He shared that he has found this approach to student learning creates “animated discussions” and has improved students comprehension of concepts.

Millman worked for 30 years in industry before beginning his teaching career. He says that he enjoys “seeing the light bulb come on” when students are struggling with complex problems. “Those moments are really rewarding,” he says.

Several students shared their experience with Logic Tutor in Millman’s class. Samantha Janssen, an electrical engineering student, describes Logic Tutor as “very easy to use and straightforward” and states that the instant feedback helped her work through problems that were fresh in her mind.  

Annika Buelt, an electrical engineering student, shared that it improved her learning. “I’m able to do more practice and I’m able to work with others on homework,” Buelt says.

Nicholas Seidel, a computer science student, adds that the “varying levels of difficulty” and self paced approach of Logic Tutor allowed him to use his “own style of learning” and that it was a “critical piece” of his success in the course.

Watch the Academic Innovator video below to hear more from Millman and his students.


If interested in integrating similar practices into your courses, please reach out to the Learning and Teaching Hub team.

This article and video are part of a faculty spotlight series, Academic Innovators, that provides recognition and insight for the inspirational work and research being done in the FSE community. Please consider nominating a faculty member (yourself, included!) to be featured.