This material is in early beta: over 300 suggestions and corrections are waiting to be folded in, some quite significant. Changes should be in place by July 2018, at which times printed copies and downloadable electronic copies will be made available.

Bibliography

[Abba2012] Janet Abbate. Recoding Gender: Women’s Changing Participation in Computing. MIT Press, 2012. Describes the careers and accomplishments of the women who shaped the early history of computing, but have all too often been written out of that history.

[Abel2009] Andrew Abela. Chart suggestions - a thought starter. http://extremepresentation.typepad.com/files/choosing-a-good-chart-09.pdf, 2009. A graphical decision tree for choosing the right type of chart to present information.

[Adam1975] Frank Adams and Myles Horton. Unearthing Seeds of Fire: The Idea of Highlander. Blair, 1975. A history of the Highlander Folk School and its founder, Myles Horton, who inspired many other social change organizations.

[Aike1975] Edwin G. Aiken, Gary S. Thomas, and William A. Shennum. Memory for a lecture: Effects of notes, lecture rate, and informational density. Journal of Educational Psychology, 67(3):439–444, 1975. An early landmark study showing that taking notes improved retention.

[Aiva2016] Efthimia Aivaloglou and Felienne Hermans. How kids code and how we know. In Proc. 2016 International Computing Education Research Conference (ICER’16). Association for Computing Machinery (ACM), 2016. An empirical study of how Scratch is used based on analysis of 250,000 projects.

[Alha2018] Sohail Alhazmi, Margaret Hamilton, and Charles Thevathayan. CS for all: Catering to diversity of master’s students through assignment choices. In Proc. 2018 Technical Symposium on Computer Science Education (SIGCSE’18). Association for Computing Machinery (ACM), 2018. Reports improvement in learning outcomes and student satisfaction in a course for students from a variety of academic backgrounds which allowed them to choose between variant domain-related assignments.

[Alin1989] Saul D. Alinsky. Rules for Radicals: A Practical Primer for Realistic Radicals. Vintage, 1989. A widely-read guide to community organization written by one of the 20th Century’s great organizers.

[Alqa2017] Basma S. Alqadi and Jonathan I. Maletic. An empirical study of debugging patterns among novices programmers. In Proc. 2017 Technical Symposium on Computer Science Education (SIGCSE’17). Association for Computing Machinery (ACM), 2017. Reports patterns in the debugging activities and success rates of 142 novice programmers.

[Alta2015] Amjad Altadmri and Neil C.C. Brown. 37 million compilations: Investigating novice programming mistakes in large-scale student data. In Proc. 2015 Technical Symposium on Computer Science Education (SIGCSE’15). Association for Computing Machinery (ACM), 2015. Summarizes the types of errors made by thousands of novice Java programmers.

[Ambr2010] Susan A. Ambrose, Michael W. Bridges, Michele DiPietro, Marsha C. Lovett, and Marie K. Norman. How Learning Works: Seven Research-Based Principles for Smart Teaching. Jossey-Bass, 2010. An excellent overview of what we know about education and why we believe it’s true, covering everything from cognitive psychology to social factors.

[Ande2001] Lorin W. Anderson and David R. Krathwohl, editors. A Taxonomy for Learning, Teaching, And Assessing: A Revision of Bloom’s Taxonomy of Educational Objectives. Longman, 2001. A landmark revision to Bloom’s Taxonomy.

[Armo2008] Michal Armoni and David Ginat. Reversing: A fundamental idea in computer science. Computer Science Education, 18(3):213–230, Sep 2008. Argues that the notion of reversing things is an unrecognized fundamental concept in computer science education.

[Atki2000] Robert K. Atkinson, Sharon J. Derry, Alexander Renkl, and Donald Wortham. Learning from examples: Instructional principles from the worked examples research. Review of Educational Research, 70(2):181–214, Jun 2000. A comprehensive survey of worked examples research at the time.

[Avel2013] Emma-Louise Aveling, Peter McCulloch, and Mary Dixon-Woods. A qualitative study comparing experiences of the surgical safety checklist in hospitals in high-income and low-income countries. BMJ Open, 3(8), Aug 2013. Reports on surgical checklist implementations and effects in the UK and Africa.

[Bacc2013] Alberto Bacchelli and Christian Bird. Expectations, outcomes, and challenges of modern code review. In Proc. 2013 International Conference on Software Engineering (ICSE’13), May 2013. A summary of work on code review.

[Bari2017] Titus Barik, Justin Smith, Kevin Lubick, Elisabeth Holmes, Jing Feng, Emerson Murphy-Hill, and Chris Parnin. Do developers read compiler error messages? In Proc. 2017 International Conference on Software Engineering (ICSE’17). Institute of Electrical and Electronics Engineers (IEEE), May 2017. Used eye tracking to show that developers do read error messages, that doing so is as hard as reading source code, and that it takes 13-25% of total task time.

[Bark2014] Lecia Barker, Christopher Lynnly Hovey, and Leisa D. Thompson. Results of a large-scale, multi-institutional study of undergraduate retention in computing. In Proc. 2014 Frontiers in Education Conference (FIE’14). Institute of Electrical and Electronics Engineers (IEEE), Oct 2014. Data from a large survey of US institutions finds that meaningful assignments, faculty interaction with students, student collaboration on assignments, and (for male students) pace and workload relative to expectations drive retention, but interactions with teaching assistants or with peers in extracurricular activities don’t.

[Bark2015] Lecia Barker, Christopher Lynnly Hovey, and Jane Gruning. What influences CS faculty to adopt teaching practices? In Proc. 2015 Technical Symposium on Computer Science Education (SIGCSE’15). Association for Computing Machinery (ACM), 2015. Describes findings from a two-part study of how computer science educators adopt new teaching practices.

[Barn2002] Susan M. Barnett and Stephen J. Ceci. When and where do we apply what we learn?: A taxonomy for far transfer. Psychological Bulletin, 128(4):612–637, 2002. Identifies nine different dimensions of “far transfer” and shows that discussion of its existence is muddied by confusion among them.

[Basi1987] Victor R. Basili and Richard W. Selby. Comparing the effectiveness of software testing strategies. IEEE Transactions on Software Engineering, SE-13(12):1278–1296, Dec 1987. An early and influential summary of work on the effectiveness of code review.

[Basu2015] Soumya Basu, Albert Wu, Brian Hou, and John DeNero. Problems before solutions: Automated problem clarification at scale. In Proc. 2015 Conference on Learning @ Scale (L@S’15). Association for Computing Machinery (ACM), 2015. Describes a system called OK in which students have to unlock test cases for their code by correctly answering MCQs, and presents some data showing that this is effective.

[Batt2018] Lina Battestilli, Apeksha Awasthi, and Yingjun Cao. Two-stage programming projects: Individual work followed by peer collaboration. In Proc. 2018 Technical Symposium on Computer Science Education (SIGCSE’18). Association for Computing Machinery (ACM), 2018. Found that learning outcomes were improved by two-stage projects (work individually, then re-work the same problem in pairs).

[Baue2015] Mark S. Bauer, Laura Damschroder, Hildi Hagedorn, Jeffrey Smith, and Amy M. Kilbourne. An introduction to implementation science for the non-specialist. BMC Psychology, 3(1), Sep 2015. Explains what implementation science is, using examples from the US Veterans Administration to illustrate.

[Beck2013] Leland Beck and Alexander Chizhik. Cooperative learning instructional methods for CS1: Design, implementation, and evaluation. ACM Transactions on Computing Education, 13(3):10:1–10:21, Aug 2013. A three-year study found that cooperative learning enhances learning outcomes and self-efficacy in CS1.

[Beck2016] Brett A. Becker, Graham Glanville, Ricardo Iwashima, Claire McDonnell, Kyle Goslin, and Catherine Mooney. Effective compiler error message enhancement for novice programming students. Computer Science Education, 26(2-3):148–175, Jul 2016. Found that improved error messages helped novices learn faster.

[Beck2018b] Brett A. Becker, Kyle Goslin, and Graham Glanville. The effects of enhanced compiler error messages on a syntax error debugging test. In Proc. 2018 Technical Symposium on Computer Science Education (SIGCSE’18). Association for Computing Machinery (ACM), 2018. Had students remove syntax errors from code they did not write, and found a positive effect on number of errors fixed, but no overall effect on the number of non-compiling submissions or student scores, which may reconcile apparently contradictory results of earlier studies, and cautions that effects are weak.

[Beni2017] Gal Beniamini, Sarah Gingichashvili, Alon Klein Orbach, and Dror G. Feitelson. Meaningful identifier names: The case of single-letter variables. In Proc. 2017 International Conference on Program Comprehension (ICPC’17). Institute of Electrical and Electronics Engineers (IEEE), May 2017. An empirical study showing that use of single-letter variable names doesn’t affect ability to modify code, and that some single-letter variable names have implicit types and meanings.

[Benk2005] Yochai Benkler. Common wisdom: Peer production of educational materials. http://www.benkler.org/Common_Wisdom.pdf, 2005. An influential early analysis of commons-based peer production that seems optimistic in retrospect.

[Benn2000] Patricia Benner. From Novice to Expert: Excellence and Power in Clinical Nursing Practice. Pearson, 2000. A classic study of clinical judgment and how expertise develops.

[Benn2007] Jens Bennedsen and Michael E. Caspersen. Failure rates in introductory programming. ACM SIGCSE Bulletin, 39(2):32, Jun 2007. A multi-site survey that found 67% of students pass CS1, with wide variation (5% to 100%).

[Biel1995] Katerine Bielaczyc, Peter L. Pirolli, and Ann L. Brown. Training in self-explanation and self-regulation strategies: Investigating the effects of knowledge acquisition activities on problem solving. Cognition and Instruction, 13(2):221–252, Jun 1995. Showed that training learners in self-explanation accelerated their learning.

[Bigg2011] John Biggs and Catherine Tang. Teaching for Quality Learning at University. Open University Press, 2011. A step-by-step guide to lesson development, delivery, and evaluation for people working in higher education.

[Bink2012] Dave Binkley, Marcia Davis, Dawn Lawrie, Jonathan I. Maletic, Christopher Morrell, and Bonita Sharif. The impact of identifier style on effort and comprehension. Empirical Software Engineering, 18(2):219–276, May 2012. A series of studies found that reading and understanding code is fundamentally different from reading prose, that experienced developers are relatively unaffected by identifier style, but beginners benefit from the use of camel case (versus pothole case).

[Blik2014] Paulo Blikstein, Marcelo Worsley, Chris Piech, Mehran Sahami, Steven Cooper, and Daphne Koller. Programming pluralism: Using learning analytics to detect patterns in the learning of computer programming. Journal of the Learning Sciences, 23(4):561–599, Oct 2014. An attempt to categorize novice programmer behavior using machine learning that was largely unsuccessful at the course level, but found interesting patterns on individual assignments.

[Bloo1984] Benjamin S. Bloom. The 2 sigma problem: The search for methods of group instruction as effective as one-to-one tutoring. Educational Researcher, 13(6):4–16, Jun 1984. Found that students tutored one-to-one using mastery learning techniques performed two standard deviations better than those who learned through conventional lecture, i.e., that tutored students did better than 98% of the control class.

[Boha2011] Mark Bohay, Daniel P. Blakely, Andrea K. Tamplin, and Gabriel A. Radvansky. Note taking, review, memory, and comprehension. American Journal of Psychology, 124(1):63, 2011. Presents a study showing that note-taking improves retention most at deeper levels of understanding.

[Boll2014] David Bollier. Think Like a Commoner: A Short Introduction to the Life of the Commons. New Society Publishers, 2014. A short introduction to one of the most widely used kinds of governance in human societies throughout history.

[Borr2014] Maura Borrego and Charles Henderson. Increasing the use of evidence-based teaching in STEM higher education: A comparison of eight change strategies. Journal of Engineering Education, 103(2):220–252, Apr 2014. Categorizes different approaches to effecting change in higher education.

[Bria2015] Samuel A. Brian, Richard N. Thomas, James M. Hogan, and Colin Fidge. Planting bugs: A system for testing students’ unit tests. In Proc. 2015 Conference on Innovation and Technology in Computer Science Education (ITiCSE’15). Association for Computing Machinery (ACM), 2015. Describes a tool for assessing students’ programs (with unit tests) and unit tests (using programs with deliberate errors) and finds that students often write weak tests (low coverage) and misunderstand the role of unit tests.

[Broo2016] Stephen D. Brookfield and Stephen Preskill. The Discussion Book: 50 Great Ways to Get People Talking. Jossey-Bass, 2016. Describes fifty different ways to get groups talking productively.

[Brop1983] Jere E. Brophy. Research on the self-fulfilling prophecy and teacher expectations. Journal of Educational Psychology, 75(5):631–661, 1983. A early, influential study of the effects of teachers’ perceptions of students on their later achievements.

[Brow2007] Michael Jacoby Brown. Building Powerful Community Organizations: A Personal Guide to Creating Groups that Can Solve Problems and Change the World. Long Haul Press, 2007. An excellent practical introduction to creating effective organizations in and for communities written by someone with decades of experience doing exactly that.

