Greg Wilson

Greg Wilson

Head of Instructor Training at DataCamp

Co-founder of Software Carpentry

Editor of Beautiful Code, Making Software, and
The Architecture of Open Source Applications

Occasional children's author

Ph.D. in Computer Science

Parent, spouse, and proud Canadian


Procedural versus Declarative

Jan 15, 2018

The distinction between declarative memory and procedural memory is one attempt among many to describe the distinction between “knowing that” and “knowing how”. Declarative memory is things we can explicitly state (or declare, hence the name), like “Toronto is the capital of Ontario”. Procedural memory is things we can do but not necessarily describe, like riding a bicycle or recognizing a face.

Educational Bibliography

Jan 13, 2018

In response to requests, an incomplete bibliography of papers I read while working on How to Teach Programming (and Other Things). I'm still trying to find DOIs for 19 other items, but I'll make sure this is up to date before the third edition comes out this spring. (BibTeX file)

  1. Adams, Frank, and Myles Horton. 1975. Unearthing Seeds of Fire: The Idea of Highlander. Blair. https://www.amazon.com/Unearthing-Seeds-Fire-Idea-Highlander/dp/0895870193.
  2. Aivaloglou, Efthimia, and Felienne Hermans. 2016. “How Kids Code and How We Know.” In Proceedings of the 2016 ACM Conference on International Computing Education Research - ICER 16. ACM Press. doi:10.1145/2960310.2960325.
  3. Alinsky, Saul D. 1989. Rules for Radicals: A Practical Primer for Realistic Radicals. Vintage. https://www.amazon.com/Rules-Radicals-Practical-Primer-Realistic/dp/0679721134.
  4. Alqadi, Basma S., and Jonathan I. Maletic. 2017. “An Empirical Study of Debugging Patterns Among Novices Programmers.” In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education - SIGCSE 17. ACM Press. doi:10.1145/3017680.3017761.
  5. Altadmri, Amjad, and Neil C.C. Brown. 2015. “37 Million Compilations.” In Proceedings of the 46th ACM Technical Symposium on Computer Science Education - SIGCSE 15. ACM Press. doi:10.1145/2676723.2677258.
  6. Ambrose, Susan A., Michael W. Bridges, Michele DiPietro, Marsha C. Lovett, and Marie K. Norman. 2010. How Learning Works: Seven Research-Based Principles for Smart Teaching. Jossey-Bass. https://www.amazon.com/How-Learning-Works-Research-Based-Principles/dp/0470484101.
  7. Atkinson, Robert K., Sharon J. Derry, Alexander Renkl, and Donald Wortham. 2000. “Learning from Examples: Instructional Principles from the Worked Examples Research.” Review of Educational Research 70 (2). American Educational Research Association (AERA): 181–214. doi:10.3102/00346543070002181.
  8. Barker, Lecia, Christopher Lynnly Hovey, and Jane Gruning. 2015. “What Influences CS Faculty to Adopt Teaching Practices?” In Proceedings of the 46th ACM Technical Symposium on Computer Science Education - SIGCSE 15. ACM Press. doi:10.1145/2676723.2677282.
  9. Barker, Lecia, Christopher Lynnly Hovey, and Leisa D. Thompson. 2014. “Results of a Large-Scale, Multi-Institutional Study of Undergraduate Retention in Computing.” In 2014 IEEE Frontiers in Education Conference (FIE) Proceedings. IEEE. doi:10.1109/fie.2014.7044267.
  10. Barnett, Susan M., and Stephen J. Ceci. 2002. “When and Where Do We Apply What We Learn?: A Taxonomy for Far Transfer.” Psychological Bulletin 128 (4). American Psychological Association (APA): 612–37. doi:10.1037/0033-2909.128.4.612.
  11. Becker, Brett A., Graham Glanville, Ricardo Iwashima, Claire McDonnell, Kyle Goslin, and Catherine Mooney. 2016. “Effective Compiler Error Message Enhancement for Novice Programming Students.” Computer Science Education 26 (2-3). Informa UK Limited: 148–75. doi:10.1080/08993408.2016.1225464.
  12. Beniamini, Gal, Sarah Gingichashvili, Alon Klein Orbach, and Dror G. Feitelson. 2017. “Meaningful Identifier Names: The Case of Single-Letter Variables.” In 2017 IEEE/ACM 25th International Conference on Program Comprehension (ICPC). IEEE. doi:10.1109/icpc.2017.18.
  13. Benner, Patricia. 2000. From Novice to Expert: Excellence and Power in Clinical Nursing Practice, Commemorative Edition. Pearson. https://www.amazon.com/Novice-Expert-Excellence-Clinical-Commemorative/dp/0130325228.
  14. Biggs, John, and Catherine Tang. 2011. Teaching for Quality Learning at University (Society for Research into Higher Education). Open University Press. https://www.amazon.com/Teaching-Learning-University-Research-Education/dp/0335242758.
  15. Binkley, Dave, Marcia Davis, Dawn Lawrie, Jonathan I. Maletic, Christopher Morrell, and Bonita Sharif. 2012. “The Impact of Identifier Style on Effort and Comprehension.” Empirical Software Engineering 18 (2). Springer Nature: 219–76. doi:10.1007/s10664-012-9201-4.
  16. Bobo/Kendall/Max. 2010. Organizing for Social Change 4th Edition. The Forum Press. https://www.amazon.com/Organizing-Social-Change-Bobo-Kendall/dp/0984275215.
  17. Bollier, David. 2014. Think Like a Commoner: A Short Introduction to the Life of the Commons. New Society Publishers. https://www.amazon.com/Think-Like-Commoner-Introduction-Commons/dp/0865717680.
  18. Borrego, Maura, and Charles Henderson. 2014. “Increasing the Use of Evidence-Based Teaching in STEM Higher Education: A Comparison of Eight Change Strategies.” Journal of Engineering Education 103 (2). Wiley-Blackwell: 220–52. doi:10.1002/jee.20040.
  19. Brookfield, Stephen D., and Stephen Preskill. 2016. The Discussion Book: 50 Great Ways to Get People Talking. Jossey-Bass. https://www.amazon.com/Discussion-Book-Great-People-Talking/dp/1119049717.
  20. Brown, Michael Jacoby. 2007. Building Powerful Community Organizations: A Personal Guide to Creating Groups That Can Solve Problems and Change the World. Long Haul Press. https://www.amazon.com/Building-Powerful-Community-Organizations-Personal/dp/0977151808.
  21. Brown, Neil C.C., and Amjad Altadmri. 2014. “Investigating Novice Programming Mistakes.” In Proceedings of the Tenth Annual Conference on International Computing Education Research - ICER 14. ACM Press. doi:10.1145/2632320.2632343.
  22. Bruyckere, Pedro De, Paul A. Kirschner, and Casper D. Hulshof. 2015. Urban Myths About Learning and Education. Academic Press. https://www.amazon.com/Urban-Myths-about-Learning-Education/dp/0128015373.
  23. Byckling, Pauli, Petri Gerdt, and Jorma Sajaniemi. 2005. “Roles of Variables in Object-Oriented Programming.” In Companion to the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications - OOPSLA 05. ACM Press. doi:10.1145/1094855.1094972.
  24. Cao, Yingjun, and Leo Porter. 2017a. “Evaluating Student Learning from Collaborative Group Tests in Introductory Computing.” In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education - SIGCSE 17. ACM Press. doi:10.1145/3017680.3017729.
  25. ———. 2017b. “Impact of Performance Level and Group Composition on Student Learning During Collaborative Exams.” In Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education - ITiCSE 17. ACM Press. doi:10.1145/3059009.3059024.
  26. Carroll, John M. 2014. “Creating Minimalist Instruction.” International Journal of Designs for Learning 5 (2). IUScholarWorks. doi:10.14434/ijdl.v5i2.12887.
  27. Carroll, John, Penny Smith-Kerker, James Ford, and Sandra Mazur-Rimetz. 1987. “The Minimal Manual.” Human-Computer Interaction 3 (2). Informa UK Limited: 123–53. doi:10.1207/s15327051hci0302_2.
  28. Carter, Adam Scott, and Christopher David Hundhausen. 2017. “Using Programming Process Data to Detect Differences in Students Patterns of Programming.” In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education - SIGCSE 17. ACM Press. doi:10.1145/3017680.3017785.
  29. Caspersen, Michael E., and Jens Bennedsen. 2007. “Instructional Design of a Programming Course.” In Proceedings of the Third International Workshop on Computing Education Research - ICER 07. ACM Press. doi:10.1145/1288580.1288595.
  30. Chen, Nicholas, and Maurice Rabb. 2010. “A Pattern Language for Screencasting.” In Proceedings of the 16th Conference on Pattern Languages of Programs - PLoP 09. ACM Press. doi:10.1145/1943226.1943234.
  31. Cheng, Nick, and Brian Harrington. 2017. “The Code Mangler.” In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education - SIGCSE 17. ACM Press. doi:10.1145/3017680.3017704.
  32. Cherubini, Mauro, Gina Venolia, Rob DeLine, and Andrew J. Ko. 2007. “Lets Go to the Whiteboard.” In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems - CHI 07. ACM Press. doi:10.1145/1240624.1240714.
  33. Cheryan, Sapna, Victoria C. Plaut, Paul G. Davies, and Claude M. Steele. 2009. “Ambient Belonging: How Stereotypical Cues Impact Gender Participation in Computer Science.” Journal of Personality and Social Psychology 97 (6). American Psychological Association (APA): 1045–60. doi:10.1037/a0016239.
  34. Chi, Michelene T. H. 2005. “Commonsense Conceptions of Emergent Processes: Why Some Misconceptions Are Robust.” Journal of the Learning Sciences 14 (2). Informa UK Limited: 161–99. doi:10.1207/s15327809jls1402_1.
  35. Chun, Andy Hon Wai. 2004. “The Agile Teaching/Learning Methodology and Its E-Learning Platform.” In Advances in Web-Based Learning ICWL 2004, 11–18. Springer Berlin Heidelberg. doi:10.1007/978-3-540-27859-7_2.
  36. Code, Warren, Costanza Piccolo, David Kohler, and Mark MacLean. 2014. “Teaching Methods Comparison in a Large Calculus Class.” ZDM 46 (4). Springer Nature: 589–601. doi:10.1007/s11858-014-0582-2.
  37. Cottom, Tressie McMillan. 2017. Lower Ed: The Troubling Rise of for-Profit Colleges in the New Economy. The New Press. https://www.amazon.com/Lower-Ed-Troubling-Profit-Colleges/dp/1620970600.
  38. Crouch, Catherine H., and Eric Mazur. 2001. “Peer Instruction: Ten Years of Experience and Results.” American Journal of Physics 69 (9). American Association of Physics Teachers (AAPT): 970–77. doi:10.1119/1.1374249.
  39. Didau, David, and Nick Rose. 2016. What Every Teacher Needs to Know About Psychology. John Catt Educational. https://www.amazon.com/Every-Teacher-Needs-About-Psychology/dp/1909717851.
  40. DSouza, Manoj Joseph, and Paul Rodrigues. 2015. “Extreme Pedagogy: An Agile Teaching-Learning Methodology for Engineering Education.” Indian Journal of Science and Technology 8 (9). Indian Society for Education; Environment: 828. doi:10.17485/ijst/2015/v8i9/53274.
  41. Eppler, Martin J. 2006. “A Comparison Between Concept Maps, Mind Maps, Conceptual Diagrams, and Visual Metaphors as Complementary Tools for Knowledge Construction and Sharing.” Information Visualization 5 (3). SAGE Publications: 202–10. doi:10.1057/palgrave.ivs.9500131.
  42. Epstein, Lewis Carroll. 2002. Thinking Physics: Understandable Practical Reality. Insight Press, San Francisco, CA. https://www.amazon.com/Thinking-Physics-Understandable-Practical-Reality/dp/0935218084.
  43. Farmer, Eugene. 2006. “The Gatekeepers Guide, or How to Kill a Tool.” IEEE Software 23 (6). Institute of Electrical; Electronics Engineers (IEEE): 12–13. doi:10.1109/ms.2006.174.
  44. Fehily, Chris. 2008. SQL: Visual Quickstart Guide (3rd Edition). Peachpit Press. https://www.amazon.com/SQL-Visual-QuickStart-Guide-3rd/dp/0321553578.
  45. Fincher, Sally, and Josh Tenenberg. 2007. “Warrens Question.” In Proceedings of the Third International Workshop on Computing Education Research - ICER 07. ACM Press. doi:10.1145/1288580.1288588.
  46. Fincher, Sally, Brad Richards, Janet Finlay, Helen Sharp, and Isobel Falconer. 2012. “Stories of Change: How Educators Change Their Practice.” In 2012 Frontiers in Education Conference Proceedings. IEEE. doi:10.1109/fie.2012.6462317.
  47. Fink, L. Dee. 2013. Creating Significant Learning Experiences: An Integrated Approach to Designing College Courses. Jossey-Bass. https://www.amazon.com/Creating-Significant-Learning-Experiences-Integrated/dp/1118124251.
  48. Floyd, Benjamin, Tyler Santander, and Westley Weimer. 2017. “Decoding the Representation of Code in the Brain: An fMRI Study of Code Review and Expertise.” In 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE). IEEE. doi:10.1109/icse.2017.24.
  49. Ford, Denae, Justin Smith, Philip J. Guo, and Chris Parnin. 2016. “Paradise Unplugged: Identifying Barriers for Female Participation on Stack Overflow.” In Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering - FSE 2016. ACM Press. doi:10.1145/2950290.2950331.
  50. Freeman, S., S. L. Eddy, M. McDonough, M. K. Smith, N. Okoroafor, H. Jordt, and M. P. Wenderoth. 2014. “Active Learning Increases Student Performance in Science, Engineering, and Mathematics.” Proceedings of the National Academy of Sciences 111 (23). Proceedings of the National Academy of Sciences: 8410–5. doi:10.1073/pnas.1319030111.
  51. Gao, Zheng, Christian Bird, and Earl T. Barr. 2017. “To Type or Not to Type: Quantifying Detectable Bugs in JavaScript.” In 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE). IEEE. doi:10.1109/icse.2017.75.
  52. Gelman, Andrew, and Deborah Nolan. 2002. Teaching Statistics: A Bag of Tricks. Oxford University Press. https://www.amazon.com/Teaching-Statistics-Tricks-Andrew-Gelman/dp/0198572247.
  53. Gluga, Richard, Judy Kay, Raymond Lister, Simon, and Sabina Kleitman. 2013. “Mastering Cognitive Development Theory in Computer Science Education.” Computer Science Education 23 (1). Informa UK Limited: 24–57. doi:10.1080/08993408.2013.768830.
  54. Gormally, C., M. Evans, and P. Brickman. 2014. “Feedback About Teaching in Higher Ed: Neglected Opportunities to Promote Change.” Cell Biology Education 13 (2). American Society for Cell Biology (ASCB): 187–99. doi:10.1187/cbe.13-12-0235.
  55. Gray, Simon, Caroline St. Clair, Richard James, and Jerry Mead. 2007. “Suggestions for Graduated Exposure to Programming Concepts Using Fading Worked Examples.” In Proceedings of the Third International Workshop on Computing Education Research - ICER 07. ACM Press. doi:10.1145/1288580.1288594.
  56. Green, Elizabeth. 2014. Building a Better Teacher: How Teaching Works (and How to Teach It to Everyone). W. W. Norton & Company. https://www.amazon.com/Building-Better-Teacher-Teaching-Everyone-ebook/dp/B00FPT5MSQ.
  57. Grissom, Scott, Sue Fitzgerald, Renée McCauley, and Laurie Murphy. 2017. “Exposed! CS Faculty Caught Lecturing in Public.” In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education - SIGCSE 17. ACM Press. doi:10.1145/3017680.3017702.
  58. Grover, Shuchi, and Satabdi Basu. 2017. “Measuring Student Learning in Introductory Block-Based Programming.” In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education - SIGCSE 17. ACM Press. doi:10.1145/3017680.3017723.
  59. Gulley, Ned. 2004. “In Praise of Tweaking.” Interactions 11 (3). Association for Computing Machinery (ACM): 18. doi:10.1145/986253.986264.
  60. Guzdial, Mark. 2013. “Exploring Hypotheses About Media Computation.” In Proceedings of the Ninth Annual International ACM Conference on International Computing Education Research - ICER 13. ACM Press. doi:10.1145/2493394.2493397.
  61. ———. 2015. Learner-Centered Design of Computing Education: Research on Computing for Everyone (Synthesis Lectures on Human-Centered Informatics). Morgan & Claypool Publishers. https://www.amazon.com/Learner-Centered-Design-Computing-Education-Human-centered/dp/1627053514.
  62. Haaranen, Lassi. 2017. “Programming as a Performance.” In Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education - ITiCSE 17. ACM Press. doi:10.1145/3059009.3059035.
  63. Hake, Richard R. 1998. “Interactive-Engagement Versus Traditional Methods: A Six-Thousand-Student Survey of Mechanics Test Data for Introductory Physics Courses.” American Journal of Physics 66 (1). American Association of Physics Teachers (AAPT): 64–74. doi:10.1119/1.18809.
  64. Hannay, J.E., E. Arisholm, H. Engvik, and D.I.K. Sjoberg. 2010. “Effects of Personality on Pair Programming.” IEEE Transactions on Software Engineering 36 (1). Institute of Electrical; Electronics Engineers (IEEE): 61–80. doi:10.1109/tse.2009.41.
  65. Harms, Kyle James, Jason Chen, and Caitlin L. Kelleher. 2016. “Distractors in Parsons Problems Decrease Learning Efficiency for Young Novice Programmers.” In Proceedings of the 2016 ACM Conference on International Computing Education Research - ICER 16. ACM Press. doi:10.1145/2960310.2960314.
  66. Henderson, Charles, Andrea Beach, and Noah Finkelstein. 2011. “Facilitating Change in Undergraduate STEM Instructional Practices: An Analytic Review of the Literature.” Journal of Research in Science Teaching 48 (8). Wiley-Blackwell: 952–84. doi:10.1002/tea.20439.
  67. Herman, Geoffrey L., Craig Zilles, and Michael C. Loui. 2011. “How Do Students Misunderstand Number Representations?” Computer Science Education 21 (3). Informa UK Limited: 289–312. doi:10.1080/08993408.2011.611712.
  68. Hermans, Felienne, and Efthimia Aivaloglou. 2016. “Do Code Smells Hamper Novice Programming? A Controlled Experiment on Scratch Programs.” In 2016 IEEE 24th International Conference on Program Comprehension (ICPC). IEEE. doi:10.1109/icpc.2016.7503706.
  69. Hestenes, David, Malcolm Wells, and Gregg Swackhamer. 1992. “Force Concept Inventory.” The Physics Teacher 30 (3). American Association of Physics Teachers (AAPT): 141–58. doi:10.1119/1.2343497.
  70. Hofmeister, Johannes, Janet Siegmund, and Daniel V. Holt. 2017. “Shorter Identifier Names Take Longer to Comprehend.” In 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE. doi:10.1109/saner.2017.7884623.
  71. Huston, Therese. 2009. Teaching What You Don’t Know. Harvard University Press. https://www.amazon.com/Teaching-What-You-Dont-Know/dp/0674035801.
  72. Ihantola, Petri, and Ville Karavirta. 2011. “Two-Dimensional Parson’s Puzzles: The Concept, Tools, and First Observations.” Journal of Information Technology Education: Innovations in Practice 10. Informing Science Institute: 119–32. doi:10.28945/1394.
  73. Kazerouni, Ayaan M., Stephen H. Edwards, and Clifford A. Shaffer. 2017. “Quantifying Incremental Development Practices and Their Relationship to Procrastination.” In Proceedings of the 2017 ACM Conference on International Computing Education Research - ICER 17. ACM Press. doi:10.1145/3105726.3106180.
  74. Kernighan, Brian W., and Rob Pike. 1983. The Unix Programming Environment (Prentice-Hall Software Series). Prentice-Hall. https://www.amazon.com/Unix-Programming-Environment-Prentice-Hall-Software/dp/013937681X.
  75. Kernighan, Brian W., and P. J. Plauger. 1978. The Elements of Programming Style, 2nd Edition. McGraw-Hill. https://www.amazon.com/Elements-Programming-Style-2nd/dp/0070342075.
  76. Kernighan, Brian W., and Dennis M. Ritchie. 1988. C Programming Language, 2nd Edition. Prentice Hall. https://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628.
  77. Kim, Ada S., and Andrew J. Ko. 2017. “A Pedagogical Analysis of Online Coding Tutorials.” In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education - SIGCSE 17. ACM Press. doi:10.1145/3017680.3017728.
  78. Kirschner, Paul A., and Jeroen J.G. van Merriënboer. 2013. “Do Learners Really Know Best? Urban Legends in Education.” Educational Psychologist 48 (3). Informa UK Limited: 169–83. doi:10.1080/00461520.2013.804395.
  79. Kirschner, Paul A., John Sweller, and Richard E. Clark. 2006. “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). Informa UK Limited: 75–86. doi:10.1207/s15326985ep4102_1.
  80. Koedinger, Kenneth R., Jihee Kim, Julianna Zhuxin Jia, Elizabeth A. McLaughlin, and Norman L. Bier. 2015. “Learning Is Not a Spectator Sport.” In Proceedings of the Second (2015) ACM Conference on Learning @ Scale - L@S 15. ACM Press. doi:10.1145/2724660.2724681.
  81. Kohn, Tobias. 2017. “Variable Evaluation.” In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education - SIGCSE 17. ACM Press. doi:10.1145/3017680.3017724.
  82. Kölling, Michael. 2015. “Lessons from the Design of Three Educational Programming Environments.” International Journal of People-Oriented Programming 4 (1). IGI Global: 5–32. doi:10.4018/ijpop.2015010102.
  83. Kölling, Michael, and Fraser McKay. 2016. “Heuristic Evaluation for Novice Programming Systems.” ACM Transactions on Computing Education 16 (3). Association for Computing Machinery (ACM): 1–30. doi:10.1145/2872521.
  84. Kölling, Michael, Neil C. C. Brown, and Amjad Altadmri. 2015. “Frame-Based Editing.” In Proceedings of the Workshop in Primary and Secondary Computing Education on ZZZ - WiPSCE 15. ACM Press. doi:10.1145/2818314.2818331.
  85. Kraut, Robert E., and Paul Resnick. 2012. Building Successful Online Communities: Evidence-Based Social Design (Mit Press). The MIT Press. https://www.amazon.com/Building-Successful-Online-Communities-Evidence-Based/dp/0262016575.
  86. Kuchner, Marc J. 2011. Marketing for Scientists: How to Shine in Tough Times. Island Press. https://www.amazon.com/Marketing-Scientists-Shine-Tough-Times/dp/1597269948.
  87. Kuittinen, Marja, and Jorma Sajaniemi. 2004. “Teaching Roles of Variables in Elementary Programming Courses.” ACM SIGCSE Bulletin 36 (3). Association for Computing Machinery (ACM): 57. doi:10.1145/1026487.1008014.
  88. Kulkarni, Chinmay, Koh Pang Wei, Huy Le, Daniel Chia, Kathryn Papadopoulos, Justin Cheng, Daphne Koller, and Scott R. Klemmer. 2013. “Peer and Self Assessment in Massive Online Classes.” ACM Transactions on Computer-Human Interaction 20 (6). Association for Computing Machinery (ACM): 1–31. doi:10.1145/2505057.
  89. Labaree, David F. 2008. “The Winning Ways of a Losing Strategy: Educationalizing Social Problems in the United States.” Educational Theory 58 (4). Wiley-Blackwell: 447–60. doi:10.1111/j.1741-5446.2008.00299.x.
  90. Lang, James M. 2013. Cheating Lessons: Learning from Academic Dishonesty. Harvard University Press. https://www.amazon.com/Cheating-Lessons-Learning-Academic-Dishonesty/dp/0674724631.
  91. ———. 2016. Small Teaching: Everyday Lessons from the Science of Learning. Jossey-Bass. https://www.amazon.com/Small-Teaching-Everyday-Lessons-Learning/dp/1118944496.
  92. Lazonder, Ard W., and Hans van der Meij. 1993. “The Minimal Manual: Is Less Really More?” International Journal of Man-Machine Studies 39 (5). Elsevier BV: 729–52. doi:10.1006/imms.1993.1081.
  93. Lemov, Doug. 2014. Teach Like a Champion 2.0: 62 Techniques That Put Students on the Path to College. Jossey-Bass. https://www.amazon.com/Teach-Like-Champion-2-0-Techniques/dp/1118901851.
  94. Lewis, Colleen M., and Niral Shah. 2015. “How Equity and Inequity Can Emerge in Pair Programming.” In Proceedings of the Eleventh Annual International Conference on International Computing Education Research - ICER 15. ACM Press. doi:10.1145/2787622.2787716.
  95. Lister, Raymond, Colin Fidge, and Donna Teague. 2009. “Further Evidence of a Relationship Between Explaining, Tracing and Writing Skills in Introductory Programming.” ACM SIGCSE Bulletin 41 (3). Association for Computing Machinery (ACM): 161. doi:10.1145/1595496.1562930.
  96. Lister, Raymond, Otto Seppälä, Beth Simon, Lynda Thomas, Elizabeth S. Adams, Sue Fitzgerald, William Fone, et al. 2004. “A Multi-National Study of Reading and Tracing Skills in Novice Programmers.” In Working Group Reports from ITiCSE on Innovation and Technology in Computer Science Education - ITiCSE-WGR 04. ACM Press. doi:10.1145/1044550.1041673.
  97. Littky, Dennis. 2004. The Big Picture: Education Is Everyone’s Business. Association for Supervision & Curriculum Development. https://www.amazon.com/Big-Picture-Education-Everyones-Business/dp/0871209713.
  98. Maloney, John, Mitchel Resnick, Natalie Rusk, Brian Silverman, and Evelyn Eastmond. 2010. “The Scratch Programming Language and Environment.” ACM Transactions on Computing Education 10 (4). Association for Computing Machinery (ACM): 1–15. doi:10.1145/1868358.1868363.
  99. Margaryan, Anoush, Manuela Bianco, and Allison Littlejohn. 2015. “Instructional Quality of Massive Open Online Courses (MOOCs).” Computers & Education 80 (January). Elsevier BV: 77–83. doi:10.1016/j.compedu.2014.08.005.
  100. Margolis, Jane, and Allan Fisher. 2003. Unlocking the Clubhouse: Women in Computing (Mit Press). The MIT Press. https://www.amazon.com/Unlocking-Clubhouse-Women-Computing-Press/dp/0262632691.
  101. Margolis, Jane, Rachel Estrella, Joanna Goode, Jennifer Jellison Holme, and Kim Nao. 2010. Stuck in the Shallow End: Education, Race, and Computing (Mit Press). The MIT Press. https://www.amazon.com/Stuck-Shallow-End-Education-Computing-ebook/dp/B0057P6AMU.
  102. Marsh, Herbert W., and John Hattie. 2002. “The Relation Between Research Productivity and Teaching Effectiveness: Complementary, Antagonistic, or Independent Constructs?” The Journal of Higher Education 73 (5). Informa UK Limited: 603–41. doi:10.1353/jhe.2002.0047.
  103. Martin, Christopher, Janet Hughes, and John Richards. 2017. “Learning Dimensions.” In Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education - ITiCSE 17. ACM Press. doi:10.1145/3059009.3059046.
  104. Mayer, Richard E., and Roxana Moreno. 2003. “Nine Ways to Reduce Cognitive Load in Multimedia Learning.” Educational Psychologist 38 (1). Informa UK Limited: 43–52. doi:10.1207/s15326985ep3801_6.
  105. Miller, Craig S., and Amber Settle. 2016. “Some Trouble with Transparency.” In Proceedings of the 2016 ACM Conference on International Computing Education Research - ICER 16. ACM Press. doi:10.1145/2960310.2960327.
  106. Miller, Kelly, Nathaniel Lasry, Kelvin Chu, and Eric Mazur. 2013. “Role of Physics Lecture Demonstrations in Conceptual Learning.” Physical Review Special Topics - Physics Education Research 9 (2). American Physical Society (APS). doi:10.1103/physrevstper.9.020113.
  107. Miller, Michelle D. 2016. Minds Online: Teaching Effectively with Technology. Harvard University Press. https://www.amazon.com/Minds-Online-Teaching-Effectively-Technology/dp/0674660021.
  108. Morrison, Briana B., Lauren E. Margulieux, Barbara Ericson, and Mark Guzdial. 2016. “Subgoals Help Students Solve Parsons Problems.” In Proceedings of the 47th ACM Technical Symposium on Computing Science Education - SIGCSE 16. ACM Press. doi:10.1145/2839509.2844617.
  109. Mueller, Pam A., and Daniel M. Oppenheimer. 2014. “The Pen Is Mightier Than the Keyboard.” Psychological Science 25 (6). SAGE Publications: 1159–68. doi:10.1177/0956797614524581.
  110. Muller, D.A., J. Bewes, M.D. Sharma, and P. Reimann. 2007. “Saying the Wrong Thing: Improving Learning with Multimedia by Including Misconceptions.” Journal of Computer Assisted Learning 24 (2). Wiley-Blackwell: 144–55. doi:10.1111/j.1365-2729.2007.00248.x.
  111. Nilson, Linda B., and Ludwika A. Goodson. 2017. Online Teaching at Its Best: Merging Instructional Design with Teaching and Learning Research. Jossey-Bass. https://www.amazon.com/Online-Teaching-Its-Best-Instructional/dp/1119242290.
  112. Paré, D.E., and S. Joordens. 2008. “Peering into Large Lectures: Examining Peer and Expert Mark Agreement Using peerScholar, an Online Peer Assessment Tool.” Journal of Computer Assisted Learning 24 (6). Wiley-Blackwell: 526–40. doi:10.1111/j.1365-2729.2008.00290.x.
  113. Park, Thomas H., Brian Dorn, and Andrea Forte. 2015. “An Analysis of HTML and CSS Syntax Errors in a Web Development Course.” ACM Transactions on Computing Education 15 (1). Association for Computing Machinery (ACM): 1–21. doi:10.1145/2700514.
  114. Patitsas, Elizabeth, Jesse Berlin, Michelle Craig, and Steve Easterbrook. 2016. “Evidence That Computer Science Grades Are Not Bimodal.” In Proceedings of the 2016 ACM Conference on International Computing Education Research - ICER 16. ACM Press. doi:10.1145/2960310.2960312.
  115. Pea, Roy D. 1986. “Language-Independent Conceptual Bugs in Novice Programming.” Journal of Educational Computing Research 2 (1). SAGE Publications: 25–36. doi:10.2190/689t-1r2a-x4w4-29j2.
  116. Petre, Marian, and André van der Hoek. 2016. Software Design Decoded: 66 Ways Experts Think (Mit Press). The MIT Press. https://www.amazon.com/Software-Design-Decoded-Experts-Think/dp/0262035189.
  117. Pigni, Alessandra. 2016. Idealist’s Survival Kit, the: 75 Simple Ways to Prevent Burnout. Parallax Press. https://www.amazon.com/Idealists-Survival-Kit-Prevent-Burnout/dp/1941529348.
  118. Porter, Leo, Mark Guzdial, Charlie McDowell, and Beth Simon. 2013. “Success in Introductory Programming.” Communications of the ACM 56 (8). Association for Computing Machinery (ACM): 34. doi:10.1145/2492007.2492020.
  119. Ragonis, Noa, and Ronit Shmallo. 2017. “On the (Mis) Understanding of the ‘This’ Reference.” In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education - SIGCSE 17. ACM Press. doi:10.1145/3017680.3017715.
  120. Ray, Eric J., and Deborah S. Ray. 2014. Unix and Linux: Visual Quickstart Guide (5th Edition). Peachpit Press. https://www.amazon.com/Unix-Linux-Visual-QuickStart-Guide/dp/0321997549.
  121. Rich, Kathryn M., Carla Strickland, T. Andrew Binkowski, Cheryl Moran, and Diana Franklin. 2017. “K-8 Learning Trajectories Derived from Research Literature.” In Proceedings of the 2017 ACM Conference on International Computing Education Research - ICER 17. ACM Press. doi:10.1145/3105726.3106166.
  122. Rivers, Kelly, Erik Harpstead, and Ken Koedinger. 2016. “Learning Curve Analysis for Programming.” In Proceedings of the 2016 ACM Conference on International Computing Education Research - ICER 16. ACM Press. doi:10.1145/2960310.2960333.
  123. Scanlan, D.A. 1989. “Structured Flowcharts Outperform Pseudocode: An Experimental Comparison.” IEEE Software 6 (5). Institute of Electrical; Electronics Engineers (IEEE): 28–36. doi:10.1109/52.35587.
  124. Schon, Donald A. 1984. The Reflective Practitioner: How Professionals Think in Action. Basic Books. https://www.amazon.com/Reflective-Practitioner-Professionals-Think-Action/dp/0465068782.
  125. Scott, James C. 1998. Seeing Like a State: How Certain Schemes to Improve the Human Condition Have Failed (the Institution for Social and Policy St). Yale University Press. https://www.amazon.com/Seeing-Like-State-Condition-Institution-ebook/dp/B00D8JJYWA.
  126. Smith, M. K., W. B. Wood, W. K. Adams, C. Wieman, J. K. Knight, N. Guild, and T. T. Su. 2009. “Why Peer Discussion Improves Student Performance on in-Class Concept Questions.” Science 323 (5910). American Association for the Advancement of Science (AAAS): 122–24. doi:10.1126/science.1165919.
  127. Sorva, Juha. 2008. “The Same but Different Students Understandings of Primitive and Object Variables.” In Proceedings of the 8th International Conference on Computing Education Research - Koli 08. ACM Press. doi:10.1145/1595356.1595360.
  128. ———. 2013. “Notional Machines and Introductory Programming Education.” ACM Transactions on Computing Education 13 (2). Association for Computing Machinery (ACM): 1–31. doi:10.1145/2483710.2483713.
  129. Sorva, Juha, and Otto Seppälä. 2014. “Research-Based Design of the First Weeks of CS1.” In Proceedings of the 14th Koli Calling International Conference on Computing Education Research - Koli Calling 14. ACM Press. doi:10.1145/2674683.2674690.
  130. Spalding, Dan. 2014. How to Teach Adults: Plan Your Class, Teach Your Students, Change the World, Expanded Edition (Jossey-Bass Higher and Adult Education (Paperback)). Jossey-Bass. https://www.amazon.com/How-Teach-Adults-Jossey-Bass-Education/dp/1118841360.
  131. Stanford, Courtney, Renée Cole, Jeff Froyd, Debra Friedrichsen, Raina Khatri, and Charles Henderson. 2015. “Supporting Sustained Adoption of Education Innovations: The Designing for Sustained Adoption Assessment Instrument.” International Journal of STEM Education 3 (1). Springer Nature. doi:10.1186/s40594-016-0034-3.
  132. Stark, Philip, and Richard Freishtat. 2014. “An Evaluation of Course Evaluations.” ScienceOpen Research, September. ScienceOpen. doi:10.14293/s2199-1006.1.sor-edu.aofrqa.v1.
  133. Steele, Claude M. 2011. Whistling Vivaldi: How Stereotypes Affect Us and What We Can Do (Issues of Our Time). W. W. Norton & Company. https://www.amazon.com/Whistling-Vivaldi-Stereotypes-Affect-Issues-ebook/dp/B004TM9NOO.
  134. Tanner, K. D. 2013. “Structure Matters: Twenty-One Teaching Strategies to Promote Student Engagement and Cultivate Classroom Equity.” Cell Biology Education 12 (3). American Society for Cell Biology (ASCB): 322–31. doi:10.1187/cbe.13-06-0115.
  135. Tew, Allison Elliott, and Mark Guzdial. 2011. “The FCS1.” In Proceedings of the 42nd ACM Technical Symposium on Computer Science Education - SIGCSE 11. ACM Press. doi:10.1145/1953163.1953200.
  136. Thayer, Kyle, and Andrew J. Ko. 2017. “Barriers Faced by Coding Bootcamp Students.” In Proceedings of the 2017 ACM Conference on International Computing Education Research - ICER 17. ACM Press. doi:10.1145/3105726.3106176.
  137. Uttl, Bob, Carmela A. White, and Daniela Wong Gonzalez. 2017. “Meta-Analysis of Facultys Teaching Effectiveness: Student Evaluation of Teaching Ratings and Student Learning Are Not Related.” Studies in Educational Evaluation 54 (September). Elsevier BV: 22–42. doi:10.1016/j.stueduc.2016.08.007.
  138. Vihavainen, Arto, Jonne Airaksinen, and Christopher Watson. 2014. “A Systematic Review of Approaches for Teaching Introductory Programming and Their Influence on Success.” In Proceedings of the Tenth Annual Conference on International Computing Education Research - ICER 14. ACM Press. doi:10.1145/2632320.2632349.
  139. Watters, Audrey. 2014. The Monsters of Education Technology. CreateSpace Independent Publishing Platform. https://www.amazon.com/Monsters-Education-Technology-Audrey-Watters/dp/1505225051.
  140. Weintrop, David, and Nathan Holbert. 2017. “From Blocks to Text and Back.” In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education - SIGCSE 17. ACM Press. doi:10.1145/3017680.3017707.
  141. Wiggins, Grant, and Jay McTighe. 2005. Understanding by Design. Assn. for Supervision & Curriculum Development. https://www.amazon.com/Understanding-Design-Grant-Wiggins/dp/1416600353.
  142. Wilkinson, Richard, and Kate Pickett. 2011. The Spirit Level: Why Greater Equality Makes Societies Stronger. Bloomsbury Press. https://www.amazon.com/Spirit-Level-Equality-Societies-Stronger/dp/1608193411.
  143. Wilson, Greg. 2016. “Software Carpentry: Lessons Learned.” F1000Research, January. F1000 Research, Ltd. doi:10.12688/f1000research.3-62.v2.
  144. Wlodkowski, Raymond J., and Margery B. Ginsberg. 2017. Enhancing Adult Motivation to Learn: A Comprehensive Guide for Teaching All Adults. Jossey-Bass. https://www.amazon.com/Enhancing-Adult-Motivation-Learn-Comprehensive/dp/1119077990.

