{"id":1344,"date":"2020-12-24T02:39:37","date_gmt":"2020-12-24T02:39:37","guid":{"rendered":"http:\/\/people.utm.my\/azhari\/?p=1344"},"modified":"2020-12-24T02:39:38","modified_gmt":"2020-12-24T02:39:38","slug":"an-education-for-the-21st-century-means-teaching-coding-in-schools","status":"publish","type":"post","link":"https:\/\/people.utm.my\/azhari\/2020\/12\/24\/an-education-for-the-21st-century-means-teaching-coding-in-schools\/","title":{"rendered":"An education for the 21st century means teaching coding in schools"},"content":{"rendered":"\n<p>Being introduced to coding gives students an appreciation of what can be built with technology. We are surrounded by devices controlled by computers. Understanding how they work, and imagining new devices and services, are enhanced by understanding coding.<\/p>\n\n\n\n<p>Of course, not everyone taught coding will become a coder or have a career in information technology. Art is taught in schools with no expectation that the students should become artists.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Drag and drop<\/h2>\n\n\n\n<p>A computer program is effectively a means of automating processes. Programs systematically and reliably follow processes and can be used to exhaustively try all the possibilities.<\/p>\n\n\n\n<p>The&nbsp;<a href=\"http:\/\/www.devsaran.com\/blog\/10-best-programming-languages-2015-you-should-know\">languages<\/a>&nbsp;used to program computers have&nbsp;<a href=\"http:\/\/www.abc.net.au\/technology\/articles\/2013\/01\/11\/3667939.htm\">evolved<\/a>&nbsp;in the 70 years we have been building computers. Interfaces and programming environments have become more natural and intuitive. Language features reflect the applications they\u2019re used for.<\/p>\n\n\n\n<p>What is needed to easily express a business process, scientific equation, or data analysis technique is not necessarily the same as what is needed to rapidly develop a video game.<\/p>\n\n\n\n<p>However, throughout the evolution of programming languages, the fundamental principles have remained the same. Computer programming languages express three essential things:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>The order in which a sequence of instructions is performed<\/li><li>A means of repeating a sequence of instructions a prescribed number of times<\/li><li>And tests as to whether or not a sequence of instructions is performed.<\/li><\/ol>\n\n\n\n<p>While personal preference influences&nbsp;<a href=\"http:\/\/langpop.com\/\">which computer language<\/a>&nbsp;a programmer uses, there is a greater understanding of which languages work well for teaching introductory programming. For example,&nbsp;<a href=\"https:\/\/scratch.mit.edu\/\">Scratch<\/a>&nbsp;is popular for primary school students and is quick to learn.&nbsp;<a href=\"http:\/\/www.ps.uni-saarland.de\/alice\/\">Alice<\/a>&nbsp;has been used to help students quickly build computer animations.&nbsp;<a href=\"https:\/\/www.python.org\/\">Python<\/a>&nbsp;is increasingly used for scientific applications.&nbsp;<a href=\"http:\/\/en.wikipedia.org\/wiki\/Visual_programming_language\">Visual programming languages<\/a>&nbsp;\u2013 where students can drag-and-drop icons rather than type code \u2013 allow for rapid development of simple programs.<\/p>\n\n\n\n<p>At Swinburne University of Technology we run&nbsp;<a href=\"http:\/\/www.swinburne.edu.au\/media-centre\/news\/2015\/04\/swinburne-partners-with-the-brainary-to-deliver-robotics-workshops.html\">workshops<\/a>&nbsp;to introduce school students to program&nbsp;<a href=\"https:\/\/www.aldebaran.com\/en\/humanoid-robot\/nao-robot\">NAO robots<\/a>. Students use the&nbsp;<a href=\"http:\/\/doc.aldebaran.com\/1-14\/software\/choregraphe\/choregraphe_overview.html\">Choregraphe environment<\/a>&nbsp;to link robot actions from a library.<\/p>\n\n\n\n<p>Students previously unused to programming can develop interesting robot projects in a couple of days. More sophisticated development of the robot requires students to use a more detail-oriented language, such as Python or&nbsp;<a href=\"http:\/\/en.wikipedia.org\/wiki\/C%2B%2B\">C++<\/a>. The simpler options lead to positive student experience.<\/p>\n\n\n\n<figure class=\"wp-block-image is-style-rounded\"><a href=\"https:\/\/images.theconversation.com\/files\/82338\/original\/image-20150520-30504-13hkelw.jpg?ixlib=rb-1.1.0&amp;q=45&amp;auto=format&amp;w=1000&amp;fit=clip\"><img decoding=\"async\" src=\"https:\/\/images.theconversation.com\/files\/82338\/original\/image-20150520-30504-13hkelw.jpg?ixlib=rb-1.1.0&amp;q=45&amp;auto=format&amp;w=754&amp;fit=clip\" alt=\"\" \/><\/a><figcaption>The Nao robot can be programmed easily to perform a range of tasks.&nbsp;<a href=\"https:\/\/www.flickr.com\/photos\/brettdavis\/4436987052\/in\/photolist-7L5HEL-9jhfb2-9tpLfe-9jheUe-9jhe3P-9tsEk1-5b6h9b-5b6DRG-9sQrBJ-9jkr6d-hwbdyc-hw9LcY-hwa1rj-hwb2H4-hwacu1-hwaL48-hw9TCQ-74rqLE-5b6FHj-5b6xcS-5b6HQL-5b2qRa-5b6DqN-5b6moy-5b6yuN-5b6nc7-5b2qDV-5b2hV6-5b2hwD-5b6EcU-5b2eMr-5b6wDj-5b6gWs-5b6Cpm-5b6jHh-5b6BVw-5b2nHe-5b28kZ-5b2eG6-5b266P-5b6F6S-5b6u9L-5b6nKb-5b2cpt-5b6wHN-5b6rsC-5b6zVE-5b26wk-5b6Axj-5b6n5A\">Brett Davis\/Flickr<\/a>,&nbsp;<a href=\"http:\/\/creativecommons.org\/licenses\/by-nc\/4.0\/\">CC BY-NC<\/a><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Computational thinking<\/h2>\n\n\n\n<p>Writing and then executing a program gives immediate feedback as to whether you have correctly expressed instructions for the computer. Ultimately, the understanding of how to express concepts so that a computer can perform tasks accurately and efficiently is far more important than the details of the programming language.<\/p>\n\n\n\n<p>Underlying all computer programs are&nbsp;<a href=\"https:\/\/theconversation.com\/au\/topics\/algorithm\">algorithms<\/a>, which specify in a more abstract way how a task is to be done. Algorithmic thinking \u2013 also called&nbsp;<a href=\"http:\/\/en.wikipedia.org\/wiki\/Computational_thinking\">computational thinking<\/a>&nbsp;\u2013 underlies computer science, and there has been a growing movement on algorithmic thinking in schools.<\/p>\n\n\n\n<p>The new&nbsp;<a href=\"http:\/\/www.australiancurriculum.edu.au\/\">national curriculum<\/a>&nbsp;reflects algorithmic processes, and materials are being developed to help teachers with the new curriculum. Victoria has recently developed a new subject for the Victorian Certificate of Education (<a href=\"http:\/\/www.vcaa.vic.edu.au\/Pages\/vce\/index.aspx\">VCE<\/a>) entitled&nbsp;<a href=\"http:\/\/www.vcaa.vic.edu.au\/Pages\/vce\/studies\/algorithmics\/algorithmicsindex.aspx\">Algorithmics<\/a>. There are even materials for teaching algorithmic thinking without computers. The&nbsp;<a href=\"http:\/\/csunplugged.org\/\">Computer Science Unplugged<\/a>&nbsp;movement, led by Tim Bell and colleagues at the University of Canterbury, has developed resources that teach students concepts through movement and fun activities.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Teaching for the this century<\/h2>\n\n\n\n<p>Teaching computer coding in schools is very different from initiatives that advocate for computers in the classroom. I was not, and am still not, supportive of compulsory laptop programs in schools.<\/p>\n\n\n\n<p>The idea is not necessarily to expose students to the technology itself, which is almost inevitable these days with the wide penetration of mobile phones. Rather, students are exposed to the skills needed to develop computer applications.<\/p>\n\n\n\n<p>While IT skill shortages is a contentious topic, there is no doubt that not enough of the best and brightest are studying computer science at university. A significant factor is insufficient exposure to the topic at schools. Teaching coding at schools is aimed at addressing the lack.<\/p>\n\n\n\n<p>It might be said that whatever programming language is taught will be obsolete by the time the students enter the workforce. My experience is that, if taught properly, students can rapidly transfer the principles of one language to another.<\/p>\n\n\n\n<p>In the 19th and 20th centuries, the challenge was to understand the physical world, and harness force and energy. This understanding percolated into the school curriculum. In the 21st century, the challenge is to understand and harness data, information and knowledge. Computer programming is a necessary way of introducing students to these concepts.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Being introduced to coding gives students an appreciation of what can be built with technology. We are surrounded by devices controlled by computers. Understanding how they work, and imagining new devices and services, are enhanced by understanding coding. Of course, not everyone taught coding will become a coder or have a career in information technology. [&hellip;]<\/p>\n","protected":false},"author":14428,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[3],"tags":[],"class_list":["post-1344","post","type-post","status-publish","format-standard","hentry","category-news"],"_links":{"self":[{"href":"https:\/\/people.utm.my\/azhari\/wp-json\/wp\/v2\/posts\/1344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/people.utm.my\/azhari\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/people.utm.my\/azhari\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/people.utm.my\/azhari\/wp-json\/wp\/v2\/users\/14428"}],"replies":[{"embeddable":true,"href":"https:\/\/people.utm.my\/azhari\/wp-json\/wp\/v2\/comments?post=1344"}],"version-history":[{"count":1,"href":"https:\/\/people.utm.my\/azhari\/wp-json\/wp\/v2\/posts\/1344\/revisions"}],"predecessor-version":[{"id":1345,"href":"https:\/\/people.utm.my\/azhari\/wp-json\/wp\/v2\/posts\/1344\/revisions\/1345"}],"wp:attachment":[{"href":"https:\/\/people.utm.my\/azhari\/wp-json\/wp\/v2\/media?parent=1344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/people.utm.my\/azhari\/wp-json\/wp\/v2\/categories?post=1344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/people.utm.my\/azhari\/wp-json\/wp\/v2\/tags?post=1344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}