[Brow2014] Neil C.C. Brown and Amjad Altadmri. Investigating novice programming mistakes. In Proc. 2014 International Computing Education Research Conference (ICER’14). Association for Computing Machinery (ACM), 2014. Uses data from over 100,000 students to show that educators know less than they think about what mistakes novice programmers actually make.

[Brow2018] Neil C.C. Brown and Greg Wilson. Ten quick tips for teaching programming. PLoS Computational Biology, 14(4), April 2018. A short summary of what we actually know about teaching programming and why we believe it’s true.

[Buff2015] Kevin Buffardi and Stephen H. Edwards. Reconsidering automated feedback: A test-driven approach. In Proc. 2015 Technical Symposium on Computer Science Education (SIGCSE’15). Association for Computing Machinery (ACM), 2015. Explain a framework for identifying whether a student has adequately tested a specific feature of their code that is failing an instructor’s tests, analyzes an auto-grader’s feedback using the framework, and finds that false positives (revealing unearned hints) were roughly four times more common than true positives (earned hints revealed), while earned hints were no more likely to be revealed than they were to be obscured.

[Burg2015] Sheryl E. Burgstahler. Universal Design in Higher Education: From Principles to Practice. Harvard Education Press, second edition, 2015. A detailed description of how to make online teaching materials accessible to everyone.

[Burk2018] Quinn Burke, Cinamon Bailey, Louise Ann Lyon, and Emily Greeen. Understanding the software development industry’s perspective on coding boot camps versus traditional 4-year colleges. In Proc. 2018 Technical Symposium on Computer Science Education (SIGCSE’18). Association for Computing Machinery (ACM), 2018. A preliminary comparison of the skills and credentials that tech industry recruiters are looking for to those provided by 4-year degrees and bootcamps that found hiring managers uniformly emphasize soft skills (especially the ability to continue learning and teamwork/communication), and that while they often require 4-year degree (but not necessarily CS), they also praise bootcamp graduates for being more mature and having up-to-date knowledge and hands-on skills.

[Butl2017] Zack Butler, Ivona Bezakova, and Kimberly Fluet. Pencil puzzles for introductory computer science. In Proc. 2017 Technical Symposium on Computer Science Education (SIGCSE’17). Association for Computing Machinery (ACM), 2017. Describes a set of pencil-and-paper puzzles that can be turned into CS1/CS2 assignments, and reports a study showing that these assignments are enjoyed by students and encourage meta-cognition.

[Byck2005] Pauli Byckling, Petri Gerdt, and Jorma Sajaniemi. Roles of variables in object-oriented programming. In Proc. 2005 Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’05). Association for Computing Machinery (ACM), 2005. Presents single-variable “design patterns” common in novice programs.

[Camp2016] Jennifer Campbell, Diane Horton, and Michelle Craig. Factors for success in online CS1. In Proc. 2016 Conference on Innovation and Technology in Computer Science Education (ITiCSE’16). Association for Computing Machinery (ACM), 2016. Compared students who opted in to anonline CS1 class online with those who took it in person in a flipped classroom, and found that completion of unmarked practice exercises correlated with exam scores for both (but completion rate of rehearsal exercises by online students was significantly lower than lecture attendance for in-person), that test anxiety and self-efficacy were significant factors only for the online section, and that intrinsic value was a factor only for the flipped section (once results were controlled for prior programming experience).

[Cao2017a] Yingjun Cao and Leo Porter. Evaluating student learning from collaborative group tests in introductory computing. In Proc. 2017 Technical Symposium on Computer Science Education (SIGCSE’17). Association for Computing Machinery (ACM), 2017. Found significant short-term gains for students doing exams collaboratively, but not long-term gains.

[Cao2017b] Yingjun Cao and Leo Porter. Impact of performance level and group composition on student learning during collaborative exams. In Proc. 2017 Conference on Innovation and Technology in Computer Science Education (ITiCSE’17). Association for Computing Machinery (ACM), 2017. Found that collaborative exams benefited middling students more than high or low-performing students, and that homogeneous groups benefited more than heterogeneous groups.

[Carr1987] John Carroll, Penny Smith-Kerker, James Ford, and Sandra Mazur-Rimetz. The minimal manual. Human-Computer Interaction, 3(2):123–153, Jun 1987. The foundational paper for minimalist instruction.

[Carr2014] John Carroll. Creating minimalist instruction. International Journal of Designs for Learning, 5(2), Nov 2014. A look back on the author’s work on minimalist manuals.

[Cart2017] Adam Scott Carter and Christopher David Hundhausen. Using programming process data to detect differences in students’ patterns of programming. In Proc. 2017 Technical Symposium on Computer Science Education (SIGCSE’17). Association for Computing Machinery (ACM), 2017. Builds on earlier work to show that students of different levels approach programming tasks differently, and these differences can be detected automatically.

[Casp2007] Michael E. Caspersen and Jens Bennedsen. Instructional design of a programming course. In Proc. 2007 International Computing Education Research Conference (ICER’07). Association for Computing Machinery (ACM), 2007. Goes from the SOAR model of human cognition to three learning theories (cognitive load, cognitive apprenticeship, and worked examples), and from there to the design of an introductory object-oriented programming course using worked examples, scaffolding, faded guidance, cognitive apprenticeship, and an emphasis on patterns to aid schema creation and improve learning.

[Cele2018] Mehmet Celepkolu and Kristy Elizabeth Boyer. Thematic analysis of students’ reflections on pair programming in CS1. In Proc. 2018 Technical Symposium on Computer Science Education (SIGCSE’18). Association for Computing Machinery (ACM), 2018. Compared classical pair programming (two coders, one machine) with side-by-side (two coders, two machines) and found that the former had the same learning gains but higher student satisfaction.

[Ceti2016] Ibrahim Cetin and Christine Andrews-Larson. Learning sorting algorithms through visualization construction. Computer Science Education, 26(1):27–43, Jan 2016. Another study showing that people learn more from constructing visualizations of algorithms than they do from viewing visualizations constructed by others.

[Chen2009] Nicholas Chen and Maurice Rabb. A pattern language for screencasting. In Proc. 2009 Conference on Pattern Languages of Programs (PLoP’09). Association for Computing Machinery (ACM), 2009. A brief, well-organized collection of tips for making screencasts.

[Chen2017] Nick Cheng and Brian Harrington. The code mangler: Evaluating coding ability without writing any code. In Proc. 2017 Technical Symposium on Computer Science Education (SIGCSE’17). Association for Computing Machinery (ACM), 2017. Describes exercises in which students reconstruct mangled code, and shows that student performance on these correlates strongly with performance on traditional assessments.

[Cher2007] Mauro Cherubini, Gina Venolia, Rob DeLine, and Andrew J. Ko. Let’s go to the whiteboard: How and why software developers use drawings. In Proc. 2007 Conference on Human Factors in Computing Systems (CHI’07). Association for Computing Machinery (ACM), 2007. Found that developers draw diagrams more often to aid discussion than to document designs (though that may be an artifact of the cost of translating whiteboards into permanent storage).

[Cher2009] Sapna Cheryan, Victoria C. Plaut, Paul G. Davies, and Claude M. Steele. Ambient belonging: How stereotypical cues impact gender participation in computer science. Journal of Personality and Social Psychology, 97(6):1045–1060, 2009. Four studies showing that subtle environmental clues have a measurable difference on the interest that people of different genders have in computing.

[Chet2014] Raj Chetty, John N. Friedman, and Jonah E. Rockoff. Measuring the impacts of teachers II: Teacher value-added and student outcomes in adulthood. American Economic Review, 104(9):2633–2679, Sep 2014. The latest in a long series of studies showing that good teachers have a measurable but small impact on outcomes.

[Chi1989] Michelene T. H. Chi, Miriam Bassok, Matthew W. Lewis, Peter Reimann, and Robert Glaser. Self-explanations: How students study and use examples in learning to solve problems. Cognitive Science, 13(2):145–182, Apr 1989. A seminal paper on the power of self-explanation.

[Coco2018] Center for Community Organizations. The “problem” woman of colour in the workplace. https://coco-net.org/problem-woman-colour-nonprofit-organizations/, 2018. A diagram explaining the experience of many women of color in the worksplace.

[Coll1991] Allan Collins, John Seely Brown, and Ann Holum. Cognitive apprenticeship: Making thinking visible. American Educator, 6:38–46, 1991. Describes an educational model based on the notion of apprenticeship and master guidance.

[Coom2012] Norman Coombs. Making Online Teaching Accessible. Jossey-Bass, 2012. An accessible guide to making online lessons accessible.

[Covi2017] Martin V. Covington, Linda M. von Hoene, and Dominic J. Voge. Life Beyond Grades: Designing College Courses to Promote Intrinsic Motivation. Cambridge University Press, 2017. Explores ways of balancing intrinsic and extrinsic motivation in institutional education.

[Crou2001] Catherine H. Crouch and Eric Mazur. Peer instruction: Ten years of experience and results. American Journal of Physics, 69(9):970–977, Sep 2001. Reports evidence of benefit from the first ten years of peer instruction in undergraduate physics classes, and describes some ways in which the implementation of peer instruction changed during that time.

[Csik2008] Mihaly Csikszentmihaly. Flow: The Psychology of Optimal Experience. Harper, 2008. An influential discussion of what it means to be fully immersed in a task.

[Cumm2011] Stephen Cummins, Liz Burd, and Andrew Hatch. Investigating shareable feedback tags for programming assignments. Computer Science Education, 21(1):81–103, Mar 2011. Describes the use of tagging for peer feedback in introductory programming courses, and reports that high- and low-performing students are more likely to share their work with tags than middle-performing students.

[Cunn2017] Kathryn Cunningham, Sarah Blanchard, Barbara J. Ericson, and Mark Guzdial. Using tracing and sketching to solve programming problems. In Proc. 2017 Conference on International Computing Education Research (ICER’17). Association for Computing Machinery (ACM), 2017. Replicates an earlier study of how students sketch when tracing code execution, found that writing new values near variables’ names as they change is the most effective technique (reflecting a notional machine in which old values become unavailable).

[Cutt2017] Quintin Cutts, Charles Riedesel, Elizabeth Patitsas, Elizabeth Cole, Peter Donaldson, Bedour Alshaigy, Mirela Gutica, Arto Hellas, Edurne Larraza-Mendiluze, and Robert McCartney. Early developmental activities and computing proficiency. In Proc. 2017 Conference on Innovation and Technology in Computer Science Education (ITiCSE’17). Association for Computing Machinery (ACM), 2017. Surveyed adult computer users about childhood activities and found strong correlation between confidence and computer use based on two childhood activities: reading on one’s own, and playing with construction toys with no moving parts like Lego.

[Dahl2018] Sarah Dahlby Albright, Titus H. Klinge, and Samuel A. Rebelsky. A functional approach to data science in CS1. In Proc. 2018 Technical Symposium on Computer Science Education (SIGCSE’18). Association for Computing Machinery (ACM), 2018. Describes design of a CS1 class built around data science.

[DeBr2015] Pedro De Bruyckere, Paul A. Kirschner, and Casper D. Hulshof. Urban Myths about Learning and Education. Academic Press, 2015. Describes and debunks some widely-held myths about how people learn.

[Deb2018] Debzani Deb, Muztaba Fuad, James Etim, and Clay Gloster. MRS: Automated assessment of interactive classroom exercises. In Proc. 2018 Technical Symposium on Computer Science Education (SIGCSE’18). Association for Computing Machinery (ACM), 2018. Reports a study showing that doing in-class exercises with realtime feedback using mobile devices improved concept retention and student engagement while reducing failure rates.

[DiSa2014a] Betsy DiSalvo, Mark Guzdial, Amy Bruckman, and Tom McKlin. Saving face while geeking out: Video game testing as a justification for learning computer science. Journal of the Learning Sciences, 23(3):272–315, Jul 2014. Found that 65% of male African-American participants in the Glitch game testing program went on to study computing in part because the gaming aspects enabled them to save face with their peers.

[DiSa2014b] Betsy DiSalvo, Cecili Reid, and Parisa Khanipour Roshan. They can’t find us. In Proc. 2014 Technical Symposium on Computer Science Education (SIGCSE’14). Association for Computing Machinery (ACM), 2014. Found that search terms parents were likely to use for out-of-school CS classes didn’t actually find those classes.

[Dida2016] David Didau and Nick Rose. What Every Teacher Needs to Know About Psychology. John Catt Educational, 2016. An informative, opinionated survey of what modern psychology has to say about teaching.

[Douc2005] Christopher Douce, David Livingstone, and James Orwell. Automatic test-based assessment of programming. Journal on Educational Resources in Computing, 5(3):4–es, Sep 2005. Reviews the state of auto-graders at the time.

[DuBo1986] Benedict Du Boulay. Some difficulties of learning to program. Journal of Educational Computing Research, 2(1):57–73, Feb 1986. Introduced the idea of a notional machine.

[Edwa2014a] Stephen H. Edwards, Zalia Shams, and Craig Estep. Adaptively identifying non-terminating code when testing student programs. In Proc. 2014 Technical Symposium on Computer Science Education (SIGCSE’14). Association for Computing Machinery (ACM), 2014. Describes an adaptive scheme for detecting non-terminating student coding submissions (essentially backoff with a ceiling).

