Coding and Computational Thinking In Schools

Teacher Editorial | By Steven Montgomery (BOLT student)

Coding or computer programming in schools is becoming a big push in schools around the world. Political leaders have been looking at statistics and realised that technology fields will employ a growing number of citizens in the future.

Future Employment

“The US Department of Labor projects that one million jobs in computing will go unfilled by 2020. These are good jobs, jobs that would allow economic mobility and great earning potential over the course of a career. We know why these positions aren’t being filled—a lack of skilled candidates.” (Harel 2016)

raspberry_pi

During a visit to Google’s new Canadian operation in Waterloo, Ont., Prime Minister Justin Trudeau acknowledged, “We need to do a lot better job of getting young people to understand what coding is and how it’s important.” (Silcoff 2016)

International Push

As a result of this realization, that programming could dramatically help the economy of the future, many countries have started to introduce coding and computer science programs in schools. Not only are countries interested but also the companies that need future programmers:

  • In England the BBC launched its initiative to help more than one million school children to start coding. After initial delays the corporation started delivering micro:bits to all children in Year 7. (Woollaston 2016). Also in England, the Raspberry PI organization https://www.raspberrypi.org/ that promotes small cheap credit card sized computers for $60 that students can program and integrate into larger automation systems, building their own switch and sensors.
  • In the US, many states have introduce coding courses, and several organizations such as the Hour of Code (http://hourofcode.com ), Code Academy (https://www.codecademy.com/), Google CS First (https://www.cs-first.com/en/home) are trying to promote, encourage and teach people to code.
  • Recently in Canada, British Columbia has introduced plans to make computer programming a mandatory subject for all students. (Silcoff 2016)

Liam O’Donnell, who has been a pioneer in teaching programming in Canada, says, “Our whole world is run by code these days. I think it’s important for young people to learn that these things they use everyday, from their smartphones to the cars they ride in, are all running on computer code and that this code is something that is created by people and doesn’t just appear naturally.” (Pringle 2016)

Additional Skills

Not only is coding itself a useful skill, but learning to program a computer introduces students to a new way of thinking.  codelogosComputers can only follow simple steps and make simple logical decisions as dictated to them by the instructions of the code.  Proponents of programming in schools say that coding helps students develop proof reading skills; analytic skills; problem solving skills; logic skills and overall technology skills. Bagley and Chou suggested that students who solve programing problems are engaged in complex cognitive processes and they not only need to understand the basic concepts but also have to understand the problem itself and to know how to address it by applying the correct method. (Bagley and Chou 2007) These are the sort of 21st century skills that schools are striving to add to curriculum.  Ironically, one way to develop these skills is sitting right in front of them in a Career and Technology Skills (CTS) curriculum that they already have.

Engaging Curriculum Through Practical Application

Hack clubs is an American based non-profit group that promotes teaching computer science and computational thinking in a fun and engaging way for students.  The founder of the program Latta (as cited by Thompson, 2015) states:

We’ve designed an introductory curriculum that completely focuses on building things that we provide to all of our clubs. So if you’re a new club member, by the time you leave the first meeting, you have your first Web site online. By the time you leave the second meeting, you’ve built a Web site that can call and text your phone. By the time you’ve left the third meeting, you’ve built your first game, and it’s online, and you can show your friends and family. The same concepts that you use to build your first game, you can use to build things like Flappy Bird, or other apps that you use every single day on your phone. Those are the two main things — community and curriculum.

( p. 16)

As you can see this approach of making useful products on the first day is really appealing as it gives immediate feedback and success to students. Obviously the introductory skills aren’t extremely difficult if a novice can make a web page in one day using HTML.  For school boards and administrators, the good news is that this requires no additional expenses on the part of the school. The students can start using making web pages using HTML and a free text editor like notepad (Windows) or TextEdit (Mac) which come free with your computer.  For ChromeOS they will have to download one of the many free options from the Google Store. Since HTML is a scripting language it is an easy computer language to start with because most of the commands are variations of English which makes the code easy to read and allows beginners to see results very quickly.  If you look at the example below you can see the HTML code in red for a basic web page.

<html>
<head>
                 <title>Computer Programming</title>
</head>
<body>
<h1>Computer Programming with HTML</h1>
<p> HTML stands for hyper text mark up language.  It was developed at CERN to make pages that could be interlinked using hyperlinks. </p>
<p> For example if you click on this link: <a href=“http://www.w3schools.com/html/”>Visit our HTML tutorial </a> you will go to the www.w3schools.com website that teaches people to program html. </p>
</body>
</html>

After they have learned some HTML and can make a web page, they can add JavaScript. JavaScript allows programmers to make web pages interactive.  For example students would be able to add a button that will change the text, or colors on the web page. The beauty of starting with these two languages is that they are free, can be used on any computer, and are industry standard with thousands of websites to help teach the students with tutorials and code samples.

Computational Thinking, The Next Step

The challenge is to expand beyond just learning to program.  By looking at larger more realistic problems, students will start to apply problem solving skills.  Students must find problems and goals that they want to achieve.  Then they must figure out a method to solve the problem.  One of the fun things with computer science is that there is always more than one correct way to solve the problem. Depending on student’s experience and skills they may develop very different methods that both achieve the same goal which leads students to computational thinking.

Computational thinking (CT) is a problem solving process that includes a number of characteristics, such as logically ordering and analyzing data and creating solutions using a series of ordered steps (or algorithms), and dispositions, such as the ability to confidently deal with complexity and open-ended problems. CT is essential to the development of computer applications, but it can also be used to support problem solving across all disciplines, including math, science, and the humanities. Students who learn CT across the curriculum can begin to see a relationship between subjects as well as between school and life outside of the classroom. (Google)

The other thing to show students is that their misconception that computer experts work individually is incorrect. The stereotype is an introvert overweight male working in his parent’s basement with few social skills and only like-minded friends.  Yes, some people like that do exist, but the majority of programmers work in teams and communicate closely with their customers.  In large corporations, teams of hundreds of coders work on projects with millions of lines of code.  That is far too much work for one person to get done in their lifetime. They help each other out; divide up large projects into smaller steps; discuss the best most efficient way to solve problems; and proofread each other’s code for security, and efficiency improvements.

When I think of my experiences in learning computer science in high school and university it was not an individual pursuit.  We worked in teams to solve problems. When we had a piece of code that wasn’t working, we talked to our neighbours to get help with ideas and methods or coding mistypes.

Programming Started Technology’s Leaders

Many technology leaders started with programming.  Bill Gates helped code DOS and Windows 3.1 as part of founding Microsoft; Steve Jobs and Steve Wozniak built and coded the first Apple OS as part of founding Apple; Micheal Dell assembled and installed the software for his computers as part of founding Dell Computers; Mark Zuckerberg programmed the first versions of Facebook with other Harvard students.  Let us help develop the leaders of the future by giving them some knowledge about how the technology they use every day works, and who know what they will develop in the future.

References:

C. A. Bagley and C. C. Chou, Collaboration and the Importance for Novices in Learning Java Computer Programming, Proceedings of the 12th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, 39, pp. 211-215, 2007.

Exploring Computational Thinking. (May). Retrieved October 8, 2016, from https://www.google.com/edu/resources/programs/exploring-computational-thinking/

Harel, I. (2016, May 25). American schools are teaching our kids how to code all wrong. Retrieved October 8, 2016, from http://qz.com/691614/american-schools-are-teaching-our-kids-how-to-code-all-wrong

Pringle, R. (2016, August 21). The push to teach coding in school reflects our digital world. Retrieved October 15, 2016, from http://www.cbc.ca/news/technology/coding-education-curriculum-1.3728942

Silcoff, S. (2016, January 18). B.C. to add computer coding to school curriculum. Retrieved from http://www.theglobeandmail.com/technology/bc-government-adds-computer-coding-to-school-curriculum/article28234097/

Thompson, G. (2015, June). Hack clubs in schools. Retrieved October 8, 2016, from http://0-eds.a.ebscohost.com.aupac.lib.athabascau.ca/eds/pdfviewer/pdfviewer?sid=d4e5dd62-d21d-45ab-9993-e3ed7693476f@sessionmgr4006&vid=1&hid=4210

Woollaston, V. (2016, May 25). Tim Cook: Coding should be a ‘second language’ taught to all children school curriculum. Retrieved from http://www.wired.co.uk/article/tim-cook-profit-money-purpose-apple-watch

About the Contributor

Steven Montgomery has been an Alberta high school math and science teacher for the past 19 years, but has also been known to wander into other courses in Phys. Ed. and French. He has had a chance to spend a year in Australia, and spent a semester seconded to Alberta Education as the project manager for the online Physics 30 course.  As a proponent of out of classroom experiences for students, Steve has been consistently involved with coaching volleyball and running the school web page, and has dabbled in track and field, cross country running, bus driving, Quebec trips, field trips and other events when needed.

Leave a Reply

Your email address will not be published. Required fields are marked *