{"id":386,"date":"2013-09-05T15:32:28","date_gmt":"2013-09-05T20:32:28","guid":{"rendered":"https:\/\/bobbylox.com\/blog\/teaching-computer-programming-digitally-is-constructionism-enough\/"},"modified":"2024-12-02T13:32:13","modified_gmt":"2024-12-02T19:32:13","slug":"teaching-computer-programming-digitally-is-constructionism-enough","status":"publish","type":"post","link":"https:\/\/bobbylox.com\/blog\/teaching-computer-programming-digitally-is-constructionism-enough\/","title":{"rendered":"Teaching Computer Programming Digitally: Is Constructionism Enough?"},"content":{"rendered":"\n<p>It all started with LOGO. &nbsp;If you don&#8217;t remember making this little turtle crawl around and draw stuff, then your childhood wasn&#8217;t complete. &nbsp;In fact, you should probably go back and <a title=\"Logo-Learning Website\" href=\"http:\/\/turtleacademy.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">do it now<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.terrapinlogo.com\/images\/bigger-bolder-turtle.jpg\" alt=\"I like TURTLES\"\/><figcaption>fwd 20 lt 90 fwd 40<\/figcaption><\/figure><\/div>\n\n\n\n<p><a title=\"Seymour Papert on Wikipedia\" href=\"http:\/\/en.wikipedia.org\/wiki\/Seymour_Papert\" target=\"_blank\" rel=\"noopener noreferrer\">Seymour Papert<\/a>, a researcher at MIT, reasoned that children could learn programming more easily if they were given a fun programming environment to play around in. &nbsp;This was so successful in the case studies he observed that he was forced to develop an explanation. &nbsp;He called his theory of learning &#8216;constructionism&#8217; (because the student can construct their own knowledge by experiment). &nbsp;This spawned a genre of software toys designed to teach programming (all after my time, unfortunately). &nbsp;Toys like <a title=\"Alice\" href=\"http:\/\/www.alice.org\/index.php\" target=\"_blank\" rel=\"noopener noreferrer\">Alice<\/a>, <a title=\"Greenfoot\" href=\"http:\/\/www.greenfoot.org\/door\" target=\"_blank\" rel=\"noopener noreferrer\">Greenfoot<\/a>, <a title=\"Robomind\" href=\"http:\/\/www.robomind.net\/en\/index.html\" target=\"_blank\" rel=\"noopener noreferrer\">RoboMind<\/a>, <a title=\"GameStar Mechanic\" href=\"http:\/\/gamestarmechanic.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">GameStar Mechanic<\/a>&nbsp;(my favorite), and <a title=\"Scratch\" href=\"http:\/\/scratch.mit.edu\/\" target=\"_blank\" rel=\"noopener noreferrer\">Scratch<\/a>&nbsp;(the most popular). &nbsp;Even Lego&#8217;s robotics platform, <a title=\"Lego Mindstorms\" href=\"http:\/\/mindstorms.lego.com\/en-us\/default.aspx\" target=\"_blank\" rel=\"noopener noreferrer\">Lego Mindstorms<\/a> is an extension of the ideas Papert outlines in his books &#8216;<a title=\"Mindstorms on Amazon\" href=\"http:\/\/www.amazon.com\/Mindstorms-Children-Computers-Powerful-Ideas\/dp\/0465046746\" target=\"_blank\" rel=\"noopener noreferrer\">Mindstorms<\/a>&#8216; and &#8216;<a title=\"The Children's Machine on Amazon\" href=\"http:\/\/www.amazon.com\/The-Childrens-Machine-Rethinking-Computer\/dp\/0465010636\" target=\"_blank\" rel=\"noopener noreferrer\">The Children&#8217;s Machine<\/a>&#8216; and is perhaps the <a title=\"Turtle Robot\" href=\"http:\/\/en.wikipedia.org\/wiki\/Turtle_(robot)\" target=\"_blank\" rel=\"noopener noreferrer\">most faithful<\/a> to them.<\/p>\n\n\n\n<p>These efforts have engaged millions of students in learning about technology, and has given them great early exposure to the field. &nbsp;In my own first grade class, we had a teacher (I think his name was Mr. Costa) who took care of the computer lab and taught computer class. &nbsp;We were taught the basics of LOGO, and then asked to produce a project of our choosing. &nbsp;My partner and I worked diligently to put together an animated scene of an F1 racetrack, complete with cheering fans and cars circling the track.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/bobbylox.com\/blog\/wp-content\/uploads\/2024\/12\/racetrack.png\"><img decoding=\"async\" src=\"https:\/\/bobbylox.com\/blog\/wp-content\/uploads\/2024\/12\/racetrack.png\" alt=\"racetrack\" class=\"wp-image-116\"\/><\/a><figcaption>In my mind, it was amazing, but it probably looked like this.<\/figcaption><\/figure><\/div>\n\n\n\n<p>We were very proud to present what we&#8217;d done to the class, but when the time came we found out that we were the only group out of 10 or 12 who had actually done anything substantial. &nbsp;A few pointy spirals. &nbsp;A few rounded spirographs. Disappointing. &nbsp;The next year Mr. Costa was replaced, and our &#8216;computer class&#8217; was about typing and learning to use Microsoft Word.<\/p>\n\n\n\n<p>Maybe I was just the right kind of kid to get hooked on programming early, but for most of the first-graders in my class, the motivation just wasn&#8217;t there. &nbsp;That&#8217;s what I see as a lack inherent in these toys built with constructionism in mind: motivation. &nbsp;Why am I exploring this educational environment? &nbsp;What am I supposed to do here? &nbsp;When some students are told &#8220;you can do anything,&#8221; what they hear is &#8220;there&#8217;s nothing to do.&#8221;<\/p>\n\n\n\n<p>In my case, I was motivated by curiosity. &nbsp;For many people, motivation is more extrinsic. &nbsp;<a title=\"Code.org\" href=\"http:\/\/code.org\" target=\"_blank\" rel=\"noopener noreferrer\">Code.org<\/a>&nbsp;lists resources for motivated adults to learn how to code, usually for career-oriented reasons. &nbsp;<a title=\"OLPC in Colombia\" href=\"http:\/\/www.ted.com\/talks\/nicholas_negroponte_takes_olpc_to_colombia.html\" target=\"_blank\" rel=\"noopener noreferrer\">Kids in the third world<\/a>, and everyone in the eighties, when Papert was doing his work, are at least somewhat motivated by the novelty of interacting with the machine itself.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/bobbylox.com\/blog\/wp-content\/uploads\/2024\/12\/IBM_PC_5150.jpg\" alt=\"\"\/><figcaption>Woooooo!<\/figcaption><\/figure><\/div>\n\n\n\n<p>Today, getting to interact with a computer is not such a treat. &nbsp;For many school-age children in the US, it&#8217;s the default state of being. &nbsp;The software has to have a better &#8216;why&#8217; built into it. &nbsp;That&#8217;s where games come in.<\/p>\n\n\n\n<p><a title=\"Papert on Edu-tainment\" href=\"http:\/\/www.papert.org\/articles\/Doeseasydoit.html\" target=\"_blank\" rel=\"noopener noreferrer\">Many<\/a> <a title=\"What video Games Have to Teach Us...\" href=\"http:\/\/www.amazon.com\/Video-Learning-Literacy-Second-Edition\/dp\/1403984530\" target=\"_blank\" rel=\"noopener noreferrer\">authors<\/a> <a title=\"Reality is Broken\" href=\"http:\/\/www.amazon.com\/Reality-Broken-Games-Better-Change\/dp\/145583291X\" target=\"_blank\" rel=\"noopener noreferrer\">have<\/a> <a title=\"Sasha Barab\" href=\"http:\/\/sashabarab.com\/research\/onlinemanu\/papers\/edleader_transplay.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">written<\/a> (more eloquently than I ever could) why games are such a perfect learning environment. &nbsp;Central to those arguments is the concept of intrinsic motivation. &nbsp;Winning a game is gratifying for its own sake (there&#8217;s evolutionary hard-wiring there). &nbsp;Games, ideally, keep players always at the edge of their capabilities, wanting to get better to accomplish the next task and unlock the next bit of power-up or narrative or whatever digital carrots the game designer decides to add. &nbsp;Games also offer a kind of social capital that creative tools cannot; &nbsp;creative work cannot be compared quantitatively in the way that a score or level can.<\/p>\n\n\n\n<p>Until recently, there haven&#8217;t been many efforts to create an actual Game that teaches programming. &nbsp;Let&#8217;s go over a few.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/bobbylox.com\/blog\/wp-content\/uploads\/2024\/12\/Screen-Shot-2013-09-04-at-4.36.21-PM.png\"><img decoding=\"async\" src=\"https:\/\/bobbylox.com\/blog\/wp-content\/uploads\/2024\/12\/Screen-Shot-2013-09-04-at-4.36.21-PM.png\" alt=\"Screen Shot 2013-09-04 at 4.36.21 PM\" class=\"wp-image-120\"\/><\/a><\/figure><\/div>\n\n\n\n<p><a title=\"Light Bot\" href=\"http:\/\/armorgames.com\/play\/6061\/light-bot-20\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Light Bot<\/strong><\/a><\/p>\n\n\n\n<p>This is going to stand in for a whole bunch of what are essentially puzzle games, like <em><a title=\"Daisy the Dinosaur\" href=\"https:\/\/itunes.apple.com\/us\/app\/daisy-the-dinosaur\/id490514278?mt=8\" target=\"_blank\" rel=\"noopener noreferrer\">Daisy the Dinosaur<\/a><\/em>&nbsp;and <em><a title=\"Robozzle\" href=\"https:\/\/itunes.apple.com\/us\/app\/robozzle\/id350729261?mt=8\" target=\"_blank\" rel=\"noopener noreferrer\">Robozzle<\/a><\/em>. &nbsp;I&#8217;ve got nothing against puzzle games, and I think any game that adequately introduces the mechanics of programming has to have a puzzle component. &nbsp;That said, puzzle games are the genre of game most like homework. &nbsp;These games in particular don&#8217;t introduce any kind of stakes &#8211; no reason to complete the puzzles. &nbsp;Also, one of the principles of responsive games is to decrease, as much as possible, the (user input)\/(in game consequences) ratio. &nbsp;By their nature, these kinds of puzzles require a lot of player input for very little onscreen action.<\/p>\n\n\n\n<p>I titled this section after <em>Light Bot<\/em> because it&#8217;s actually the best I&#8217;ve seen in this category, but most entries in the category are characterized by very little professionalism. &nbsp;It&#8217;s easy to speculate on the creator&#8217;s thought process. &#8220;I&#8217;ve never made a game before, but I&#8217;m a programmer, so how hard could it be to make a game about programming?&#8221;<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/bobbylox.com\/blog\/wp-content\/uploads\/2024\/12\/CodeHero.jpg\"><img decoding=\"async\" src=\"https:\/\/bobbylox.com\/blog\/wp-content\/uploads\/2024\/12\/CodeHero.jpg\" alt=\"CodeHero\" class=\"wp-image-122\"\/><\/a><\/figure><\/div>\n\n\n\n<p><strong><a title=\"Code Hero\" href=\"http:\/\/primerlabs.com\/codehero\" target=\"_blank\" rel=\"noopener noreferrer\">Code Hero<\/a>&nbsp;(unfinished)<\/strong><\/p>\n\n\n\n<p>There&#8217;s been a lot of hubbub about <em>Code Hero<\/em> recently, but the concept is still an exciting one. &nbsp;It uses the concept of the action-puzzle game, popularized by games like <em><a title=\"Portal Website\" href=\"http:\/\/www.thinkwithportals.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Portal<\/a><\/em> and <em><a title=\"Quantum Conundrum\" href=\"http:\/\/quantumconundrum.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Quantum Conundrum<\/a><\/em>. &nbsp;It also gives the player a first-person perspective, so they can feel situated in this world where code is so important. &nbsp;It reminds me of something Papert says in &#8216;The Children&#8217;s Machine&#8217;: &#8220;What would happen if children who can&#8217;t do math grew up in Mathland, a place that is to math what France is to French?&#8221; &nbsp;In <em>Code Hero<\/em>, you grow up in Codeland. &nbsp;I am anxious for the Primer Labs team to continue development.<\/p>\n\n\n\n<p>The one criticism I have is that this game (and Portal) feel a bit contrived. &nbsp;I&#8217;m in some kind of laboratory environment where I have to complete spatial reasoning puzzles&#8230;because&#8230;things? &nbsp;In Portal they call it like it is &#8212; &#8220;tests.&#8221; &nbsp;A robot is testing you, to see how clever you are. &nbsp;That narrative conceit (which was always a cop-out) can only be used once.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/bobbylox.com\/blog\/wp-content\/uploads\/2024\/12\/CodeSpells.png\"><img decoding=\"async\" src=\"https:\/\/bobbylox.com\/blog\/wp-content\/uploads\/2024\/12\/CodeSpells.png\" alt=\"CodeSpells\" class=\"wp-image-123\"\/><\/a><\/figure><\/div>\n\n\n\n<p><strong><a title=\"Code Spells website\" href=\"https:\/\/sites.google.com\/a\/eng.ucsd.edu\/codespells\/\" target=\"_blank\" rel=\"noopener noreferrer\">Code Spells<\/a> (unfinished)<\/strong><\/p>\n\n\n\n<p><em>Code Spells<\/em>&nbsp;has all the situated-learning benefits of <em>Code Hero<\/em>, but also addresses my criticisms by placing the player in a fantasy world where she must help little gnomes to complete tasks. &nbsp;Meanwhile, there is a monster roaming around. &nbsp;The idea of code-as-magic is one that I love. &nbsp;It explains why magic is so often botched and broken, why it takes a lot of concentration and diligence, and why it is best practiced by <a title=\"like Don Knuth\" href=\"http:\/\/en.wikipedia.org\/wiki\/Donald_Knuth\" target=\"_blank\" rel=\"noopener noreferrer\">ancient masters<\/a>.<\/p>\n\n\n\n<p>All my criticisms of this game are a consequence of it simply not being finished. &nbsp;I can&#8217;t wait to see what the team at <a title=\"Thought Stem\" href=\"http:\/\/www.thoughtstem.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">ThoughtStem<\/a> adds next.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/bobbylox.com\/blog\/wp-content\/uploads\/2024\/12\/codemancerlogo_web.png\"><img decoding=\"async\" src=\"https:\/\/bobbylox.com\/blog\/wp-content\/uploads\/2024\/12\/codemancerlogo_web.png\" alt=\"codemancerlogo_web\" class=\"wp-image-138\"\/><\/a><\/figure><\/div>\n\n\n\n<p><strong><a title=\"Codemancer\" href=\"https:\/\/importantlittlegames.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Codemancer<\/a> (unfinished)<\/strong><\/p>\n\n\n\n<p>I independently decided to use the magical-programming metaphor for a game I&#8217;m developing called &#8216;Codemancer&#8217; which I&#8217;m not ready to talk about in detail, but which I hope will be an example of how to do this genre right.&nbsp; The main difference in my game is that it has a less specific focus. &nbsp;I thought it would be better to develop my own visual programming language (which has a lot in common with LOGO), so I could make the basics as accessible as possible. &nbsp;I hope you&#8217;ll follow along in its development by following me on twitter&nbsp;<a title=\"Rob Lockhart on Twitter\" href=\"https:\/\/twitter.com\/bobbylox\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>.<\/p>\n\n\n\n<p>I&#8217;m not proposing that constructionist learning environments be eliminated. &nbsp;Whether a student responds to an exploratory style depends on the individual student, and indeed many students respond well. &nbsp;There are, I believe, a lot of learners who are underserved by making exploration the only means of discovery. &nbsp;I&#8217;m excited for the time, approaching soon, when these learners will have the option of a more narrative, guided, fun-motivated way to learn programming.<\/p>\n\n\n\n<p>PS &#8211; If you have a game about programming you&#8217;d like to see mentioned, please add it as a comment to this post and I&#8217;ll try to play it and add my thoughts.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It all started with LOGO. &nbsp;If you don&#8217;t remember making this little turtle crawl around and draw stuff, then your childhood wasn&#8217;t complete. &nbsp;In fact, you should probably go back and do it now. Seymour Papert, a researcher at MIT, reasoned that children could learn programming more easily if they were given a fun programming [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":387,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"slim_seo":{"title":"Teaching Computer Programming Digitally: Is Constructionism Enough? - Bobby Lockhart","description":"It all started with LOGO. &nbsp;If you don't remember making this little turtle crawl around and draw stuff, then your childhood wasn't complete. &nbsp;In fact,"},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-386","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/bobbylox.com\/blog\/wp-json\/wp\/v2\/posts\/386","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bobbylox.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bobbylox.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bobbylox.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bobbylox.com\/blog\/wp-json\/wp\/v2\/comments?post=386"}],"version-history":[{"count":1,"href":"https:\/\/bobbylox.com\/blog\/wp-json\/wp\/v2\/posts\/386\/revisions"}],"predecessor-version":[{"id":393,"href":"https:\/\/bobbylox.com\/blog\/wp-json\/wp\/v2\/posts\/386\/revisions\/393"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bobbylox.com\/blog\/wp-json\/wp\/v2\/media\/387"}],"wp:attachment":[{"href":"https:\/\/bobbylox.com\/blog\/wp-json\/wp\/v2\/media?parent=386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bobbylox.com\/blog\/wp-json\/wp\/v2\/categories?post=386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bobbylox.com\/blog\/wp-json\/wp\/v2\/tags?post=386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}