[Edwa2014b] Stephen H. Edwards and Zalia Shams. Do student programmers all tend to write the same software tests? In Proc. 2014 Conference on Innovation and Technology in Computer Science Education (ITiCSE’14). Association for Computing Machinery (ACM), 2014. Describes an experiment using 101 CS2 programs in which students wrote their own software tests and graded in part on the branch coverage, and found that while students achieved an average branch coverage of 95.4% on their own solutions, their test suites only detected an average of 13.6% of the faults present in the entire program population, and there was a high degree of similarity among 90% of the student test suites, indicating that students wrote tests for the happy path rather than to detect hidden bugs.

[Edwa2017] Stephen H. Edwards, Nischel Kandru, and Mukund B.M. Rajagopal. Investigating static analysis errors in student java programs. In Proc. 2017 Conference on International Computing Education Research (ICER’17). Association for Computing Machinery (ACM), 2017. Describes patterns found in static analysis reports of student code submissions, finding that coding errors at any point during development correlate with lower grades in the final submission.

[Endr2014] Stefan Endrikat, Stefan Hanenberg, Romain Robbes, and Andreas Stefik. How do API documentation and static typing affect API usability? In Proc. 2014 International Conference on Software Engineering (ICSE’14). ACM Press, 2014. Shows that types do add complexity to programs, but it pays off fairly quickly by acting as documentation hints for a method’s use, in particular by preventing questions about what we have and and what we can do with it.

[Ensm2003] Nathan L. Ensmenger. Letting the “computer boys” take over: Technology and the politics of organizational transformation. International Review of Social History, 48(S11):153–180, Dec 2003. Describes how programming was turned from a female into a male profession in the 1960s.

[Ensm2012] Nathan L. Ensmenger. The Computer Boys Take Over: Computers, Programmers, and the Politics of Technical Expertise. MIT Press, 2012. Traces the emergence and rise of computer experts in the 20th Century, and particularly the way that computing became male-gendered.

[Eppl2006] Martin J. Eppler. A comparison between concept maps, mind maps, conceptual diagrams, and visual metaphors as complementary tools for knowledge construction and sharing. Information Visualization, 5(3):202–210, Jun 2006. Compares concept maps, mind maps, conceptual diagrams, and visual metaphors as learning tools.

[Epst2002] Lewis Carroll Epstein. Thinking Physics: Understandable Practical Reality. Insight Press, 2002. An entertaining problem-based introduction to thinking like a physicist.

[Eric2015] Barbara Ericson, Steven Moore, Briana Morrison, and Mark Guzdial. Usability and usage of interactive features in an online ebook for cs teachers. In Proc. 2015 Workshop in Primary and Secondary Computing Education (WiPSCE’15), pages 111–120. Association for Computing Machinery (ACM), 2015. Found that learners were more likely to attempt Parsons Problems than nearby multiple choice questions in an ebook.

[Eric2016] K. Anders Ericsson. Summing up hours of any type of practice versus identifying optimal practice activities. Perspectives on Psychological Science, 11(3):351–354, May 2016. A critique of a meta-study of deliberate practice based on the latter’s overly-broad inclusion of activities.

[Eric2017] Barbara J. Ericson, Lauren E. Margulieux, and Jochen Rick. Solving parsons problems versus fixing and writing code. In Proc. 2017 Koli Calling Conference on Computing Education Research (Koli’17). Association for Computing Machinery (ACM), 2017. Found that solving 2D Parsons problems with distractors took less time than writing or fixing code, and had equivalent learning performance and retention.

[Farm2006] Eugene Farmer. The gatekeeper’s guide, or how to kill a tool. IEEE Software, 23(6):12–13, Nov 2006. Ten tongue-in-cheeck rules for making sure that a new software tool doesn’t get adopted.

[Fehi2008] Chris Fehily. SQL: Visual QuickStart Guide. Peachpit Press, third edition, 2008. An introduction to SQL that is both a good tutorial and a good reference guide.

[Finc2007] Sally Fincher and Josh Tenenberg. Warren’s question. In Proc. 2007 International Computing Education Research Conference (ICER’07). Association for Computing Machinery (ACM), 2007. A detailed look at a particular instance of transferring a teaching practice.

[Finc2012] Sally Fincher, Brad Richards, Janet Finlay, Helen Sharp, and Isobel Falconer. Stories of change: How educators change their practice. In Proc. 2012 Frontiers in Education Conference (FIE’12). Institute of Electrical and Electronics Engineers (IEEE), Oct 2012. A detailed look at how educators actually adopt new teaching practices.

[Fink2013] L. Dee Fink. Creating Significant Learning Experiences: An Integrated Approach to Designing College Courses. Jossey-Bass, 2013. A step-by-step guide to a systematic lesson design process.

[Fisl2014] Kathi Fisler. The recurring rainfall problem. In Proc. 2014 International Computing Education Research Conference (ICER’14). Association for Computing Machinery (ACM), 2014. Found that students made fewer low-level errors when solving Soloway’s rainfall problem in a functional language.

[Fitz2008] Sue Fitzgerald, Gary Lewandowski, Renée McCauley, Laurie Murphy, Beth Simon, Lynda Thomas, and Carol Zander. Debugging: Finding, fixing and flailing, a multi-institutional study of novice debuggers. Computer Science Education, 18(2):93–116, Jun 2008. A study of 21 undergraduate programmers found that they could find 70% of bugs and of those fix 97%, that good debuggers were good programmers but not necessarily vice versa, and that novices use forward reasoning (tracing and testing) rather than causal reasoning.

[Floy2017] Benjamin Floyd, Tyler Santander, and Westley Weimer. Decoding the representation of code in the brain: An fMRI study of code review and expertise. In Proc. 2017 International Conference on Software Engineering (ICSE’17). Institute of Electrical and Electronics Engineers (IEEE), May 2017. Reports an fMRI study of 29 people that found that the same brain regions are involved in reading code and prose, and the two are distinct activities that become more similar as people develop expertise.

[Foge2005] Karl Fogel. Producing Open Source Software: How to Run a Successful Free Software Project. O’Reilly Media, 2005. The definite guide to managing open source software development projects.

[Foor1998] Barbara R. Foorman, David J. Francis, Jack M. Fletcher, Christopher Schatschneider, and Paras Mehta. The role of instruction in learning to read: Preventing reading failure in at-risk children. Journal of Educational Psychology, 90(1):37–55, 1998. A study showing that children learn to read faster when taught letter-sound correspondences (phonics) than other approaches.

[Ford2016] Denae Ford, Justin Smith, Philip J. Guo, and Chris Parnin. Paradise unplugged: Identifying barriers for female participation on stack overflow. In Proc. 2016 International Symposium on Foundations of Software Engineering (FSE’16). Association for Computing Machinery (ACM), 2016. Found five barriers to contribution on Stack Overflow that are seen as significantly more problematic by women than by men: lack of awareness of site features, feeling unqualified to answer questions, intimidating community size, discomfort interacting with or relying on strangers, and perception that they shouldn’t be slacking.

[Fran2018] Pablo Frank-Bolton and Rahul Simha. Docendo discimus: Students learn by teaching peers through video. In Proc. 2018 Technical Symposium on Computer Science Education (SIGCSE’18). Association for Computing Machinery (ACM), 2018. Found that students who made short videos to teach concepts to their peers had a significant increase in their own learning compared to those who only studied the material or viewed the videos.

[Free1972] Jo Freeman. The tyranny of structurelessness. The Second Wave, 2(1), 1972. Pointed out that every organization has a power structure: the only question is whether it’s accountable or not.

[Frie2016] Marilyn Friend and Lynne Cook. Interactions: Collaboration Skills for School Professionals. Pearson, eighth edition, 2016. A standard textbook on how teachers can work with other teachers.

[Gao2017] Zheng Gao, Christian Bird, and Earl T. Barr. To type or not to type: Quantifying detectable bugs in JavaScript. In Proc. 2017 International Conference on Software Engineering (ICSE’17). Institute of Electrical and Electronics Engineers (IEEE), May 2017. Finds that static typing would catch about 15% of publicly-reported errors in JavaScript packages.

[Gauc2011] Danielle Gaucher, Justin Friesen, and Aaron C. Kay. Evidence that gendered wording in job advertisements exists and sustains gender inequality. Journal of Personality and Social Psychology, 101(1):109–128, 2011. Reports a trio of studies showing that gendered wording commonly employed in job recruitment materials can maintain gender inequality in traditionally male-dominated occupations.

[Gawa2007] Atul Gawande. The checklist. The New Yorker, Dec 2007. Describes the life-saving effects of simple checklists.

[Gawa2011] Atul Gawande. Personal best. The New Yorker, Oct 2011. Describes how having a coach can improve practice in a wide variety of fields.

[Gelm2002] Andrew Gelman and Deborah Nolan. Teaching Statistics: A Bag of Tricks. Oxford University Press, 2002. A collection of useful motivating examples for teaching statistics.

[Gick1987] Mary L. Gick and Keith J. Holyoak. The cognitive basis of knowledge transfer. In S. J. Cormier and J. D. Hagman, editors, Transfer of Learning: Contemporary Research and Applications, pages 9–46. Elsevier, 1987. Found that transference only comes with mastery.

[Gorm2014] Cara Gormally, Mara Evans, and Peggy Brickman. Feedback about teaching in higher ed: Neglected opportunities to promote change. Cell Biology Education, 13(2):187–199, Jun 2014. Summarizes the best practices for providing instructional feedback, and recommends specific strategies for providing feedback.

[Gree2014] Elizabeth Green. Building a Better Teacher: How Teaching Works (and How to Teach It to Everyone). W. W. Norton & Company, 2014. A well-written look at why educational reforms in the past 50 years have mostly missed the mark, and what we should be doing instead.

[Grov2017] Shuchi Grover and Satabdi Basu. Measuring student learning in introductory block-based programming. In Proc. 2017 Technical Symposium on Computer Science Education (SIGCSE’17). Association for Computing Machinery (ACM), 2017. Reports a study of 100 middle-school children using blocks-based programming that finds that loops, variables, and Boolean operators are difficult to understand.

[Gull2004] Ned Gulley. In praise of tweaking. interactions, 11(3):18, May 2004. Describes an innovative collaborative coding contest.

[Guo2013] Philip J. Guo. Online python tutor. In Proc. 2013 Technical Symposium on Computer Science Education (SIGCSE’13). Association for Computing Machinery (ACM), 2013. Describes the design and use of a web-based execution visualization tool.

[Guo2014] Philip J. Guo, Juho Kim, and Rob Rubin. How video production affects student engagement. In Proc. 2014 Conference on Learning @ Scale (L@S’14). Association for Computing Machinery (ACM), 2014. Measures engagement by how long learners watch MOOC videos and finds that shorter videos are more engaging, that talking heads are more engaging than tablet drawings, and makes recommendations for future videos.

[Guzd2013] Mark Guzdial. Exploring hypotheses about media computation. In Proc. 2013 International Computing Education Research Conference (ICER’13). Association for Computing Machinery (ACM), 2013. A look back on 10 years of media computation research.

[Guzd2015a] Mark Guzdial. Learner-Centered Design of Computing Education: Research on Computing for Everyone. Morgan & Claypool Publishers, 2015. An evidence-based argument that we must design computing education for everyone, not just people who think they are going to become professional programmers.

[Guzd2015b] Mark Guzdial. Top 10 myths about teaching computer science. https://cacm.acm.org/blogs/blog-cacm/189498-top-10-myths-about-teaching-computer-science/fulltext, 2015. Itemizes ten things that many people believe about teaching computing that simply aren’t true.

[Guzd2016] Mark Guzdial. Five principles for programming languages for learners. https://cacm.acm.org/blogs/blog-cacm/203554-five-principles-for-programming-languages-for-learners/fulltext, 2016. Explains how to choose a programming language for people new to programming.

[Haar2017] Lassi Haaranen. Programming as a performance - live-streaming and its implications for computer science education. In Proc. 2017 Conference on Innovation and Technology in Computer Science Education (ITiCSE’17). Association for Computing Machinery (ACM), 2017. An early look at live streaming of coding as a teaching technique.

[Hake1998] Richard R. Hake. Interactive engagement versus traditional methods: A six-thousand-student survey of mechanics test data for introductory physics courses. American Journal of Physics, 66(1):64–74, Jan 1998. Reports the use of a concept inventory to measure the benefits of interactive engagement as a teaching technique.

[Hamo2017] Sally Hamouda, Stephen H. Edwards, Hicham G. Elmongui, Jeremy V. Ernst, and Clifford A. Shaffer. A basic recursion concept inventory. Computer Science Education, 27(2):121–148, Apr 2017. Reports early work on developing a concept inventory for recursion.

[Hank2011] Brian Hanks, Sue Fitzgerald, Renée McCauley, Laurie Murphy, and Carol Zander. Pair programming in education: a literature review. Computer Science Education, 21(2):135–173, Jun 2011. Finds increased success rates and retention, and some evidence that pairing is particularly beneficial for women, but scheduling and partner compatibility can be problematic.