Teaching Statistics in the 21st Century

Jan 9, 2018

The late 1980s saw a wave of new undergraduate programs launched in computational physics, as the advent of affordable workstations and PCs made the power to compute and simulate more accessible. A decade later, though, many of those programs had drastically scaled back their ambitions or quietly wound down. The problem wasn’t the programming: the problem was that whenever a curriculum is designed as “X plus some Y”, it’s the Y that gets cut when time runs short, budgets are squeezed, or tough hiring decisions need to be made. “Computational physics” became “the physics we’ve always taught, but with assignments on computers” and then just “the physics we’ve always taught”.

Book Club

Jan 7, 2018

I started as a programmer, but somehow became a teacher. If I wanted to make that transition today faster and with fewer false starts, I would read these books in this order:

Teaching Tech Together Toronto: January 2018 Meetup

Jan 3, 2018

The January 2018 meetup for people in the Toronto area who are interested in teaching tech will be on Wednesday, January 17, at Intelliware’s office on Adelaide Street. Please register to attend and share the link with anyone who might be interested in joining us.

The Year in Review

Dec 30, 2017

  • January
    • Ran another one-day workshop on how to teach for people in Toronto. It went well: what I learned doing instructor for Software Carpentry seems useful to a wider audience.
    • Started working on a general-purpose intro to teaching programming in response.
    • Starting a reading group around Building Powerful Community Organizations that proved to be equally rewarding.
    • Donald Trump became president. It’s tempting to joke about it, but it’s the scariest thing to happen in politics in my adult life.
    • Resigned from Software Carpentry–it was time to move on.
  • February
    • Worked for Shopify for one week; resigned when they decided they would continue to host the online store for Breibart News. I just didn’t know how I would have explained to my dad that I was helping actual fascists make money.
    • Started work at Rangle.
  • March
    • Why is March?
    • Oh. It’s for learning JavaScript.
  • April
  • May
  • June
    • Visited the Aga Khan Museum for the first time. The world is full of beauty.
    • Had my first root canal. The world is full of pain as well.
    • Took my daughter’s grade 4-6 class to the park and taught them how to play Ultimate frisbee. The world can be a very noisy place.
    • Ran another one-day instructor training class for a group that wants to start teaching coding to young women of color in one of Toronto’s poorer neighborhoods. The world is full of hope, if you’re willing to work for it.
    • Good Enough Practices in Scientific Computing” finally came out. Scientific journals get there eventually, if you’re really, really, really patient.
  • July
    • Left Rangle to start work with DataCamp.
    • Took my daughter to camp downtown on the trail-a-bike a few times. We threw a frisbee around a few times as well, and went swimming, and when my time comes, I hope this is what I remember.
    • Finished rewriting The Cloudherd and the Tiger’s Boy. My daughter thinks it’s still kind of boring–it certainly needs a better villain.
  • August
    • Nazis marched in Charlottesville and killed a young woman.
    • Shopify continued to host Breitbart’s online store as they spread lies and hate; I’m proud that I quit.
    • Posted first (incomplete) version of JavaScript versus Research Computing. It needs an overhaul, but I’ll only do that if there’s interest.
    • Solar eclipses are cool.
  • September
    • More instructor training for the Toronto Public Library and for a local company. I feel like I’m just scratching the surface…
  • October
    • Thanksgiving with family at the cottage. When my time comes, I hope it’s in the autumn with the leaves in their glory.
    • Work week in the Azores. It rained a lot, and there was pineapple everywhere.
    • My daughter made a Hel headdress out of duct tape for Hallowe’en. She’s pretty awesome.
    • My wife passed her PMP exam on the first try. She’s pretty awesome too.
  • November
    • Finished revising The Bookster’s Apprentice. My daughter thinks it’s OK.
    • My best friend was told that he has terminal cancer. I knew there would be a last game of chess some day; I just didn’t know it would come so soon.
  • December
    • Wrote the first draft of this on the solstice, because that’s when the year really turns. The world is darker than it used to be; I hope I’m strong enough for what comes next.

Wanted: A Workable Lesson Competition

Dec 30, 2017

I have sometimes quipped that we’ll know our work is done when the weekend papers run lesson reviews beside their book and movie reviews. (Yes, I quip. I can in fact be extremely quippy, but that’s a digression.) But reviews aren’t the only sign I’m waiting for, and neither is collaborative lesson development. I also hope I live long enough to see competitions like Kaggle’s in which people or teams vie with each other to build the best possible lessons about particular topics and for particular audiences.

Wanted: Books on How to Teach Computing

Dec 27, 2017

Hundreds of books have been written about how to teach mathematics. So far as I know, only a handful have been written about how to teach computing. I’d be grateful for additions to this list:

Explanation-Oriented Programming

Dec 27, 2017

I’m trying to write a small program in a language I don’t yet know well. Each step forward takes two or three tries as I stumble over things I don’t know about the language, things I don’t know about my data, and things I don’t know about the problem I’m trying to solve. I’m learning as I go, but most of what I learn won’t be obvious to whoever comes next. They will see, for example, that when I get a list of names matching *.txt, I check that each is a file before trying to read it.

Archives