{"id":21455,"date":"2016-02-15T17:55:40","date_gmt":"2016-02-15T17:55:40","guid":{"rendered":"https:\/\/www.fractuslearning.com\/?p=21455"},"modified":"2017-01-25T12:39:03","modified_gmt":"2017-01-25T12:39:03","slug":"teaching-kids-code-text-based-vs-block-based","status":"publish","type":"post","link":"https:\/\/www.fractuslearning.com\/teaching-kids-code-text-based-vs-block-based\/","title":{"rendered":"Teaching Kids to Code: Text-Based vs Block-Based Programming"},"content":{"rendered":"<p>About two decades ago The MIT Media lab introduced the concept of <strong>block-based programming<\/strong>. The idea was to develop\u00a0an interface that allowed computer programs to be built by simply dragging and dropping puzzle blocks to represent complex\u00a0programming constructs and commands. With this new method for teaching and learning computer science,\u00a0the hugely popular\u00a0<a href=\"https:\/\/scratch.mit.edu\/\" target=\"_blank\">Scratch<\/a>\u00a0platform was born. This approach\u00a0lowered the bar for experimenting with programmatic thinking, making it possible for students to\u00a0create interactive animations and\u00a0small games without writing a single line of code. This simple concept removed the need to\u00a0learn the syntax of a formal programming language, and made teaching and learning the basics of computer science accessible to younger learners and to teachers with no formal coding background.<\/p>\n<p>Outside of the classroom though, coding has always been, and still remains, a process of typing letters, numbers and symbols. This <strong>text-based programming<\/strong>, used in programming language such as C, Javascript and\u00a0Python,\u00a0requires coders to\u00a0obey and conform to formal syntax. Despite the pain of dealing with typos in names of variables and inevitable syntax errors, no other coding method designed\u00a0to be more \u201cuser friendly\u201d has really caught\u00a0on. Tools have\u00a0been offered\u00a0for\u00a0managers to define business logic through a graphical user interface without writing lines of codes. Or for web developers to add interactive behaviors to their websites without learning Javascript. But in reality, neither of those substitute\u00a0the power and flexibility of\u00a0text-based programming. And with neither winning\u00a0significant adoption, the demand for the classic skill of text-based coding continues to grow and grow.<\/p>\n<h2>Teaching text-based coding with CodeMonkey<\/h2>\n<p>Block-based coding is an excellent approach\u00a0to kickstart learners&#8217;\u00a0excitement and interest\u00a0in programming. It&#8217;s the perfect way to teach\u00a0programmatic thinking, while\u00a0also giving an enthusiastic head start into\u00a0real world coding skills. The challenge lies when children begin to advance and\u00a0<strong>grow out of block-based coding<\/strong>, around the ages of seven or eight.<\/p>\n<p>This is partly because\u00a0children\u00a0feel they\u2019re not doing &#8216;real&#8217; coding,\u00a0and partly\u00a0the\u00a0limitations programming in blocks places on their\u00a0creativity. And given that creativity is one of\u00a0the strongest motivations for a computer science learner, and that all the apps, games and web sites they want to build\u00a0require text-based coding, there <strong>needs to be a logical next step<\/strong>.<\/p>\n<div class=\"entry-content-asset videofit\"><iframe title=\"CodeMonkey Trailer - How to Code for Beginners\" width=\"720\" height=\"405\" src=\"https:\/\/www.youtube.com\/embed\/RqSzdmSUHVo?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/div>\n<p>With\u00a0the vast amount of coding expertise required to teach\u00a0students text-based coding, it is\u00a0a challenge for many educators to help students progress at the pace they want.\u00a0Even for experienced programmers or computer science teachers who have\u00a0mastered the\u00a0skills themselves, teaching code is very different from writing it. But thanks to emerging educational coding platforms such as CodeMonkey (<a href=\"https:\/\/www.playcodemonkey.com\/\" target=\"_blank\">playcodemonkey.com<\/a>), this is starting to change.<\/p>\n<p>CodeMonkey is a full coding course in the form of an intuitive and engaging <strong>online game<\/strong>.\u00a0Learners type code\u00a0in a real programming language called CoffeeScript to guide a fun-loving\u00a0monkey to his bananas through a series of increasingly complex obstacles.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter size-full wp-image-21700\" src=\"https:\/\/www.fractuslearning.com\/wp-content\/uploads\/2016\/02\/code-screen.png\" alt=\"code-screen\" width=\"973\" height=\"452\" srcset=\"https:\/\/www.fractuslearning.com\/wp-content\/uploads\/2016\/02\/code-screen.png 973w, https:\/\/www.fractuslearning.com\/wp-content\/uploads\/2016\/02\/code-screen-360x167.png 360w, https:\/\/www.fractuslearning.com\/wp-content\/uploads\/2016\/02\/code-screen-768x357.png 768w\" sizes=\"(max-width: 973px) 100vw, 973px\" \/><\/p>\n<p>The code editor in the game provides numerous tools to\u00a0help learners overcome the technical difficulties that are inherent in\u00a0text-based programming. Students\u00a0can click on objects in the game instead of typing their names letter by letter, and when doing so the code editor automatically takes cares of small syntax issues for them (such as inserting a dot between an object and a function, a space between a function and its arguments, and a new line for each statement).<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-21705\" src=\"https:\/\/www.fractuslearning.com\/wp-content\/uploads\/2016\/02\/objects.png\" alt=\"objects\" width=\"265\" height=\"68\" \/><\/p>\n<p>If a\u00a0student is still struggling\u00a0and tries to run a program with errors, the game will pop up clear and simple error messages, sometimes suggesting\u00a0how to fix the error, instead of the infamous dumb compiler error messages such as \u201c<em>Undefined object or function: x<\/em>\u201d\u2026<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-21715 size-medium\" src=\"https:\/\/www.fractuslearning.com\/wp-content\/uploads\/2016\/02\/image-1-360x294.png\" alt=\"Fix the error\" width=\"360\" height=\"294\" srcset=\"https:\/\/www.fractuslearning.com\/wp-content\/uploads\/2016\/02\/image-1-360x294.png 360w, https:\/\/www.fractuslearning.com\/wp-content\/uploads\/2016\/02\/image-1-768x628.png 768w, https:\/\/www.fractuslearning.com\/wp-content\/uploads\/2016\/02\/image-1-1024x837.png 1024w, https:\/\/www.fractuslearning.com\/wp-content\/uploads\/2016\/02\/image-1.png 1116w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>CodeMonkey also makes\u00a0it easy to work with\u00a0large <strong>groups of students<\/strong> with:<\/p>\n<ol>\n<li>Pre-defined linear progression through\u00a0the course<\/li>\n<li>The high engagement that a\u00a0full-blown game experience creates<\/li>\n<li>And immediate feedback from\u00a0its built-in automatic assessment engine<\/li>\n<\/ol>\n<p>These\u00a0three elements allow teachers\u00a0to \u201cauto-pilot\u201d for large parts\u00a0of the lesson while\u00a0students work individually\u00a0or in pairs. This leaves\u00a0teachers free to attend to students who may be struggling or help those\u00a0having problems at specific points.<\/p>\n<p>CodeMonkey also offers a great entry point to the world of text-based coding for\u00a0teachers themselves. Any teacher with no prior knowledge in computer science can pick it up by playing CodeMonkey an evening before class. They can also\u00a0use the full\u00a0<a href=\"https:\/\/www.playcodemonkey.com\/teachers\" target=\"_blank\">detailed lesson plans<\/a> offered to teachers alongside the CodeMonkey games, and easily track their students progress and work through CodeMonkey\u2019s simple <strong>teacher dashboard<\/strong>.<\/p>\n<p>And the best part &#8211; you can sign up and set up your class in just a few clicks at <a href=\"http:\/\/www.playcodemonkey.com\/teachers\">playcodemonkey.com\/teachers<\/a>. The first 30 levels of the game are <strong>free<\/strong>!<\/p>\n<p>&nbsp;<\/p>\n<p><em>Feature image adapted from image courtesy of Flickr,\u00a0<a href=\"https:\/\/www.flickr.com\/photos\/riebart\/\" target=\"_blank\">Riebart<\/a>.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>About two decades ago The MIT Media lab introduced the concept of block-based programming. The idea was to develop\u00a0an interface that allowed computer programs to be built by simply dragging and dropping puzzle blocks to represent complex\u00a0programming constructs and commands&#8230;.<\/p>\n","protected":false},"author":1271,"featured_media":21697,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_lmt_disableupdate":"","_lmt_disable":"","_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"categories":[17,2186],"tags":[2685,4658],"acf":[],"modified_by":"Nick Grantham","taxonomy_info":{"category":[{"value":17,"label":"Classroom"},{"value":2186,"label":"STEM"}],"post_tag":[{"value":2685,"label":"codemonkey"},{"value":4658,"label":"coding"}]},"featured_image_src_large":["https:\/\/www.fractuslearning.com\/wp-content\/uploads\/2016\/02\/codemonkey-1024x614.jpg",1024,614,true],"author_info":{"display_name":"Jonathan Schor","author_link":"https:\/\/www.fractuslearning.com\/author\/jschor\/"},"comment_info":0,"category_info":[{"term_id":17,"name":"Classroom","slug":"classroom","term_group":0,"term_taxonomy_id":17,"taxonomy":"category","description":"","parent":3735,"count":382,"filter":"raw","cat_ID":17,"category_count":382,"category_description":"","cat_name":"Classroom","category_nicename":"classroom","category_parent":3735},{"term_id":2186,"name":"STEM","slug":"stem","term_group":0,"term_taxonomy_id":2599,"taxonomy":"category","description":"","parent":3743,"count":107,"filter":"raw","cat_ID":2186,"category_count":107,"category_description":"","cat_name":"STEM","category_nicename":"stem","category_parent":3743}],"tag_info":[{"term_id":2685,"name":"codemonkey","slug":"codemonkey","term_group":0,"term_taxonomy_id":3098,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":4658,"name":"coding","slug":"coding","term_group":0,"term_taxonomy_id":5070,"taxonomy":"post_tag","description":"","parent":0,"count":33,"filter":"raw"}],"_links":{"self":[{"href":"https:\/\/www.fractuslearning.com\/wp-json\/wp\/v2\/posts\/21455"}],"collection":[{"href":"https:\/\/www.fractuslearning.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fractuslearning.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fractuslearning.com\/wp-json\/wp\/v2\/users\/1271"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fractuslearning.com\/wp-json\/wp\/v2\/comments?post=21455"}],"version-history":[{"count":0,"href":"https:\/\/www.fractuslearning.com\/wp-json\/wp\/v2\/posts\/21455\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fractuslearning.com\/wp-json\/wp\/v2\/media\/21697"}],"wp:attachment":[{"href":"https:\/\/www.fractuslearning.com\/wp-json\/wp\/v2\/media?parent=21455"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fractuslearning.com\/wp-json\/wp\/v2\/categories?post=21455"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fractuslearning.com\/wp-json\/wp\/v2\/tags?post=21455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}