[Hann2009] Jo Erskine Hannay, Tore Dybå, Erik Arisholm, , and Dag I. K. Sjøberg. The effectiveness of pair programming: A meta-analysis. Information and Software Technology, 51(7):1110–1122, Jul 2009. A comprehensive meta-analysis of research on pair programming.

[Hann2010] Jo E. Hannay, Erik Arisholm, Harald Engvik, and Dag I.K. Sjoberg. Effects of personality on pair programming. IEEE Transactions on Software Engineering, 36(1):61–80, Jan 2010. Found weak correlation between the “Big Five” personality traits and performance in pair programming.

[Harm2016] Kyle James Harms, Jason Chen, and Caitlin L. Kelleher. Distractors in parsons problems decrease learning efficiency for young novice programmers. In Proc. 2016 International Computing Education Research Conference (ICER’16). Association for Computing Machinery (ACM), 2016. Shows that adding distractors to Parsons Problems does not improve learning while increasing the time spent solving them.

[Harr2018] Brian Harrington and Nick Cheng. Tracing vs. writing code: Beyond the learning hierarchy. In Proc. 2018 Technical Symposium on Computer Science Education (SIGCSE’18). Association for Computing Machinery (ACM), 2018. Finds that the gap between being able to trace code and being able to write it has largely closed by CS2, and that students who still have a gap (in either direction) are likely to do poorly in the course.

[Hazz2014] Orit Hazzan, Tami Lapidot, and Noa Ragonis. Guide to Teaching Computer Science: An Activity-Based Approach. Springer, second edition, 2014. A comprehensive textbook for teaching computer science at the K-12 level with dozens of activities.

[Hend2015a] Charles Henderson, Renée Cole, Jeff Froyd, Debra Friedrichsen, Raina Khatri, and Courtney Stanford. Designing Educational Innovations for Sustained Adoption. Increase the Impact, 2015. A detailed analysis of strategies for getting institutions in higher education to actually make changes.

[Hend2015b] Charles Henderson, Renée Cole, Jeff Froyd, Debra Friedrichsen, Raina Khatri, and Courtney Stanford. Designing educational innovations for sustained adoption (executive summary). http://www.increasetheimpact.com/resources.html, 2015. A short summary of key points from the authors’ work on effecting change in higher education.

[Hend2017] Carl Hendrick and Robin Macpherson. What Does This Look Like In The Classroom?: Bridging The Gap Between Research And Practice. John Catt Educational, 2017. A collection of responses by educational experts to questions asked by classroom teachers, with prefaces by the authors; very British in its focus, but contains many gems.

[Herm2016] Felienne Hermans and Efthimia Aivaloglou. Do code smells hamper novice programming? a controlled experiment on scratch programs. In Proc. 2016 International Conference on Program Comprehension (ICPC’16). Institute of Electrical and Electronics Engineers (IEEE), May 2016. A controlled experiment with 61 novice Scratch programmers found that students working with smelly code did worse overall, and that long methods decreased system understanding, while duplication made it harder for students to modify programs.

[Hest1992] David Hestenes, Malcolm Wells, and Gregg Swackhamer. Force concept inventory. The Physics Teacher, 30(3):141–158, Mar 1992. Describes the Force Concept Inventory’s motivation, design, and impact.

[Hick2018] Marie Hicks. Programmed Inequality: How Britain Discarded Women Technologists and Lost Its Edge in Computing. MIT Press, 2018. Describes how Britain lost its early dominance in computing by systematically discriminating against its most qualified workers: women.

[Hofm2017] Johannes Hofmeister, Janet Siegmund, and Daniel V. Holt. Shorter identifier names take longer to comprehend. In Proc. 2017 Conference on Software Analysis, Evolution and Reengineering (SANER’17). Institute of Electrical and Electronics Engineers (IEEE), Feb 2017. Found that using words for variable names made comprehension 19% faster than using abbreviations or single-letter names for variables, but did not discriminate which variable names could or could not be shortened.

[Holl1960] Jack Hollingsworth. Automatic graders for programming classes. Communications of the ACM, 3(10):528–529, Oct 1960. A brief note describing what may have been the world’s first auto-grader.

[Hu2017] Helen H. Hu, Cecily Heiner, Thomas Gagne, and Carl Lyman. Building a statewide computer science teacher pipeline. In Proc. 2017 Technical Symposium on Computer Science Education (SIGCSE’17). Association for Computing Machinery (ACM), 2017. Introducing a six-month program for existing high school teachers converting to teach CS quadrupled the number of teachers without noticeable reduction of student outcomes, but with an increase in the teachers’ belief that anyone could program.

[Hugh2010] Michael C. Hughes, Matthew C. Jadud, and Ma. Mercedes T. Rodrigo. String formatting considered harmful for novice programmers. Computer Science Education, 20(3):201–228, Sep 2010. Found that 8% of compilation errors and 100% of runtime exceptions in novices’ first Java programs were caused by string formatting problems exacerbated by poor error reports about non-literal errors.

[Hust2012] Therese Huston. Teaching What You Don’t Know. Harvard University Press, 2012. A pointed, funny, and very useful book that explores exactly what the title suggests.

[Ihan2010] Petri Ihantola, Tuukka Ahoniemi, Ville Karavirta, and Otto Seppälä. Review of recent systems for automatic assessment of programming assignments. In Proc. 2010 Koli Calling Conference on Computing Education Research (Koli’10). Association for Computing Machinery (ACM), 2010. Reviews auto-grading tools of the time.

[Ihan2011] Petri Ihantola and Ville Karavirta. Two-dimensional parson’s puzzles: The concept, tools, and first observations. Journal of Information Technology Education: Innovations in Practice, 10:119–132, 2011. Describes a 2D Parsons Problem tool and early experiences with it which confirm that experts solve outside-in rather than line-by-line.

[Ihan2016] Petri Ihantola, Kelly Rivers, Miguel Ángel Rubio, Judy Sheard, Bronius Skupas, Jaime Spacco, Claudia Szabo, Daniel Toll, Arto Vihavainen, Alireza Ahadi, Matthew Butler, Jürgen Börstler, Stephen H. Edwards, Essi Isohanni, Ari Korhonen, and Andrew Petersen. Educational data mining and learning analytics in programming: Literature review and case studies. In Proc. 2016 Conference on Innovation and Technology in Computer Science Education (ITiCSE’16). Association for Computing Machinery (ACM), 2016. A survey of methods used in mining and analyzing programming data.

[Ijss2000] Wijnand A. IJsselsteijn, Huib de Ridder, Jonathan Freeman, and Steve E. Avons. Presence: Concept, determinants, and measurement. In Bernice E. Rogowitz and Thrasyvoulos N. Pappas, editors, Proc. 2000 Conference on Human Vision and Electronic Imaging. SPIE, Jun 2000. Summarizes thinking of the time about presence (both real and virtual).

[Irib2009] Alicia Iriberri and Gondy Leroy. A life-cycle perspective on online community success. ACM Computing Surveys, 41(2):1–29, Feb 2009. Reviews research on online communities organized according to a five-stage lifecycle model.

[Juss2005] Lee Jussim and Kent D. Harber. Teacher expectations and self-fulfilling prophecies: Knowns and unknowns, resolved and unresolved controversies. Personality and Social Psychology Review, 9(2):131–155, May 2005. Surveyed what we did and didn’t know about the effects of teacher expectations on student outcomes at the time.

[Kaly2003] Slava Kalyuga, Paul Ayres, Paul Chandler, and John Sweller. The expertise reversal effect. Educational Psychologist, 38(1):23–31, Mar 2003. Instructional techniques that work well with inexperienced learners lose their effectiveness or have negative consequences when used with more experienced learners.

[Kang2016] Sean H. K. Kang. Spaced repetition promotes efficient and effective learning. Policy Insights from the Behavioral and Brain Sciences, 3(1):12–19, Jan 2016. Summarizes research on spaced repetition and what it means for classroom teaching.

[Karp2008] Jeffrey D. Karpicke and Henry L. Roediger. The critical importance of retrieval for learning. Science, 319(5865):966–968, Feb 2008. Found that repeated testing improved recall of word lists from 35% to 80%, even when learners still had access to the material (but were not tested on it).

[Kauf2000] Deborah B. Kaufman and Richard M. Felder. Accounting for individual effort in cooperative learning teams. Journal of Engineering Education, 89(2), 2000. Compares confidential peer ratings and grades on several axes for two undergraduate engineering courses, and found that self-rating and peer ratings agreed, that collusion wasn’t significant, that students didn’t inflate their self-ratings, or that ratings were biased by gender or race.

[Kaze2017] Ayaan M. Kazerouni, Stephen H. Edwards, and Clifford A. Shaffer. Quantifying incremental development practices and their relationship to procrastination. In Proc. 2017 International Computing Education Research Conference (ICER’17). Association for Computing Machinery (ACM), 2017. Analyzed edit and execution data from an undergrad course and found earlier start time and earlier edit of tests correlated with higher scores and earlier submission times, but found no relationship with incremental testing or checking.

[Keme2009] Chris F. Kemerer and Mark C. Paulk. The impact of design and code reviews on software quality: An empirical study based on PSP data. IEEE Transactions on Software Engineering, 35(4):534–550, Jul 2009. Uses individual data to explore the effectiveness of code review.

[Kepp2008] Jeroen Keppens and David Hay. Concept map assessment for teaching computer programming. Computer Science Education, 18(1):31–42, Mar 2008. Short and not very specific literature review of ways concept mapping could be used in CS education.

[Kern1978] Brian W. Kernighan and P. J. Plauger. The Elements of Programming Style. McGraw-Hill, second edition, 1978. An early and influential description of the Unix programming philosophy.

[Kern1983] Brian W. Kernighan and Rob Pike. The Unix Programming Environment. Prentice-Hall, 1983. An influential early description of Unix.

[Kern1988] Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language. Prentice-Hall, second edition, 1988. The book that made C a popular programming language.

[Kern1999] Brian W. Kernighan and Rob Pike. The Practice of Programming. Addison-Wesley, 1999. A programming style manual written by two of the creators of modern computing.

[Keun2016a] Hieke Keuning, Johan Jeuring, and Bastiaan Heeren. Towards a systematic review of automated feedback generation for programming exercises. In Proc. 2016 Conference on Innovation and Technology in Computer Science Education (ITiCSE’16). Association for Computing Machinery (ACM), 2016. Classifies feedback messages from 69 auto-grading tools and finds that they often do not give feedback on how to fix problems and take the next step, and that teachers cannot easily adapt most of the tools to their needs.

[Keun2016b] Hieke Keuning, Johan Jeuring, and Bastiaan Heeren. Towards a systematic review of automated feedback generation for programming exercises - extended version. Technical Report UU-CS-2016-001, Utrecht University, 2016. An extended look at feedback messages from auto-grading tools.

[Keun2017] Hieke Keuning, Bastiaan Heeren, and Johan Jeuring. Code quality issues in student programs. In Proc. 2017 Conference on Innovation and Technology in Computer Science Education (ITiCSE’17). Association for Computing Machinery (ACM), 2017. Looked at student code quality using Blackbox data, and found that students usually don’t fix issues, in particular issues related to modularization, and that use of tooling does not have much effect on the occurrence of issues.

[Kim2017] Ada S. Kim and Andrew J. Ko. A pedagogical analysis of online coding tutorials. In Proc. 2017 Technical Symposium on Computer Science Education (SIGCSE’17). Association for Computing Machinery (ACM), 2017. Found that online coding tutorials largely taught similar content, organized content bottom-up, and provided goal-directed practices with immediate feedback, but were not tailored to learners’ prior coding knowledge and usually didn’t inform learners how to transfer and apply learned knowledge.

[King1993] Alison King. From sage on the stage to guide on the side. College Teaching, 41(1):30–35, Jan 1993. An early proposal to flip the classroom.

[Kirs2006] Paul A. Kirschner, John Sweller, and Richard E. Clark. Why minimal guidance during instruction does not work: An analysis of the failure of constructivist, discovery, problem-based, experiential, and inquiry-based teaching. Educational Psychologist, 41(2):75–86, Jun 2006. Argues that inquiry-based learning is less effective for novices than guided instruction.

[Kirs2013] Paul A. Kirschner and Jeroen J.G. van Merriënboer. Do learners really know best? urban legends in education. Educational Psychologist, 48(3):169–183, Jul 2013. Argues that three learning myths—digital natives, learning styles, and self-educators—are all reflections of the mistaken belief that learners know what is best for them, and cautions that we may be in a downward spiral in which every attempt by education researchers to rebut these myths confirms their opponents’ belief that learning science is pseudo-science.

[Koed2015] Kenneth R. Koedinger, Jihee Kim, Julianna Zhuxin Jia, Elizabeth A. McLaughlin, and Norman L. Bier. Learning is not a spectator sport: Doing is better than watching for learning from a mooc. In Proc. 2015 Conference on Learning @ Scale (L@S’15). Association for Computing Machinery (ACM), 2015. Measures the benefits of doing rather than watching.

[Koeh2013] Matthew J. Koehler, Punya Mishra, and William Cain. What is technological pedagogical content knowledge (tpack)? Journal of Education, 193(3):13–19, 2013. Refines the discussion of PCK by adding technology, and sketches strategies for building understanding of how to use it.

