“…While the learning outcomes of a course in programming languages are well established (Adams et al, 2006;Pombrio et al, 2017), the most effective approach to teaching a language course is not a settled matter. There are a myriad of interpreter-based (Friedman et al, 2001;Queinnec, 2003;Krishnamurthi, 2012), survey-based (Louden, 2002;Scott, 2009;Sebesta, 2015), and other approaches (Kumar, 2005;Adams et al, 2006;Fraser et al, 2015;Lee, 2015;Lewis et al, 2016). Over the past 14 years, we have tried various approaches toward teaching programming languages, including the two predominant approaches-the comparative/survey approach and the interpreter approach-which both involve challenges.…”