Buy this book on Lulu.

This book is sold at cost. If you would like to support this project, you can send $5 (or any other amount) via PayPal. All money will be used to pay for third-party editing and some much-needed graphic design work.


Copyright © 2017-18 Greg Wilson.
All content made available under the Creative Commons - Attribution License.

CC-BY License

Generated 2018-07-19.

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.

[Abel1996] Harold Abelson, Gerald Jay Sussman, and Julie Sussman. Structure and Interpretation of Computer Programs. MIT Press, second edition, 1996. One of the most widely cited introductions to programming ever written.

[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.

[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.

[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. Presents an analysis of 250,000 Scratch 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 -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 novice 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 novice programmers.

[Alvi1999] Jennifer Alvidrez and Rhona S. Weinstein. Early teacher perceptions and later student academic achievement. Journal of Educational Psychology, 91(4):731–746, 1999. An influential study of the effects of teachers’ perceptions of students on their later achievements.

[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. Summarizes what we know about education and why we believe it’s true, 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 widely-used 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 computing 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 the effectiveness of surgical checklist implementations 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. Reports that developers do read error messages and doing so is as hard as reading source code: 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. Reports that meaningful assignments, faculty interaction with students, student collaboration on assignments, and (for male students) pace and workload relative to expectations drive retention in computing classes, while interactions with teaching assistants or with peers in extracurricular activities have little impact.

[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 how computer science educators adopt new teaching practices.

[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 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 in which students have to unlock test cases for their code by answering MCQs, and presents 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. Reports that learning outcomes were improved by two-stage projects in which students 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. Reports that cooperative learning enhances learning outcomes and self-efficacy in CS1.

[Beck2014] Victoria Beck. Testing a model to predict online cheating—much ado about nothing. Active Learning in Higher Education, 15(1):65–75, Jan 2014. Reports that cheating is no more likely in online courses than in face-to-face courses.

[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. Reports that improved error messages helped novices learn faster.

[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. Reports 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.

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

[Benn2007a] Jens Bennedsen and Michael E. Caspersen. Failure rates in introductory programming. ACM SIGCSE Bulletin, 39(2):32, Jun 2007. Reports that 67% of students pass CS1, with variation from 5% to 100%.

[Benn2007b] Jens Bennedsen and Carsten Schulte. What does “objects-first” mean?: An international study of teachers’ perceptions of objects-first. In Proc. 2007 Koli Calling Conference on Computing Education Research (Koli’07), pages 21–29, 2007. Teases out three meanings of “objects first” in computing education.

[Berg2012] Joseph Bergin, Jane Chandler, Jutta Eckstein, Helen Sharp, Mary Lynn Manns, Klaus Marquardt, Marianna Sipos, Markus Völter, and Eugene Wallingford. Pedagogical Patterns: Advice for Educators. CreateSpace, 2012. A catalog of design patterns for teaching.

[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. Reports that training learners in self-explanation accelerates 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. Reports that reading and understanding code is fundamentally different from reading prose, and 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. Reports an attempt to categorize novice programmer behavior using machine learning that 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. Reports that students tutored one-to-one using mastery learning techniques perform two standard deviations better than those who learned through conventional lecture.

[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. Reports 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 a widely-used model of governance.

[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 and unit tests and finds that students often write weak tests and misunderstand the role of unit testing.

[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 on students’ 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. A practical guide to creating effective organizations in and for communities.

[Brow2017] Neil C. C. Brown and Amjad Altadmri. Novice java programming mistakes. ACM Transactions on Computing Education, 17(2), May 2017. Summarizes the authors’ analysis of novice programming mistakes.

[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. Describes a system that associates failed tests with particular features in a learner’s code so that learners cannot game the system.

[Burg2015] Sheryl E. Burgstahler. Universal Design in Higher Education: From Principles to Practice. Harvard Education Press, second edition, 2015. Describes 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. Compares the skills and credentials that tech industry recruiters are looking for to those provided by 4-year degrees and bootcamps.

[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 pencil-and-paper puzzles that can be turned into CS1/CS2 assignments, and reports that they 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. Compares students who opted in to an online CS1 class online with those who took it in person in a flipped classroom.

[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. Reports significant short-term gains but no long-term gains for students doing exams collaboratively.

[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. Reports that collaborative exams benefit middling students more than high or low-performing students, and that homogeneous groups benefit more than heterogeneous ones.

[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 on 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 instruction.

[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. Shows that students of different levels approach programming tasks differently, and that 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 a model of human cognition to three learning theories, and from there to the design of an introductory object-oriented programming course.

[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. Reports that pair programming has the same learning gains side-by-side programming 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. Reports that people learn more from constructing algorithm visualizations 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. Reports that student performance on exercises in which they undo code mangling 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. Reports that developers draw diagrams to aid discussion rather than to document designs.

[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. Reports that subtle environmental clues have a measurable impact 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. Reports that that good teachers have a small but measurable impact on student 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. Outlines the experience of many women of color in the workplace.

[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.

[Craw2010] Matthew B. Crawford. Shop Class as Soulcraft: An Inquiry into the Value of Work. Penguin, 2010. A deep analysis of what we learn about ourselves by doing certain kinds of work.

[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 results from the first ten years of peer instruction in undergraduate physics classes, and describes ways in which its implementation 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.

[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. Found that writing new values near variables’ names as they change is the most effective tracing technique.

[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 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 the 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 that doing in-class exercises with realtime feedback using mobile devices improved concept retention and student engagement while reducing failure rates.

[Derb2006] Esther Derby and Diana Larsen. Agile Retrospectives: Making Good Teams Great. Pragmatic Bookshelf, 2006. Describes how to run a good project retrospective.

[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 a game testing program went on to study computing.

[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. Reports that the 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 explanation 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. Introduces 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.

[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. Reports that students wrote tests for the happy path rather than to detect hidden bugs.

[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.

[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 J. Ericson, Steven Moore, Briana B. 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. Reports that learners are 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. Reports that solving 2D Parsons problems with distractors takes less time than writing or fixing code but has equivalent learning outcomes.

[Farm2006] Eugene Farmer. The gatekeeper’s guide, or how to kill a tool. IEEE Software, 23(6):12–13, Nov 2006. Ten tongue-in-cheek 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.

[Fell2001] Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. How to Design Programs: An Introduction to Programming and Computing. MIT Press, 2001. An introduction to computing that focuses on the program design process.

[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. Reports that students made fewer low-level errors when solving the 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. Reports that good undergraduate debuggers are good programmers but not necessarily vice versa, and that novices use tracing and testing rather than causal reasoning.

[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. Reports that children learn to read faster when taught with phonics rather 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. Reports that 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 were seen as significantly more problematic by female Stack Overflow contributors rather than male ones.

[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. Reports that students who make short videos to teach concepts to their peers have a significant increase in their own learning compared to those who only study the material or view videos.

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

[Frie1995] Daniel P. Friedman and Matthias Felleisen. The Little Schemer. MIT Press, fourth edition, 1995. An introduction to programming using Scheme.

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

[Galp2002] Vashti Galpin. Women in computing around the world. ACM SIGCSE Bulletin, 34(2), Jun 2002. Looks at female participation in computing in 35 countries.

[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. Reports that static typing would catch about 15% of 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 that gendered wording 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 variety of fields.

[Gelm2002] Andrew Gelman and Deborah Nolan. Teaching Statistics: A Bag of Tricks. Oxford University Press, 2002. A collection of tips and 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. Finds 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 best practices for providing instructional feedback, and recommends some specific strategies.

[Gree2014] Elizabeth Green. Building a Better Teacher: How Teaching Works (and How to Teach It to Everyone). W. W. Norton & Company, 2014. Explains why educational reforms in the past fifty years has mostly missed the mark, and what we should do instead.

[Grif2016] Jean M. Griffin. Learning by taking apart. In Proc. 2016 Conference on Information Technology Education (SIGITE’16). ACM Press, 2016. Reports that people learn to program more quickly by deconstructing code than by writing it.

[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 that middle-school children using blocks-based programming find loops, variables, and Boolean operators 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. Measured learner engagement with MOOC videos and reports that short videos are more engaging than long ones and that talking heads are more engaging than tablet drawings.

[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 ten years of media computation research.

[Guzd2015a] Mark Guzdial. Learner-Centered Design of Computing Education: Research on Computing for Everyone. Morgan & Claypool Publishers, 2015. Argues 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. Ten things 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 who are 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. Reports increased success rates and retention with pair programming, with some evidence that it is particularly beneficial for women, but finds that 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 Erskine Hannay, Erik Arisholm, Harald Engvik, and Dag I. K. Sjøberg. Effects of personality on pair programming. IEEE Transactions on Software Engineering, 36(1):61–80, Jan 2010. Reports weak correlation between the “Big Five” personality traits and performance in pair programming.

[Hansen2015] John D. Hansen and Justin Reich. Democratizing education? examining access and usage patterns in massive open online courses. Science, 350(6265):1245–1248, Dec 2015. Reports that MOOCs are mostly used by the affluent.

[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 outcomes but increases solution times.

[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 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 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.

[Henr2010] Joseph Henrich, Steven J. Heine, and Ara Norenzayan. The weirdest people in the world? Behavioral and Brain Sciences, 33(2-3):61–83, Jun 2010. Points out that the subjects of most published psychological studies are Western, educated, industrialized, rich, and democratic.

[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. Reports that using words for variable names makes comprehension faster than using abbreviations or single-letter names for variables.

[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. Reports that a six-month program for high school teachers converting to teach CS quadruples the number of teachers without noticeable reduction of student outcomes and increases teachers’ belief that anyone can program.

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

[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 that 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 real and virtual presence.

[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. A survey of the effects of teacher expectations on student outcomes.

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

[Kaly2015] Slava Kalyuga and Anne-Marie Singh. Rethinking the boundaries of cognitive load theory in complex learning. Educational Psychology Review, 28(4):831–852, Dec 2015. Argues that cognitive load theory is basically micro-management within a broader pedagogical context.

[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.

[Kapu2016] Manu Kapur. Examining productive failure, productive success, unproductive failure, and unproductive success in learning. Educational Psychologist, 51(2):289–299, Apr 2016. Looks at productive failure as an alternative to inquiry-based learning and approaches based on cognitive load theory.

[Karp2008] Jeffrey D. Karpicke and Henry L. Roediger. The critical importance of retrieval for learning. Science, 319(5865):966–968, Feb 2008. Reports that repeated testing improves recall of word lists from 35% to 80%, even when learners can still access the material but are 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. Reports that self-rating and peer ratings in undergraduate courses agree, that collusion isn’t significant, that students don’t inflate their self-ratings, and that ratings are not biased by gender or race.

[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. A short review of ways concept mapping can 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. Reports that auto-grading tools often do not give feedback on what to do next, 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.

[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. Reports that online coding tutorials largely teach similar content, organize content bottom-up, and provide goal-directed practices with immediate feedback, but are not tailored to learners’ prior coding knowledge and usually don’t tell learners how to transfer and apply 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.

[Kirk1994] Donald L. Kirkpatrick. Evaluating Training Programs: The Four Levels. Berrett-Koehle, 1994. Defines a widely-used four-level model for evaluating training.

[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—all reflect 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.

[Kirs2018] Paul A. Kirschner, John Sweller, Femke Kirschner, and Jimmy Zambrano R. From cognitive load theory to collaborative cognitive load theory. International Journal of Computer-Supported Collaborative Learning, Apr 2018. Extends cognitive load theory to include collaborative aspects of learning.

[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. Reports that students often believe in delayed evaluation or that entire equations are stored in variables.

[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. Compares three generations of programming environments intended for novice use.

[Kran2015] Steven G. Krantz. How to Teach Mathematics. American Mathematical Society (AMS), 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 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.

[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. Reports that the minimal manual approach to instruction outperforms traditional approaches 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. Explores why CS teachers don’t use resource sharing sites and recommends ways to make them more appealing.

[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. Reports a study of pair programming in a middle-grade classroom in which 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. Reports that students are weak at both predicting the outcome of executing a short piece of code and at selecting the correct completion for short pieces of code.

[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 (ASCD), 2004. Essays on 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.

[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. Reports that weekly machine-evaluated tests are a better predictor of exam scores than labs (but that students didn’t like the system).

[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 under-representation 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. Reports 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. Reports that instructional design quality in MOOCs poor, but that the organization and presentation of material is 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. Reports 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 behavioralists and cognitive psychologists differ in approach, but wind up making very similar recommendations about how to teach, and gives two specific examples.

[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.

[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. Reports that even experienced educators have trouble agreeing on the correct classification for a question or idea using Bloom’s Taxonomy.

[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. Reports how redesigning a database course using cognitive load theory reduced exam failure rate 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.

[Maye2004] Richard E. Mayer. Teaching of subject matter. Annual Review of Psychology, 55(1):715–744, Feb 2004. An overview of how and why teaching and learning are subject-specific.

[Maye2009] Richard E. Mayer. Multimedia Learning. Cambridge University Press, second edition, 2009. Presents a cognitive theory of multimedia learning.

[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 about why bugs occur, why types there are, how people debug, and whether 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. Reports 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 the 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. Summarizes the backward instructional design process.

[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.

[Mill2015] David I. Miller and Jonathan Wai. The bachelor’s to ph.d. STEM pipeline no longer leaks more women than men: a 30-year analysis. Frontiers in Psychology, 6, Feb 2015. Shows that the “leaky pipeline” metaphor stopped being accurate some time in the 1990s.

[Mill2016a] Michelle D. Miller. Minds Online: Teaching Effectively with Technology. Harvard University Press, 2016. Describes 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. Reports that students have difficulty with self in Python.

[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.

[Miya2018] Toshiya Miyatsu, Khuyen Nguyen, and Mark A. McDaniel. Five popular study strategies: Their pitfalls and optimal implementations. Perspectives on Psychological Science, 13(3):390–407, May 2018. Explains how learners mis-use common study strategies and what they should do instead.

[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. Reports that K-12 students have 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. Reports that students using labelled subgoals solve Parsons Problems 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 concepts maps drawing by students with prior CS experience and those without to compare their mental models.

[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. Reports that including explicit discussion of misconceptions significantly improves learning outcomes: students with low prior knowledge benefit most and students with more prior knowledge are not 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. Reports that explicitly teaching solution patterns improves 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. Reports that many CS1 students use good debugging strategies, but many others don’t, and students often don’t recognize when they are 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 guide for college 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. Reports on 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. Describes ways auto-grader rules were modified and grades weighted to improve correlation between automatic feedback and manual grades.

[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 K-12 misconceptions in mathematics and what to do about them.

[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. Reports 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. Describes the errors students make in an introductory course on HTML and CSS.

[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. Argues 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 description 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.

[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.

[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. Reports 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 about computing.

[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. Reports that most students do not understood when to use this, and that teachers are also often not clear on the subject.

[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 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.

[Rice2018] Gail Taylor Rice. Hitting Pause: 65 Lecture Breaks to Refresh and Reinforce Learning. Stylus Publishing, 2018. Justifies and catalogs ways to take a pause in class to help learning.

[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. Presents learning trajectories for K-8 computing classes for Sequence, Repetition, and Conditions gleaned from the literature.

[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.

[Robe2017] Eric Roberts. Assessing and responding to the growth of computer science undergraduate enrollments: Annotated findings. cs.stanford.edu/people/eroberts/ResourcesForTheCSCapacityCrisis/files/AnnotatedFindings.pptx, 2017. Summarizes findings from a National Academies study about computer science enrollments.

[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 use of an auto-grader for student assignments.

[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. A meta-analysis 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 development of a shared question bank for introductory CS, and patterns for multiple choice questions 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. Reports that 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. Reports that 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.

[Sent2018] Sue Sentance, Erik Barendsen, and Carsten Schulte, editors. Computer Science Education: Perspectives on Teaching and Learning in School. Bloomsbury Press, 2018. A collection of academic survey articles on teaching computing.

[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 the 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.

[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 the Rainfall Problem is harder for novices than it used to be because they’re not used to handling keyboard input, so direct comparison with past results 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 the relationship between mind-set and academic achievement, and the effectiveness of mind-set interventions on academic achievement, and finds that overall effects are weak for both, but some results support specific tenets of the theory.

[Skud2014] Ben Skudder and Andrew Luxton-Reilly. Worked examples in computer science. In Proc. 2014 Australasian Computing Education Conference, (ACE’14), 2014. A summary of research on worked examples as applied to computing education.

[Smar2018] Benjamin L. Smarr and Aaron E. Schirmer. 3.4 million real-world learning management system logins reveal the majority of students experience social jet lag correlated with decreased performance. Scientific Reports, 8(1), Mar 2018. Reports that students who have to work outside their natural body clock cycle do less well.

[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 that student understanding increases 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 and rules of programming discourse.

[Solo1986] Elliot Soloway. Learning to program = learning to construct mechanisms and explanations. Communications of the ACM, 29(9):850–858, Sep 1986. Analyzes programming in terms of choosing appropriate goals and constructing plans to achieve them, and introduces 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, 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.

[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 Press, 2018. Summarizes 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 proposes 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. Reports that fuzz testing student code catches errors that are missed by handwritten test suite, and explains how to safely share tests and results.

[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. Explores why giving children more information when they are learning about fractions can lower their performance.

[Stam2014] 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. Looks at how to scaffold learning of fraction operations.

[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 statistically suspect.

[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. Reports that curly-brace languages are as hard to learn as a language with randomly-designed syntax, but others are easier.

[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. Summarizes 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. Presents 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 iterations of 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. Presents a code quality rubric for novice programming.

[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. A meta-analysis that finds significant positive benefit for Direct Instruction.

[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. Reports that students who receive any kind of graphics give significantly higher satisfaction ratings than those who don’t, but only students who get instructive graphics perform 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. Reports that redesigning an online course to be gender neutral improves completion probability in general, but decreases it for students with a superficial approach to learning.

[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, scientific, and engineering.

[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.

[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. Reports that coding bootcamps are sometimes useful, but quality is varied, and formal and informal barriers to employment remain.

[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, Michael McCracken, Lynda Thomas, Dennis Bouvier, Roger Frye, James Paterson, Michael E. 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 an earlier study showing how little students 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. Summarizes studies showing that how students rate a course and how much they actually learn are not related.

[Varm2015] Roli Varma and Deepak Kapur. Decoding femininity in computer science in india. Communications of the ACM, 58(5):56–62, apr 2015. Reports female participation in computing in India.

[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, while introducing a game theme is the least effective.

[Wall2009] Thorbjorn Walle and Jo Erskine 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. Reports that pairs with different levels of a given personality trait communicated more intensively.

[Wang2018] April Y. Wang, Ryan Mitts, Philip J. Guo, and Parmit K. Chilana. Mismatch of expectations: How modern learning resources fail conversational programmers. In Proc. 2018 Conference on Human Factors in Computing Systems (CHI’18). Association for Computing Machinery (ACM), 2018. Reports that learning resources don’t really help conversational programmers (those who learn coding to take part in technical discussions).

[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 an earlier 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.

[Wein2017a] 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. Reports that students using a dual-mode blocks and text coding environment 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.

[Wein2017b] David Weintrop and Uri Wilensky. Comparing block-based and text-based programming in high school computer science classrooms. ACM Transactions on Computing Education, 18(1):1–25, Oct 2017. Reports that students learn faster and better with blocks than with text.

[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 evidence-based learning practices.

[Weng2015] Etienne Wenger-Trayner and Beverly Wenger-Trayner. Communities of practice: A brief introduction. http://wenger-trayner.com/intro-to-cops/, 2015. A 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. Presents brief summaries of various theories of learning.

[Wigg2005] Grant Wiggins and Jay McTighe. Understanding by Design. Association for Supervision & Curriculum Development (ASCD), 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. Reports that students with prior experience outscore students without in CS1, but there is 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. Reports 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.

[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 K-12 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. Reports that students using collaborative note taking when learning English as a foreign language do better than those who don’t.