[Kohn2017] Tobias Kohn. Variable evaluation: An exploration of novice programmers’ understanding and common misconceptions. In Proc. 2017 Technical Symposium on Computer Science Education (SIGCSE’17). Association for Computing Machinery (ACM), 2017. A small study of novice misconceptions about variables that finds they often believe in delayed evaluation or that entire equations are stored in variables.

[Koli2008] Yifat Ben-David Kolikant and M. Mussai. “so my program doesn’t run!” definition, origins, and practical expressions of students’ (mis)conceptions of correctness. Computer Science Education, 18(2):135–151, Jun 2008. Reports an empirical study found that students view program correctness as the sum of the correctness of its constituent operations, and so think of programs as “partially correct” rather than incorrect if they have any correct operations (probably learned from grading schemes).

[Koll2015] Michael Kölling. Lessons from the design of three educational programming environments. International Journal of People-Oriented Programming, 4(1):5–32, Jan 2015. A detailed comparison of three generations of programming environments intended for novice use: Blue, BlueJ, and Greenfoot (including the Stride frame-based editor).

[Koll2016] Michael Kölling and Fraser McKay. Heuristic evaluation for novice programming systems. ACM Transactions on Computing Education, 16(3):1–30, Jun 2016. Proposes 13 heuristics to use to evaluate programming systems for novices and evaluates them using inter-expert comparison of Greenfoot (Java), Scratch, and Visual Basic.

[Kran2015] Steven G. Krantz. How to Teach Mathematics. American Mathematical Society, third edition, 2015. Advice and opinions drawn from the author’s personal experience of teaching mathematics.

[Krau2016] Robert E. Kraut and Paul Resnick. Building Successful Online Communities: Evidence-Based Social Design. MIT Press, 2016. Sums up what we actually know about making thriving online communities and why we believe it’s true.

[Krug1999] Justin Kruger and David Dunning. Unskilled and unaware of it: How difficulties in recognizing one’s own incompetence lead to inflated self-assessments. Journal of Personality and Social Psychology, 77(6):1121–1134, 1999. The original report on the Dunning-Kruger effect: the less people know, the less accurate their estimate of their knowledge.

[Kuch2011] Marc J. Kuchner. Marketing for Scientists: How to Shine in Tough Times. Island Press, 2011. A short, readable guide to making people aware of, and care about, your work.

[Kuit2004] Marja Kuittinen and Jorma Sajaniemi. Teaching roles of variables in elementary programming courses. ACM SIGCSE Bulletin, 36(3):57, Sep 2004. Presents a few patterns used in novice programming and looks at the pedagogical value of teaching them.

[Kulk2013] Chinmay Kulkarni, Koh Pang Wei, Huy Le, Daniel Chia, Kathryn Papadopoulos, Justin Cheng, Daphne Koller, and Scott R. Klemmer. Peer and self assessment in massive online classes. ACM Transactions on Computer-Human Interaction, 20(6):1–31, Dec 2013. Shows that peer grading can be as effective at scale as expert grading.

[Laba2008] David F. Labaree. The winning ways of a losing strategy: Educationalizing social problems in the united states. Educational Theory, 58(4):447–460, Nov 2008. Explores why the United States keeps pushing the solution of social problems onto educational institutions, and why that continues not to work.

[Lach2018] Michael Lachney. Computational communities: African-american cultural capital in computer science education. Computer Science Education, pages 1–22, Feb 2018. Explores use of community representation and computational integration to bridge computing and African-American cultural capital in CS education.

[Lang2013] James M. Lang. Cheating Lessons: Learning from Academic Dishonesty. Harvard University Press, 2013. Explores why students cheat, and how courses often give them incentives to do so.

[Lang2016] James M. Lang. Small Teaching: Everyday Lessons from the Science of Learning. Jossey-Bass, 2016. Presents a selection of accessible evidence-based practices that teachers can adopt when they little time and few resources.

[Lawr2006] Dawn Lawrie, Christopher Morrell, Henry Feild, and Dave Binkley. What’s in a name? a study of identifiers. In Proc. 2006 International Conference on Program Comprehension (ICPC’06). Institute of Electrical and Electronics Engineers (IEEE), 2006. Found that full-word variable names are easier to understand in general, but in many cases, short variable names aren’t an impediment.

[Lazo1993] Ard W. Lazonder and Hans van der Meij. The minimal manual: Is less really more? International Journal of Man-Machine Studies, 39(5):729–752, Nov 1993. An independent study of Carroll’s “minimal manual” approach that found that the minimalist approach outperformed the traditional approach regardless of prior experience with computers.

[Leak2017] Mackenzie Leake and Colleen M. Lewis. Recommendations for designing CS resource sharing sites for all teachers. In Proc. 2017 Technical Symposium on Computer Science Education (SIGCSE’17). Association for Computing Machinery (ACM), 2017. Interviewed 17 CS teachers to find out why they don’t use resource sharing sites and recommended that sites have good landing pages (ask "what is your current role?" and "what course and grade level are you interested in?"), display all resources in the context of the author’s full course (since visitors may be new teachers and struggle connect the dots themselves), and allow anonymous posts on discussion forums (to reduce fear of looking foolish in front of peers).

[Lee2013] Cynthia Bailey Lee. Experience report: CS1 in matlab for non-majors, with media computation and peer instruction. In Proc. 2013 Technical Symposium on Computer Science Education (SIGCSE’13). Association for Computing Machinery (ACM), 2013. Describes an adaptation of media computation to a first-year MATLAB course.

[Lee2017] Cynthia Bailey Lee. What can i do today to create a more inclusive community in CS? http://bit.ly/2oynmSH, 2017. A practical checklist of things instructors can do to make their computing classes more inclusive.

[Lemo2014] Doug Lemov. Teach Like a Champion 2.0: 62 Techniques that Put Students on the Path to College. Jossey-Bass, 2014. Presents 62 classroom techniques drawn from intensive study of thousands of hours of video of good teachers in action.

[Lewi2015] Colleen M. Lewis and Niral Shah. How equity and inequity can emerge in pair programming. In Proc. 2015 International Computing Education Research Conference (ICER’15). Association for Computing Machinery (ACM), 2015. Studied pair programming in a Grade 6 classroom and found that less equitable pairs were ones that sought to complete the task quickly.

[List2004] Raymond Lister, Otto Seppälä, Beth Simon, Lynda Thomas, Elizabeth S. Adams, Sue Fitzgerald, William Fone, John Hamer, Morten Lindholm, Robert McCartney, Jan Erik Moström, and Kate Sanders. A multi-national study of reading and tracing skills in novice programmers. In Proc. 2004 Conference on Innovation and Technology in Computer Science Education (ITiCSE’04). Association for Computing Machinery (ACM), 2004. Tested students’ ability to predict the outcome of executing a short piece of code and their ability to select the correct completion for short pieces of code and found many were weak at both.

[List2009] Raymond Lister, Colin Fidge, and Donna Teague. Further evidence of a relationship between explaining, tracing and writing skills in introductory programming. ACM SIGCSE Bulletin, 41(3):161, Aug 2009. Replicates earlier studies showing that students who cannot trace code usually cannot explain code and that students who tend to perform reasonably well at code writing tasks have also usually acquired the ability to both trace code and explain code.

[Litt2004] Dennis Littky. The Big Picture: Education Is Everyone’s Business. Association for Supervision & Curriculum Development, 2004. A personal exploration of the purpose of education and how to make schools better.

[Luxt2009] Andrew Luxton-Reilly. A systematic review of tools that support peer assessment. Computer Science Education, 19(4):209–232, Dec 2009. Surveys peer assessment tools that may be of use in computing education.

[Luxt2017] Andrew Luxton-Reilly, Jacqueline Whalley, Brett A. Becker, Yingjun Cao, Roger McDermott, Claudio Mirolo, Andreas Mühling, Andrew Petersen, Kate Sanders, and Simon. Developing assessments to determine mastery of programming fundamentals. In Proc. 2017 Conference on Innovation and Technology in Computer Science Education (ITiCSE’17). Association for Computing Machinery (ACM), 2017. Synthesizes work from many previous works to determine what CS instructors are actually teaching, how those things depend on each other, and how they might be assessed, and presents several case studies showing how their classification can be applied.

[Macn2014] Brooke N. Macnamara, David Z. Hambrick, and Frederick L. Oswald. Deliberate practice and performance in music, games, sports, education, and professions: A meta-analysis. Psychological Science, 25(8):1608–1618, Jul 2014. A meta-study of the effectiveness of deliberate practice.

[Magu2018] Phil Maguire, Rebecca Maguire, and Robert Kelly. Using automatic machine assessment to teach computer programming. Computer Science Education, pages 1–18, Feb 2018. Switched informal labs to a weekly machine-evaluated test using HackerRank and found the latter was the best predictor of exam scores; students didn’t like the system, but overall failure rate halved and the number of students getting first class honors tripled.

[Majo2015] Claire Howell Major, Michael S. Harris, and Tod Zakrajsek. Teaching for Learning: 101 Intentionally Designed Educational Activities to Put Students on the Path to Success. Routledge, 2015. Catalogs a hundred different kinds of exercises to do with students.

[Malo2010] John Maloney, Mitchel Resnick, Natalie Rusk, Brian Silverman, and Evelyn Eastmond. The scratch programming language and environment. ACM Transactions on Computing Education, 10(4):1–15, Nov 2010. Summarizes the design of the first generation of Scratch.

[Mann2015] Mary Lynn Manns and Linda Rising. Fearless Change: Patterns for Introducing New Ideas. Addison-Wesley, 2015. A catalog of patterns for making change happen in large organizations.

[Marc2011] Guillaume Marceau, Kathi Fisler, and Shriram Krishnamurthi. Measuring the effectiveness of error messages designed for novice programmers. In Proc. 2011 Technical Symposium on Computer Science Education (SIGCSE’11). Association for Computing Machinery (ACM), 2011. Looks at edit-level responses to error messages, and introduces a useful rubric for classifying user responses to errors.

[Marg2003] Jane Margolis and Allan Fisher. Unlocking the Clubhouse: Women in Computing. MIT Press, 2003. A groundbreaking report on the gender imbalance in computing, and the steps Carnegie-Mellon took to address the problem.

[Marg2010] Jane Margolis, Rachel Estrella, Joanna Goode, Jennifer Jellison Holme, and Kim Nao. Stuck in the Shallow End: Education, Race, and Computing. MIT Press, 2010. Dissects the school structures and belief systems that lead to underrepresentation of African American and Latinx students in computing.

[Marg2012] Lauren E. Margulieux, Mark Guzdial, and Richard Catrambone. Subgoal-labeled instructional material improves performance and transfer in learning to develop mobile applications. In Proc. 2012 International Computing Education Research Conference (ICER’12), pages 71–78. ACM Press, 2012. Showed that labelled subgoals improve outcomes and transference when learning about mobile app development.

[Marg2015] Anoush Margaryan, Manuela Bianco, and Allison Littlejohn. Instructional quality of massive open online courses (MOOCs). Computers & Education, 80:77–83, Jan 2015. Examined 76 MOOCs and found that instructional design quality was poor, but organization and presentation of material was good.

[Marg2016] Lauren E. Margulieux, Richard Catrambone, and Mark Guzdial. Employing subgoals in computer programming education. Computer Science Education, 26(1):44–67, Jan 2016. Describes three controlled experiments showing that labelled subgoals improve learning outcomes in introductory computing courses.

[Mark2018] Rebecca A. Markovits and Yana Weinstein. Can cognitive processes help explain the success of instructional techniques recommended by behavior analysts? NPJ Science of Learning, 3(1), Jan 2018. Points out that behaviorists and cognitive psychologists differ in approach, but wind up making very similar recommendations about how to teach, and gives two specific examples (guided notes and response cards).

[Mars2002] Herbert W. Marsh and John Hattie. The relation between research productivity and teaching effectiveness: Complementary, antagonistic, or independent constructs? Journal of Higher Education, 73(5):603–641, 2002. One study of many showing there is zero correlation between research ability and teaching effectiveness.

[Mart2017] Christopher Martin, Janet Hughes, and John Richards. Learning dimensions: Lessons from field studies. In Proc. 2017 Conference on Innovation and Technology in Computer Science Education (ITiCSE’17). Association for Computing Machinery (ACM), 2017. Outlines dimensions along which to evaluate lessons: closed vs. open, cultural relevance, recognition, space to play, driver shift, risk reward, grouping, and session shape.

[Masa2018] Susana Masapanta-Carrión and J. Ángel Velázquez-Iturbide. A systematic review of the use of bloom’s taxonomy in computer science education. In Proc. 2018 Technical Symposium on Computer Science Education (SIGCSE’18). Association for Computing Machinery (ACM), 2018. A literature survey of uses of Bloom’s Taxonomy in CS education that finds that even experienced educators have trouble agreeing on the correct classification for a question or idea.

