{"id":340,"date":"2019-10-13T16:14:07","date_gmt":"2019-10-13T23:14:07","guid":{"rendered":"https:\/\/malat-webspace.royalroads.ca\/rru0128\/?p=340"},"modified":"2019-10-13T16:14:07","modified_gmt":"2019-10-13T23:14:07","slug":"history-of-programming-education","status":"publish","type":"post","link":"https:\/\/malat-webspace.royalroads.ca\/rru0128\/history-of-programming-education\/","title":{"rendered":"The History of Programming Education: An Evolving Narrative of Why and How to Learn to Program"},"content":{"rendered":"<p><img decoding=\"async\" class=\"alignnone size-full wp-image-345 lazyload\" data-src=\"https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-content\/uploads\/sites\/158\/2019\/10\/clement-h-95YRwf6CNw8-unsplash.jpg\" alt=\"\" width=\"1200\" height=\"800\" data-srcset=\"https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-content\/uploads\/sites\/158\/2019\/10\/clement-h-95YRwf6CNw8-unsplash.jpg 1200w, https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-content\/uploads\/sites\/158\/2019\/10\/clement-h-95YRwf6CNw8-unsplash-300x200.jpg 300w, https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-content\/uploads\/sites\/158\/2019\/10\/clement-h-95YRwf6CNw8-unsplash-768x512.jpg 768w, https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-content\/uploads\/sites\/158\/2019\/10\/clement-h-95YRwf6CNw8-unsplash-1024x683.jpg 1024w, https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-content\/uploads\/sites\/158\/2019\/10\/clement-h-95YRwf6CNw8-unsplash-1080x720.jpg 1080w\" data-sizes=\"(max-width: 1200px) 100vw, 1200px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1200px; --smush-placeholder-aspect-ratio: 1200\/800;\" \/><\/p>\n<p>The modern world has become increasingly computerized. Microprocessor computers emerged in the \u201960s and \u201970s, moving gradually from universities into workplaces, then more rapidly into schools, into homes, and eventually into consumers\u2019 pockets. Mirroring the emergence of computers has been the increasing need to program these devices. However, computer programming is widely considered a hard skill to learn (Mendelsohn, Green, &amp; Brna, 1990; Guzdial, 2002; Kelleher &amp; Pausch, 2005). To overcome this difficulty\u2014both perceptual and technical\u2014researchers and educators developed new educational programming languages to introduce computer code to people of all ages (Mendelsohn et al., 1990). The history of programming education is a narrative of answering two central questions: \u201cWhy learn to program?\u201d and \u201chow to learn to program?\u201d Over the past six decades, many solutions have been created to answer the latter question of how to help novices learn programming concepts (Brusilovsky, Calabrese, Hvorecky, Kouchnirenko, &amp; Miller, 1997; Kelleher &amp; Pausch, 2005; Bau, Gray, Kelleher, Sheldon, &amp; Turbak, 2017). However, the question of \u201cwhy learn to program,\u201d which was central to early research in programming education (Mendelsohn et al., 1990), has shifted in prominence over time. In our increasingly digital world, there has been \u201ca global push to broaden participation in computer science\u201d (Bau et al., 2017, p. 72). Yet, before focusing on how to make programming accessible to everyone, \u201cone of the first questions that must be answered is why novices need to program\u201d (Kelleher &amp; Pausch, 2005, p. 84). The evolving relationship between these two questions, \u201cwhy learn to program\u201d and \u201chow to learn to program,\u201d has impacted the development of programming education over the past six decades.<\/p>\n<p>The earliest educational programming languages of the \u201960s and \u201970s sought to introduce learners to the cognitively rewarding world of logic and problem-solving. Seymour Papert, an educator and computer scientist at the Massachusetts Institute of Technology (MIT), believed that learning to program was a way for students to express themselves and \u201c[debug] their own thinking\u201d (Guzdial, 2002, p. 3). The idea that \u201ca programming language is \u2026 a medium that creates new ways of dealing with existing knowledge\u201d was shared by several researchers at the time (Mendelsohn et al., 1990, p. 179). By focusing on the cognitive benefits of programming, the mechanics of how to program were secondary to the reason for learning to program. Mendelsohn et al., in researching the early uses of educational programming languages, frame the question of \u201cwhy learn to program?\u201d as a contrast between the goals of \u201cprogramming to learn, or learning to program\u201d (p. 179). Logo, the first educational programming language developed by Papert, Feuzeig, and Solomon, was an example of programming to learn: it helped children make cognitive connections between computer code and problem-solving situations, and could be used to \u201cexplore a wide variety of topics from mathematics and science to language and music\u201d (Kelleher &amp; Pausch, 2005, p. 113). Through this perspective, the question of \u201cwhy learn to program?\u201d was a driving force for early educational programming languages, superseding the question of \u201chow to learn to program.\u201d In the following decades, as computers became more central to our lives and our society, their increasing economic importance shifted the emphasis placed on these two questions.<\/p>\n<p>In the \u201980s and \u201990s, the narrative for learning to program changed from a cognitive experience to an economic imperative, and approaches to programming education became more visual and more varied. Programming was no longer \u201can activity practiced only by the few who had access to the still-rare machines\u201d (Guzdial, 2002, p. 2). With computers now in homes, schools, and workplaces, there was a new interest in \u201cmaking programming accessible to a larger number of people\u201d (Kelleher &amp; Pausch, 2005, p. 83). New careers in technology and software development placed increased importance on the tools available to teach programming concepts. New techniques, such as mini-languages, created a simplified syntax for the express purpose of introducing novices to programming (Brusilovsky et al., 1997). The question of \u201cwhy learn to program?\u201d was still present, but a more prominent focus was placed on not only \u201chow to learn to program,\u201d but how these learning-languages transferred to the general-purpose languages of the computer industry (Mendelsohn et al., 1990; Brusilovsky et al., 1997; Guizdal, 2002). Through a systematic study of over fifty programming languages for novices, Kelleher and Pausch (2005) identified two primary objectives: those that \u201cteach programming for its own sake\u201d (p. 84), and those that \u201cempower their users to create interesting programs\u201d (p. 112). With programming becoming economically important for new careers and new avenues of research, the initial idea of programming as a \u201cmental gymnasium\u201d (Mendelsohn et al., 1990, p. 175) fell out of favour, replaced with the increasing need to learn programming for the sake of programming. With the proliferation of the Internet over the next two decades, the focus on how to program became even more prevalent.<\/p>\n<p>The worldwide explosion of the Internet since the \u201990s has increased interest in making programming accessible to everyone, and the question of \u201chow to learn to program\u201d has taken centre stage. Endeavours such as Code.org\u2019s Hour of Code have created hundreds of apps and activities to introduce programming concepts to students around the world (Bau et al., 2017). Scratch, developed by the MIT Media Lab, and a spiritual successor to Logo, represents a block-based language; the latest evolution of how to learn to program. Block-based languages aim to lower the barriers to programming by offering a graphical syntax\u2014reducing the need to memorize programming functions\u2014as well as by offering the ability to experiment with code and remix it on-screen (Kelleher &amp; Pausch, 2005; Bau et al., 2017). Research shows that these block-based languages do make programming easier to learn (Bau et al., 2017). However, the answer to the original question, \u201cwhy learn to program,\u201d has now become: because computers are everywhere. There is a global push to teach computer science concepts in schools, and some researchers suggest that \u201cprogramming is still not nearly as widely learned as it should be\u201d (Bau et al., 2017, p. 78). Nevertheless, as educational apps proliferate in classrooms around the world, it is essential to look back on the history of programming education and consider the purpose of these apps. Are schools teaching programming to offer cognitively rewarding activities to expand their students\u2019 understanding of the world, or are they teaching programming intending to produce future programmers?<\/p>\n<p>The history of programming education since the \u201960s has demonstrated incredible ingenuity in answering the question of \u201chow to learn to program.\u201d Yet, throughout these evolving tools and techniques, continuing to ask the question of \u201cwhy learn to program?\u201d is equally imperative. This question, which motivated the creation of the first educational programming languages, seeks to understand the cognitive benefits of learning about logic and computational thinking. Several researchers and educators who have studied educational programming languages agree that the purpose for learning to program is an area that requires additional research (Mendelsohn et al., 1990; Guzdial, 2002; Bau et al., 2017). In the future narrative of programming education, the questions of \u201cwhy learn to program?\u201d and \u201chow to learn to program?\u201d must go hand-in-hand. We would be doing a grave disservice to future learners by asking one question without the other.<\/p>\n<p>References<\/p>\n<p style=\"margin-left: 24pt;text-indent: -24.0pt\">Bau, D., Gray, J., Kelleher, C., Sheldon, J., &amp; Turbak, F. (2017). Learnable programming: Blocks and beyond. <em>Communications of the ACM<\/em>, <em>60<\/em>(6), 72\u201380. https:\/\/doi.org\/10.1145\/3015455<\/p>\n<p style=\"margin-left: 24pt;text-indent: -24.0pt\">Brusilovsky, P., Calabrese, E., Hvorecky, J., Kouchnirenko, A., &amp; Miller, P. (1997). Mini-languages: a way to learn programming principles. <em>Education and Information Technologies<\/em>, <em>2<\/em>(1), 65\u201383. https:\/\/doi.org\/10.1023\/A:1018636507883<\/p>\n<p style=\"margin-left: 24pt;text-indent: -24.0pt\">Guzdial, M. (2004). Programming environments for novices. <em>Computer Science Education Research<\/em>, 127\u2013154.<\/p>\n<p style=\"margin-left: 24pt;text-indent: -24.0pt\">History of computing. (n.d.). In Wikipedia. Retrieved October 9, 2019, from https:\/\/en.wikipedia.org\/wiki\/History_of_computing<\/p>\n<p style=\"margin-left: 24pt;text-indent: -24.0pt\">Kelleher, C., &amp; Pausch, R. (2005). Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. <em>ACM Computing Surveys<\/em>, <em>37<\/em>(2), 83\u2013137. https:\/\/doi.org\/10.1145\/1089733.1089734<\/p>\n<p style=\"margin-left: 24pt;text-indent: -24.0pt\">Mendelsohn, P., Green, T. R. G., &amp; Brna, P. (1990). Programming languages in education: The search for an easy start. <em>Psychology of Programming<\/em>, pp. 175\u2013200. https:\/\/doi.org\/10.1016\/b978-0-12-350772-3.50016-1<\/p>\n<p>Attribution<\/p>\n<div class=\"_3bJ2H CHExY\">\n<div class=\"_1l8RX _1ByhS\">\n<div class=\"_3bJ2H CHExY\">\n<div class=\"_1l8RX _1ByhS\"><span style=\"color: #333333\">Photo by <a style=\"color: #333333\" href=\"https:\/\/unsplash.com\/@clemhlrdt?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Cl\u00e9ment H<\/a> on <\/span><a href=\"https:\/\/unsplash.com\/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\"><span style=\"color: #333333\">Unsplash<\/span><\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The modern world has become increasingly computerized. Microprocessor computers emerged in the \u201960s and \u201970s, moving gradually from universities into workplaces, then more rapidly into schools, into homes, and eventually into consumers\u2019 pockets. Mirroring the emergence of computers has been the increasing need to program these devices. However, computer programming is widely considered a hard&hellip; <a class=\"more-link\" href=\"https:\/\/malat-webspace.royalroads.ca\/rru0128\/history-of-programming-education\/\">Continue reading <span class=\"screen-reader-text\">The History of Programming Education: An Evolving Narrative of Why and How to Learn to Program<\/span> <span class=\"meta-nav\" aria-hidden=\"true\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":161,"featured_media":345,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-340","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-lrnt523"],"_links":{"self":[{"href":"https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-json\/wp\/v2\/posts\/340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-json\/wp\/v2\/users\/161"}],"replies":[{"embeddable":true,"href":"https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-json\/wp\/v2\/comments?post=340"}],"version-history":[{"count":5,"href":"https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-json\/wp\/v2\/posts\/340\/revisions"}],"predecessor-version":[{"id":348,"href":"https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-json\/wp\/v2\/posts\/340\/revisions\/348"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-json\/wp\/v2\/media\/345"}],"wp:attachment":[{"href":"https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-json\/wp\/v2\/media?parent=340"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-json\/wp\/v2\/categories?post=340"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/malat-webspace.royalroads.ca\/rru0128\/wp-json\/wp\/v2\/tags?post=340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}