[Maso2016] Raina Mason, Carolyn Seton, and Graham Cooper. Applying cognitive load theory to the redesign of a conventional database systems course. Computer Science Education, 26(1):68–87, Jan 2016. Redesigned a conventional introduction to databases course based on cognitive load theory to remove split attention and redundancy effects, provide worked examples and sub-goals, and re-sequence content, and reduced exam failure rate by 34% on an identical exam while increasing student satisfaction.

[Maye2003] Richard E. Mayer and Roxana Moreno. Nine ways to reduce cognitive load in multimedia learning. Educational Psychologist, 38(1):43–52, Mar 2003. Shows how research into how we absorb and process information can be applied to the design of instructional materials.

[Maye2009] Richard E. Mayer. Multimedia Learning. Cambridge University Press, second edition, 2009. Presents a cognitive theory of multimedia learning based in part on the author’s own research.

[Mazu1996] Eric Mazur. Peer Instruction: A User’s Manual. Prentice Hall, 1996. A guide to implementing peer instruction.

[McCa2008] Renée McCauley, Sue Fitzgerald, Gary Lewandowski, Laurie Murphy, Beth Simon, Lynda Thomas, and Carol Zander. Debugging: A review of the literature from an educational perspective. Computer Science Education, 18(2):67–92, Jun 2008. Summarizes research as of the time of publication about why bugs occur, why types occur, how people debug, and whether/how we can teach debugging skills.

[McCr2001] Michael McCracken, Tadeusz Wilusz, Vicki Almstrum, Danny Diaz, Mark Guzdial, Dianne Hagan, Yifat Ben-David Kolikant, Cary Laxer, Lynda Thomas, and Ian Utting. A multi-national, multi-institutional study of assessment of programming skills of first-year CS students. In Proc. 2001 Conference on Innovation and Technology in Computer Science Education (ITiCSE’01). Association for Computing Machinery (ACM), 2001. An international study that found that most students still struggle to solve even basic programming problems at the end of their introductory course.

[McDo2006] Charlie McDowell, Linda Werner, Heather E. Bullock, and Julian Fernald. Pair programming improves student retention, confidence, and program quality. Communications of the ACM, 49(8):90–95, Aug 2006. A summary of research showing that pair programming improves retention and confidence.

[McGu2015] Saundra Yancey McGuire. Teach Students How to Learn: Strategies You Can Incorporate Into Any Course to Improve Student Metacognition, Study Skills, and Motivation. Stylus Publishing, 2015. Explains how metacognitive strategies can improve learning.

[McMi2017] Tressie McMillan Cottom. Lower Ed: The Troubling Rise of For-Profit Colleges in the New Economy. The New Press, 2017. Lays bare the dynamics of this growing “educational” industry to show how it leads to greater inequality rather than less.

[McTi2013] Jay McTighe and Grant Wiggins. Understanding by design framework. http://www.ascd.org/ASCD/pdf/siteASCD/publications/UbD_WhitePaper0312.pdf, 2013. A short white paper summarizing the backward instructional design process.

[Merr2013] M. David Merrill. First Principles of Instruction: Identifying and Designing Effective, Efficient and Engaging Instruction. Pfeiffer, 2013. Describes how to apply learning science principles.

[Metc2016] Janet Metcalfe. Learning from errors. Annual Review of Psychology, 68(1):465–489, Jan 2016. Summarizes work on the hypercorrection effect in learning.

[Meys2018] Mark Meysenburg, Tessa Durham Brooks, Raychelle Burks, Erin Doyle, and Timothy Frey. DIVAS: Outreach to the natural sciences through image processing. In Proc. 2018 Technical Symposium on Computer Science Education (SIGCSE’18). Association for Computing Machinery (ACM), 2018. Describes early results from a programming course for science undergrads built around image processing.

[Midw2010] Midwest Academy. Organizing for Social Change: Midwest Academy Manual for Activists. The Forum Press, fourth edition, 2010. A training manual for people building progressive social movements.

[Mill1956] George A. Miller. The magical number seven, plus or minus two: Some limits on our capacity for processing information. Psychological Review, 63(2):81–97, 1956. The original paper on the limited size of short-term memory.

[Mill2013] Kelly Miller, Nathaniel Lasry, Kelvin Chu, and Eric Mazur. Role of physics lecture demonstrations in conceptual learning. Physical Review Special Topics - Physics Education Research, 9(2), Sep 2013. Reports a detailed study of what students learn during demonstrations and why.

[Mill2014] Craig S. Miller. Metonymy and reference-point errors in novice programming. Computer Science Education, 24(2-3):123–152, Jul 2014. Reports two experiments showing that use of metonymy (referring to something structurally related to an actual subject) may explain some novice programming errors, and that students are more likely to produce reference-point errors that involve identifying attributes than descriptive attributes.

[Mill2016a] Michelle D. Miller. Minds Online: Teaching Effectively with Technology. Harvard University Press, 2016. Desribes ways that insights from neuroscience can be used to improve online teaching.

[Mill2016b] Craig S. Miller and Amber Settle. Some trouble with transparency: An analysis of student errors with object-oriented python. In Proc. 2016 International Computing Education Research Conference (ICER’16). Association for Computing Machinery (ACM), 2016. Study that found most students had difficulty with self in Python, either by omitting it in method definitions or by not using it when referencing object attributes, and that such errors were more common than other types of errors.

[Milt2018] Kate M. Miltner. Girls who coded: Gender in twentieth century U.K. and U.S. computing. Science, Technology, & Human Values, May 2018. A review of three books about how women were systematically pushed out of computing.

[Mlad2017] Monika Mladenović, Ivica Boljat, and Žana Žanko. Comparing loops misconceptions in block-based and text-based programming languages at the k-12 level. Education and Information Technologies, Nov 2017. Study of 207 K-12 students found fewer misconceptions about loops using Scratch than using Logo or Python, and fewer misconceptions about nested loops with Logo than with Python.

[Morr2016] Briana B. Morrison, Lauren E. Margulieux, Barbara J. Ericson, and Mark Guzdial. Subgoals help students solve parsons problems. In Proc. 2016 Technical Symposium on Computer Science Education (SIGCSE’16). Association for Computing Machinery (ACM), 2016. Study found that students with labelled subgoals solved Parsons Problems for learning while loops better than students without labelled subgoals.

[Muel2014] Pam A. Mueller and Daniel M. Oppenheimer. The pen is mightier than the keyboard. Psychological Science, 25(6):1159–1168, Apr 2014. Presents evidence that taking notes by hand is more effective than taking notes on a laptop.

[Muhl2016] Andreas Mühling. Aggregating concept map data to investigate the knowledge of beginning CS students. Computer Science Education, 26(2-3):176–191, Jul 2016. Analyzed 350 concept maps and compared those drawn by students with prior CS experience and those without, finding that OO concepts featured more prominently in the former and procedural concepts more prominently in the latter, and that while “program” was the central concept in both sets, “class” and “data structure” were next in the former, while “processor” and “data” were next in the latter.

[Mull2007a] Derek A. Muller, James Bewes, Manjula D. Sharma, and Peter Reimann. Saying the wrong thing: Improving learning with multimedia by including misconceptions. Journal of Computer Assisted Learning, 24(2):144–155, Jul 2007. A study of 364 physics students found that including explicit discussion of misconceptions significantly improved learning outcomes, with students with low prior knowledge benefiting most without students with more prior knowledge being disadvantaged.

[Mull2007b] Orna Muller, David Ginat, and Bruria Haberman. Pattern-oriented instruction and its influence on problem decomposition and solution construction. In Proc. 2007 Technical Symposium on Computer Science Education (SIGCSE’07). Association for Computing Machinery (ACM), 2007. Describes a multi-year study showing that explicitly teaching solution patterns improved learning outcomes.

[Murp2008] Laurie Murphy, Gary Lewandowski, Renée McCauley, Beth Simon, Lynda Thomas, and Carol Zander. Debugging: The good, the bad, and the quirky - a qualitative analysis of novices’ strategies. ACM SIGCSE Bulletin, 40(1):163, Feb 2008. A study of 21 CS2 students found that many used good debugging strategies, but many others did not, and students often didn’t recognize when they were stuck.

[Nara2018] Sathya Narayanan, Kathryn Cunningham, Sonia Arteaga, William J. Welch, Leslie Maxwell, Zechariah Chawinga, and Bude Su. Upward mobility for underrepresented students. In Proc. 2018 Technical Symposium on Computer Science Education (SIGCSE’18). Association for Computing Machinery (ACM), 2018. Describes an intensive 3-year bachelor’s program based on tight-knit cohorts and administrative support that tripled graduation rates.

[Nath2003] Mitchell J. Nathan and Anthony Petrosino. Expert blind spot among preservice teachers. American Educational Research Journal, 40(4):905–928, Jan 2003. Early work on expert blind spot.

[Nils2017] Linda B. Nilson and Ludwika A. Goodson. Online Teaching at Its Best: Merging Instructional Design with Teaching and Learning Research. Jossey-Bass, 2017. A sequel to the first author’s widely-regarded guide for college-level instructors that focuses on online teaching.

[Nord2017] Emily Nordmann, Colin Calder, Paul Bishop, Amy Irwin, and Darren Comber. Turn up, tune in, don’t drop out: The relationship between lecture attendance, use of lecture recordings, and achievement at different levels of study. https://psyarxiv.com/fd3yj, 2017. Studies the pros and cons of recording lectures.

[Nutb2016] Stephen Nutbrown and Colin Higgins. Static analysis of programming exercises: Fairness, usefulness and a method for application. Computer Science Education, 26(2-3):104–128, May 2016. Initially no correlation between human provided marks and style-checker rule violations, e.g. because students violated one rule many times or submitted skeleton code with few modifications, so altered autograder rules and weighted grades to get a stronger correlation with manual assessment.

[Nuth2007] Graham Nuthall. The Hidden Lives of Learners. NZCER Press, 2007. Summarizes a lifetime of work looking at what students actually do in classrooms and how they actually learn.

[Ojos2015] Bobby Ojose. Common Misconceptions in Mathematics: Strategies to Correct Them. UPA, 2015. A catalog of K12 misconceptions in mathematics and what to do about them.

[Oram2010] Andy Oram and Greg Wilson, editors. Making Software: What Really Works and Why We Believe It. O’Reilly Media, 2010. Explores the question posed in the title, drawing on educational research for answers.

[Ornd2015] Harold N. Orndorff III. Collaborative note-taking: The impact of cloud computing on classroom performance. International Journal of Teaching and Learning in Higher Education, 27(3):340–351, 2015. Finds that taking notes together online is more effective than solo note-taking.

[Pape1993] Seymour A. Papert. Mindstorms: Children, Computers, and Powerful Ideas. Basic Books, second edition, 1993. The foundational text on how computers can underpin a new kind of education.

[Pare2008] Dwayne E. Paré and Steve Joordens. Peering into large lectures: Examining peer and expert mark agreement using peerScholar, an online peer assessment tool. Journal of Computer Assisted Learning, 24(6):526–540, Oct 2008. Shows that peer grading by small groups can be as effective as expert grading once accountability features are introduced.

[Park2015] Thomas H. Park, Brian Dorn, and Andrea Forte. An analysis of HTML and CSS syntax errors in a web development course. ACM Transactions on Computing Education, 15(1):1–21, Mar 2015. Using data from an intro web development course, 20% of student errors related to the rules dictating when HTML elements can be nested, while 35% related to the (simpler) syntax determining how elements are nested, and nearly all of the errors that were detected through validation were eventually corrected.

[Park2016] Miranda C. Parker, Mark Guzdial, and Shelly Engleman. Replication, validation, and use of a language independent CS1 knowledge assessment. In Proc. 2016 International Computing Education Research Conference (ICER’16). Association for Computing Machinery (ACM), 2016. Describes construction and replication of a second concept inventory for basic computing knowledge.

[Parn1986] David Lorge Parnas and Paul C. Clements. A rational design process: How and why to fake it. IEEE Transactions on Software Engineering, SE-12(2):251–257, Feb 1986. Argued that using a rational design process is less important than looking as though you had.

[Parn2017] Chris Parnin, Janet Siegmund, and Norman Peitek. On the nature of programmer expertise. In Psychology of Programming Interest Group Workshop 2017, 2017. An annotated exploration of what “expertise” means in programming.

[Pars2006] Dale Parsons and Patricia Haden. Parson’s programming puzzles: A fun and effective learning tool for first programming courses. In Proc. 2006 Australasian Conference on Computing Education (ACE’06), pages 157–163. Australian Computer Society, 2006. The first descriptions of Parson’s Problems.

[Pati2016] Elizabeth Patitsas, Jesse Berlin, Michelle Craig, and Steve Easterbrook. Evidence that computer science grades are not bimodal. In Proc. 2016 International Computing Education Research Conference (ICER’16). Association for Computing Machinery (ACM), 2016. Presents a statistical analysis and an experiment which jointly show that grades in computing classes are not bimodal, i.e., there is no geek gene.

[Pea1986] Roy D. Pea. Language-independent conceptual “bugs” in novice programming. Journal of Educational Computing Research, 2(1):25–36, Feb 1986. First named the "superbug" in coding: most newcomers think the computer understands what they want, in the same way that a human being would.

[Pere2013] Santiago Perez De Rosso and Daniel Jackson. What’s wrong with git? a conceptual design analysis. In Proc. 2013 International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!’13). Association for Computing Machinery (ACM), 2013. An analysis comparing Git’s actual operation with its users’ conceptual model, highlighting the errors and confusion that result from the differences.

[Pere2016] Santiago Perez De Rosso and Daniel Jackson. Purposes, concepts, misfits, and a redesign of git. In Proc. 2016 Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’16). Association for Computing Machinery (ACM), 2016. Follows up earlier work with a usability-based redesign of Git, tested by a user study, but finds that most people have either mastered Git and are defensive about its quirks, or think that its poor usability is so obvious as to not need belaboring.

[Pete2017] John Peterson and Greg Haynes. Integrating computer science into music education. In Proc. 2017 Technical Symposium on Computer Science Education (SIGCSE’17). Association for Computing Machinery (ACM), 2017. Describes a DSL for music composition that can be used to introduce coding ideas into introductory music classes.

[Petr2016] Marian Petre and André van der Hoek. Software Design Decoded: 66 Ways Experts Think. MIT Press, 2016. A short illustrated overview of how expert software developers think.

[Pign2016] Alessandra Pigni. The Idealist’s Survival Kit: 75 Simple Ways to Prevent Burnout. Parallax Press, 2016. A guide to staying sane and healthy while doing good.

[Port2013] Leo Porter, Mark Guzdial, Charlie McDowell, and Beth Simon. Success in introductory programming: What works? Communications of the ACM, 56(8):34, Aug 2013. Summarizes the evidence that peer instruction, media computation, and pair programming can significantly improve outcomes in introductory programming courses.

[Port2016] Leo Porter, Dennis Bouvier, Quintin Cutts, Scott Grissom, Cynthia Bailey Lee, Robert McCartney, Daniel Zingaro, and Beth Simon. A multi-institutional study of peer instruction in introductory computing. In Proc. 2016 Technical Symposium on Computer Science Education (SIGCSE’16). Association for Computing Machinery (ACM), 2016. Large study showing that students in introductory programming classes value peer instruction, and that it improves learning outcomes.

[Qian2017] Yizhou Qian and James Lehman. Students’ misconceptions and other difficulties in introductory programming. ACM Transactions on Computing Education, 18(1):1–24, Oct 2017. Summarizes research on student misconceptions and places it in the framework of conceptual change theory.

[Rago2017] Noa Ragonis and Ronit Shmallo. On the (mis)understanding of the “this” reference. In Proc. 2017 Technical Symposium on Computer Science Education (SIGCSE’17). Association for Computing Machinery (ACM), 2017. Studied 86 high school students and 48 high school teachers, found that only 45% of students understood when to use this, only 60% understood when not to, and only 24% could define it clearly (all these figures probably being overestimates because respondents could simply be reciting), and that teachers were also often not clear on these subjects.

[Raws2014] Katherine A. Rawson, Ruthann C. Thomas, and Larry L. Jacoby. The power of examples: Illustrative examples enhance conceptual learning of declarative concepts. Educational Psychology Review, 27(3):483–504, Jun 2014. Reports experiments showing that presenting examples helps students understand definitions, so long as examples and definitions are interleaved.

[Ray2014] Eric J. Ray and Deborah S. Ray. Unix and Linux: Visual QuickStart Guide. Peachpit Press, fifth edition, 2014. An introduction to Unix that is both a good tutorial and a good reference guide.

[Rich2017] Kathryn M. Rich, Carla Strickland, T. Andrew Binkowski, Cheryl Moran, and Diana Franklin. K-8 learning trajectories derived from research literature. In Proc. 2017 International Computing Education Research Conference (ICER’17). Association for Computing Machinery (ACM), 2017. Reviews 100 articles to find learning trajectories for K-8 computing classes for Sequence, Repetition, and Conditions, presented diagrammatically.

[Ritz2018] Anna Ritz. Programming the central dogma: An integrated unit on computer science and molecular biology concepts. In Proc. 2018 Technical Symposium on Computer Science Education (SIGCSE’18). Association for Computing Machinery (ACM), 2018. Describes an introductory computing course for biologists whose problems are drawn from the DNA-to-protein processes in cells.

[Robi2005] Evan Robinson. Why crunch mode doesn’t work: 6 lessons. http://www.igda.org/articles/erobinson_crunch.php, 2005. Summarizes research on the effects of overwork and sleep deprivation.

[Rohrer2015] Doug Rohrer, Robert F. Dedrick, and Sandra Stershic. Interleaved practice improves mathematics learning. Journal of Educational Psychology, 107(3):900–908, 2015. Reports that interleaved practice is more effective than monotonous practice when learning.

[Rubi2013] Marc J. Rubin. The effectiveness of live-coding to teach introductory programming. In Proc. 2013 Technical Symposium on Computer Science Education (SIGCSE’13), pages 651–656. Association for Computing Machinery (ACM), 2013. Reports that live coding is as good as or better than using static code examples.

[Rubi2014] Manuel Rubio-Sánchez, Päivi Kinnunen, Cristóbal Pareja-Flores, and J. Ángel Velázquez-Iturbide. Student perception and usage of an automated programming assessment tool. Computers in Human Behavior, 31:453–460, Feb 2014. Describes a study of how students use the Mooshask auto-grader (originally designed for programming competitions): students made some negative comments about it, which the authors attribute to Mooshak’s feedback messages rather than to dislike of autograding, and there was no significant decrease in dropout rates of users.

[Saja2006] Jorma Sajaniemi, Mordechai Ben-Ari, Pauli Byckling, Petri Gerdt, and Yevgeniya Kulikova. Roles of variables in three programming paradigms. Computer Science Education, 16(4):261–279, Dec 2006. A detailed look at the authors’ work on roles of variables.

[Sala2017] Giovanni Sala and Fernand Gobet. Does far transfer exist? negative evidence from chess, music, and working memory training. Current Directions in Psychological Science, 26(6):515–520, Oct 2017. Meta-analyses showing that far transfer rarely occurs.

[Sand2013] Kate Sanders, Jaime Spacco, Marzieh Ahmadzadeh, Tony Clear, Stephen H. Edwards, Mikey Goldweber, Chris Johnson, Raymond Lister, Robert McCartney, and Elizabeth Patitsas. The canterbury QuestionBank: Building a repository of multiple-choice CS1 and CS2 questions. In Proc. 2013 Conference on Innovation and Technology in Computer Science Education (ITiCSE’13). Association for Computing Machinery (ACM), 2013. Describes the authors’ experience developing a shared question bank with entries for various languages and topics related to introductory CS, and 12 patterns for MCQs that emerged from entries.

[Scaf2017] Christopher Scaffidi. Workers who use spreadsheets and who program earn more than similar workers who do neither. In Proc. 2017 Symposium on Visual Languages and Human-Centric Computing (VL/HCC’17). Institute of Electrical and Electronics Engineers (IEEE), 2017. Workers who aren’t software developers but who program make higher wages than comparable workers who do not.

[Scan1989] David A. Scanlan. Structured flowcharts outperform pseudocode: an experimental comparison. IEEE Software, 6(5):28–36, Sep 1989. A study that found students understand flowcharts better than pseudocode if both are equally well structured.

[Scho1984] Donald A. Schön. The Reflective Practitioner: How Professionals Think In Action. Basic Books, 1984. A groundbreaking look at how professionals in different fields actually solve problems.

[Scot1998] James C. Scott. Seeing Like a State: How Certain Schemes to Improve the Human Condition Have Failed. Yale University Press, 1998. Argues that large organizations consistently prefer uniformity over productivity.

[Sepp2015] Otto Seppälä, Petri Ihantola, Essi Isohanni, Juha Sorva, and Arto Vihavainen. Do we know how difficult the rainfall problem is? In Proc. 2015 Koli Calling Conference on Computing Education Research (Koli’15). ACM Press, 2015. A meta-study of Soloway’s Rainfall Problem.

[Shap2007] Jenessa R. Shapiro and Steven L. Neuberg. From stereotype threat to stereotype threats: Implications of a multi-threat framework for causes, moderators, mediators, consequences, and interventions. Personality and Social Psychology Review, 11(2):107–130, MAY 2007. Explores the ways the term “stereotype threat‘ has been used.

[Shel2017] Duane F. Shell, Leen-Kiat Soh, Abraham E. Flanigan, Markeya S. Peteranetz, and Elizabeth Ingraham. Improving students’ learning and achievement in CS classrooms through computational creativity exercises that integrate computational and creative thinking. In Proc. 2017 Technical Symposium on Computer Science Education (SIGCSE’17). Association for Computing Machinery (ACM), 2017. Reports that having students work in small groups on computational creativity exercises improves learning outcomes as measured by grades.

[Simo2006] Beth Simon, Tzu-Yi Chen, Gary Lewandowski, Robert McCartney, and Kate Sanders. Commonsense computing: What students know before we teach (episode 1: Sorting). In Proc. 2006 International Computing Education Research Conference (ICER’06). Association for Computing Machinery (ACM), 2006. Found that most CS1 students could describe a plausible algorithm to sort numbers in natural language on the first day of class, compared to only one third of general students, but that the CS students’ ability decreased after ten weeks of instruction because they were trying too hard to include code-level details.

[Simo2013] Simon. Soloway’s rainfall problem has become harder. In Proc. 2013 Conference on Learning and Teaching in Computing and Engineering. Institute of Electrical and Electronics Engineers (IEEE), Mar 2013. Argues that Soloway’s rainfall problem is harder for novices than it used to be because they’re not used to handling keyboard input, so direct comparison may be unfair.

[Sirk2012] Teemu Sirkiä and Juha Sorva. Exploring programming misconceptions: An analysis of student mistakes in visual program simulation exercises. In Proc. 2012 Koli Calling Conference on Computing Education Research (Koli’12). Association for Computing Machinery (ACM), 2012. Analyzes data from student use of an execution visualization tool and classifies common mistakes.

[Sisk2018] Victoria F. Sisk, Alexander P. Burgoyne, Jingze Sun, Jennifer L. Butler, and Brooke N. Macnamara. To what extent and under which circumstances are growth mind-sets important to academic achievement? two meta-analyses. Psychological Science, page 095679761773970, Mar 2018. Reports meta-analyses of strength of the relationship between mind-set and academic achievement, and of effectiveness of mind-set interventions on academic achievement, and finds that overall effects were weak for both, but some results supported specific tenets of the theory, namely, that students with low socioeconomic status or who are academically at risk might benefit from mind-set interventions.

[Smit2009] Michelle K. Smith, William B. Wood, Wendy K. Adams, Carl E. Wieman, Jennifer K. Knight, N. Guild, and T.T. Su. Why peer discussion improves student performance on in-class concept questions. Science, 323(5910):122–124, Jan 2009. Reports a study showing that student understanding actually does increase during discussion in peer instruction, even when none of the students in the group initially know the right answer.

[Solo1984] Elliot Soloway and Kate Ehrlich. Empirical studies of programming knowledge. IEEE Transactions on Software Engineering, SE-10(5):595–609, Sep 1984. Proposes that experts have programming plans (generic program fragments that represent stereotypical actions) and rules of programming discourse (capture the conventions in programming and methods of plan composition), and presents rules from two studies that support this model.

[Solo1986] Elliot Soloway. Learning to program = learning to construct mechanisms and explanations. Communications of the ACM, 29(9):850–858, Sep 1986. Groundbreaking work that analyzed programming in terms of choosing appropriate goals and constructing plans to achieve them, focused on mechanisms and explanations, and introduced the rainfall problem.

[Sond2012] Harald Søndergaard and Raoul A. Mulder. Collaborative learning through formative peer review: Pedagogy, programs and potential. Computer Science Education, 22(4):343–367, Dec 2012. Surveys literature on student peer assessment, distinguishing grading and reviewing as separate forms, and summarizes features a good peer review system needs to have.

[Sorv2013] Juha Sorva. Notional machines and introductory programming education. ACM Transactions on Computing Education, 13(2):1–31, Jun 2013. Reviews literature on programming misconceptions, the cognitive theory of mental models, constructivist theory of knowledge and learning, phenomenographic research on experiencing programming, and the theory of threshold concepts in relation to the concept of a "notional machine", which emerges as a major challenge in introductory programming education, and argues that instructors should address notional machines as an explicit learning objective.

[Sorv2014] Juha Sorva and Otto Seppälä. Research-based design of the first weeks of CS1. In Proc. 2014 Koli Calling Conference on Computing Education Research (Koli’14). Association for Computing Machinery (ACM), 2014. Proposes three cognitively plausible frameworks for the design of a first CS course: motivate-isolate-practice-integrate, head straight for objects, and explicit program dynamics.

[Sorv2018] Juha Sorva. Misconceptions and the beginner programmer. In Sue Sentance, Erik Barendsen, and Carsten Schulte, editors, Computer Science Education: Perspectives on Teaching and Learning in School. Bloomsbury, 2018. A summary of what we know about what novices misunderstand about computing.

[Spal2014] Dan Spalding. How to Teach Adults: Plan Your Class, Teach Your Students, Change the World. Jossey-Bass, 2014. A short guide to teaching adult free-range learners informed by the author’s social activism.

[Spoh1985] James C. Spohrer, Elliot Soloway, and Edgar Pope. A goal/plan analysis of buggy pascal programs. Human-Computer Interaction, 1(2):163–207, Jun 1985. One of the first cognitively plausible analyses of how people program, which proposed a goal/plan model.

[Srid2016] Sumukh Sridhara, Brian Hou, Jeffrey Lu, and John DeNero. Fuzz testing projects in massive courses. In Proc. 2016 Conference on Learning @ Scale (L@S’16). Association for Computing Machinery (ACM), 2016. Found that fuzz testing student code caught errors that were missed by handwritten test suite (and includes discussion of how to share test cases and outputs).

[Stam2013] Eliane Stampfer and Kenneth R. Koedinger. When seeing isn’t believing: Influences of prior conceptions and misconceptions. In Proc. 2013 Annual Meeting of the Cognitive Science Society (CogSci’13), 2013. Exploring why giving children more information when they are learning about fractions can lower performance.

[Star2014] Philip Stark and Richard Freishtat. An evaluation of course evaluations. ScienceOpen Research, Sep 2014. Yet another demonstration that teaching evaluations don’t correlate with learning outcomes, and that they are frequently suspect from a statistical point of view.

[Stas1998] John Stasko, John Domingue, Mark H. Brown, and Blaine A. Price, editors. Software Visualization: Programming as a Multimedia Experience. MIT Press, 1998. A survey of program and algorithm visualization techniques and results.

[Stee2011] Claude M. Steele. Whistling Vivaldi: How Stereotypes Affect Us and What We Can Do. W. W. Norton & Company, 2011. Explains and explores stereotype threat and strategies for addressing it.

[Stef2013] Andreas Stefik and Susanna Siebert. An empirical investigation into programming language syntax. ACM Transactions on Computing Education, 13(4):1–40, Nov 2013. A careful study showing that the curly-brace languages are as hard to learn as a language with randomly-designed syntax, but others are better.

[Stef2017] Andreas Stefik, Patrick Daleiden, Diana Franklin, Stefan Hanenberg, Antti-Juhani Kaijanaho, Walter Tichy, and Brett A. Becker. Programming languages and learning. https://quorumlanguage.com/evidence.html, 2017. A brief summary of what we actually know about designing programming languages and why we believe it’s true.

[Steg2014] Martijn Stegeman, Erik Barendsen, and Sjaak Smetsers. Towards an empirically validated model for assessment of code quality. In Proc. 2014 Koli Calling Conference on Computing Education Research (Koli’14). Association for Computing Machinery (ACM), 2014. Synthesized 401 suggestions for code quality and 178 statements from three instructors to generate the first draft of a code quality rubric for novice programming courses.

[Steg2016a] Martijn Stegeman, Erik Barendsen, and Sjaak Smetsers. Designing a rubric for feedback on code quality in programming courses. In Proc. 2016 Koli Calling Conference on Computing Education Research (Koli’16). Association for Computing Machinery (ACM), 2016. Describes several rounds of iteration to improve a code quality rubric for novice programming courses.

[Steg2016b] Martijn Stegeman, Erik Barendsen, and Sjaak Smetsers. Rubric for feedback on code quality in programming courses. http://stgm.nl/quality, 2016. Code quality rubric developed by the authors.

[Stoc2018] Jean Stockard, Timothy W. Wood, Cristy Coughlin, and Caitlin Rasplica Khoury. The effectiveness of direct instruction curricula: A meta-analysis of a half century of research. Review of Educational Research, page 003465431775191, Jan 2018. Meta-analysis finds significant positive benefit for Direct Instruction (strong form, involving teaching from a script).

[Sung2012] Eunmo Sung and Richard E. Mayer. When graphics improve liking but not learning from online lessons. Computers in Human Behavior, 28(5):1618–1625, Sep 2012. Study showing that students who receive any kind of graphics give significantly higher satisfaction ratings than those who don’t get graphics, but only students who get instructive graphics perform significantly better than groups that get no graphics, seductive graphics, or decorative graphics.

[Sved2016] Maria Svedin and Olle Bälter. Gender neutrality improved completion rate for all. Computer Science Education, 26(2-3):192–207, Jul 2016. A study involving over a thousand students found that redesigning an online course to be gender neutral improved completion probability by 7%, in particular for men, but decreased for students with a high score for superficial learning approach, especially among women.

[Tann2013] Kimberly D. Tanner. Structure matters: Twenty-one teaching strategies to promote student engagement and cultivate classroom equity. Cell Biology Education, 12(3):322–331, Sep 2013. Presents and explains 21 strategies in five groups for making classes more engaging and equitable.

[Tedr2008] Matti Tedre and Erkki Sutinen. Three traditions of computing: What educators should know. Computer Science Education, 18(3):153–170, Sep 2008. Summarizes the history and views of three traditions in computing: mathematical (analytical, theoretical, or formalist), scientific (empirical), and engineering (technological).

[Tew2011] Allison Elliott Tew and Mark Guzdial. The FCS1: A language independent assessment of CS1 knowledge. In Proc. 2011 Technical Symposium on Computer Science Education (SIGCSE’11). Association for Computing Machinery (ACM), 2011. Describes development and validation of a language-independent assessment instrument for CS1 knowledge, where validation involved using a pseudocode version of the test as well as versions using real programming languages (Java, MATLAB, and Python) and think aloud interview data, student responses to the FCS1, and student CS1 exam scores.

[Thay2017] Kyle Thayer and Andrew J. Ko. Barriers faced by coding bootcamp students. In Proc. 2017 International Computing Education Research Conference (ICER’17). Association for Computing Machinery (ACM), 2017. Interviews with 26 coding bootcamp alumni found mixed results: bootcamps are sometimes useful, but formal and informal barriers remain, and quality is varied.

[Ubel2017] Robert Ubell. How the pioneers of the MOOC got it wrong. http://spectrum.ieee.org/tech-talk/at-work/education/how-the-pioneers-of-the-mooc-got-it-wrong, 2017. A brief exploration of why MOOCs haven’t lived up to initial hype.

[Urba2014] David R. Urbach, Anand Govindarajan, Refik Saskin, Andrew S. Wilton, and Nancy N. Baxter. Introduction of surgical safety checklists in ontario, canada. New England Journal of Medicine, 370(11):1029–1038, Mar 2014. Reports a study showing that the introduction of surgical checklists did not have a significant effect on operative outcomes.

[Utti2013] Ian Utting, Juha Sorva, Tadeusz Wilusz, Allison Elliott Tew, Mike McCracken, Lynda Thomas, Dennis Bouvier, Roger Frye, James Paterson, Michael Caspersen, and Yifat Ben-David Kolikant. A fresh look at novice programmers’ performance and their teachers’ expectations. In Proc. 2013 Conference on Innovation and Technology in Computer Science Education (ITiCSE’13). ACM Press, 2013. Replicates the 2001 study showing how little students seem to learn in their first programming course.

[Uttl2017] Bob Uttl, Carmela A. White, and Daniela Wong Gonzalez. Meta-analysis of faculty’s teaching effectiveness: Student evaluation of teaching ratings and student learning are not related. Studies in Educational Evaluation, 54:22–42, Sep 2017. A summary of studies shown that how students rate a course and how much they actually learn are not related.

[Vell2017] Mickey Vellukunnel, Philip Buffum, Kristy Elizabeth Boyer, Jeffrey Forbes, Sarah Heckman, and Ketan Mayer-Patel. Deconstructing the discussion forum: Student questions and computer science learning. In Proc. 2017 Technical Symposium on Computer Science Education (SIGCSE’17). Association for Computing Machinery (ACM), 2017. Found that students mostly ask constructivist and logistical questions in forums, and that the former correlate with grades.

[Viha2014] Arto Vihavainen, Jonne Airaksinen, and Christopher Watson. A systematic review of approaches for teaching introductory programming and their influence on success. In Proc. 2014 International Computing Education Research Conference (ICER’14). Association for Computing Machinery (ACM), 2014. Consolidates studies of CS1-level teaching changes and finds media computation the most effective of the 10 approaches studied, and introducing a game theme the least effective.

[Wall2009] Thorbjorn Walle and Jo E. Hannay. Personality and the nature of collaboration in pair programming. In Proc. 2009 International Symposium on Empirical Software Engineering and Measurement (ESER’09). Institute of Electrical and Electronics Engineers (IEEE), Oct 2009. Found that pairs with different levels of a given personality trait communicated more intensively.

[Ward2015] James Ward. Adventures in Stationery: A Journey Through Your Pencil Case. Profile Books, 2015. A wonderful look at the everyday items that would be in your desk drawer if someone hadn’t walked off with them.

[Wats2014] Christopher Watson and Frederick W. B. Li. Failure rates in introductory programming revisited. In Proc. 2014 Conference on Innovation and Technology in Computer Science Education (ITiCSE’14). Association for Computing Machinery (ACM), 2014. A larger version of a 2007 study that found an average of one third of students fail CS1.

[Watt2014] Audrey Watters. The Monsters of Education Technology. CreateSpace, 2014. A collection of essays about the history of educational technology and the exaggerated claims repeatedly made for it. There’s more criticism than prescription, but the former is well-informed and sharp-edged.

[Wein2017] David Weintrop and Nathan Holbert. From blocks to text and back: Programming patterns in a dual-modality environment. In Proc. 2017 Technical Symposium on Computer Science Education (SIGCSE’17). Association for Computing Machinery (ACM), 2017. Studied students using a dual-mode blocks and text coding environment and found that students tend to migrate from blocks to text over time, and that two thirds of the shifts from text to blocks were followed by adding a new type of command.

[Wein2018] Yana Weinstein, Christopher R. Madan, and Megan A. Sumeracki. Teaching the science of learning. Cognitive Research: Principles and Implications, 3(1), Jan 2018. A tutorial review of six key learning practices: spaced practice, interleaving, retrieval practice, elaboration, concrete examples, and dual coding.

[Weng2015] Etienne Wenger-Trayner and Beverly Wenger-Trayner. Communities of practice: A brief introduction. http://wenger-trayner.com/intro-to-cops/, 2015. A good brief summary of what communities of practice are and aren’t.

[Wibu2016] Karin Wiburg, Julia Parra, Gaspard Mucundanyi, Jennifer Green, and Nate Shaver, editors. The Little Book of Learning Theories. CreateSpace, second edition, 2016. Brief summaries of various theories of learning.

[Wies2014] Eliane Stampfer Wiese and Kenneth R. Koedinger. Investigating scaffolds for sense making in fraction addition and comparison. In Proc. 2014 Annual Conference of the Cognitive Science Society (CogSci’14), 2014. Exploring why giving children more information when they are learning about fractions can lower performance.

[Wigg2005] Grant Wiggins and Jay McTighe. Understanding by Design. Association for Supervision & Curriculum Development, 2005. A lengthy presentation of reverse instructional design.

[Wilc2018] Chris Wilcox and Albert Lionelle. Quantifying the benefits of prior programming experience in an introductory computer science course. In Proc. 2018 Technical Symposium on Computer Science Education (SIGCSE’18). Association for Computing Machinery (ACM), 2018. Compares performance and confidence of students with and without prior programming experience in CS1 and CS2, and finds with students outscoring without students by more than 6% on exams and 10% on programming quizzes in CS1, but no significant difference in performance by the end of CS2; also finds that female students with prior exposure outperform their male peers in all areas, but are consistently less confident in their abilities.

[Wilk2011] Richard Wilkinson and Kate Pickett. The Spirit Level: Why Greater Equality Makes Societies Stronger. Bloomsbury Press, 2011. Presents evidence that inequality harms everyone, both economically and otherwise.

[Will2010] Daniel T. Willingham. Why Don’t Students Like School?: A Cognitive Scientist Answers Questions about How the Mind Works and What It Means for the Classroom. Jossey-Bass, 2010. A cognitive scientist looks at how the mind works in the classroom.

[Wils2007] Karen Wilson and James H. Korn. Attention during lectures: Beyond ten minutes. Teaching of Psychology, 34(2):85–89, Jun 2007. Found little support for the claim that students only have a 10-15 minute attention span (though there is lots of individual variation).

[Wils2016] Greg Wilson. Software carpentry: Lessons learned. F1000Research, Jan 2016. A history and analysis of Software Carpentry.

[Wlod2017] Raymond J. Wlodkowski and Margery B. Ginsberg. Enhancing Adult Motivation to Learn: A Comprehensive Guide for Teaching All Adults. Jossey-Bass, 2017. The standard reference for understanding adult motivation, which more than lives up to the “comprehensive” in its name.

[Yada2016] Aman Yadav, Sarah Gretter, Susanne Hambrusch, and Phil Sands. Expanding computer science education in schools: Understanding teacher experiences and challenges. Computer Science Education, 26(4):235–254, Dec 2016. Summarizes feedback from K12 teachers on what they need by way of preparation and support.

[Yang2015] Yu-Fen Yang and Yuan-Yu Lin. Online collaborative note-taking strategies to foster EFL beginners’ literacy development. System, 52:127–138, Aug 2015. Found that students using collaborative note taking learned English as a foreign language better than those who didn’t.