stumbling through computer science

Coding – the hottest topic in teaching since sliced bread

… at least I think that’s how the expression goes.

The idea of teaching coding in school has become a global phenomenon – every teacher wants to have some sort of coding program in their classroom. Whether this is through remote learning, completing a coding program themselves and teaching their kids, or going to tech workshops as field trips with their classes. This global interest is based on the belief that it is important, both educationally and socially, for students to learn how to code or program from an early age.

Teaching kids to code or program early does not only create a pool of skilled programmers to meet the needs of the future job market, it does much more. Learning to code enables children to use digital technology to develop their creativity and problem solving skills. It empowers children in our technology-based society to fill the role of a creator of societal content and marketable skills rather than simply a consumer of global products and ideas.

What do I mean by coding and programming, exactly?

When I am talking about teaching kids to program or code, I mean that they are learning the skills to tell a machine, a computer, a software program or Web page what to do. This is a feat accomplished behind the scenes… or screens… by mobile phones, computers and social media we use every day.

Telling a software program or Web page what you want it to do requires coders to use algorithmic thinking. Algorithmic thinking breaks down the steps of a complicated task and works backwards from the final product to the initial stage. This type of thinking is a large component of the curriculum when teaching students about coding.

An example of algorithmic thinking could be a simple task such as how to make a peanut butter sandwich.

The final product?

A peanut butter sandwich.

But what steps were made to create this sandwich?

Let’s break it down into steps starting from the very basics. Please note there are additional steps which could be listed, such as open the cupboard, get out a plate, lay the plate on the table, etc. but for the sake of this example we will only be focused on the algorithm or steps needed to make just the sandwich itself.

Source: https://www.instructables.com/id/How-to-Make-a-Peanut-Butter-and-Jelly-Sandwich-4/

  1. Open the bread bag.
  2. Get out two slices of bread.
  3. Put the bread slices on a plate.
  4. Get out a knife.
  5. Get out the peanut butter.
  6. Get out the jam.
  7. Open the peanut butter.
  8. Open the jam.
  9. Put the knife in the jam jar.
  10. Spread jam on one slice of bread.
  11. Put the knife in the peanut butter.
  12. Spread peanut butter on the other slice of bread.
  13. Lay the jam sliced bread jam side down on top of the peanut butter slice.
  14. Cut the bread diagonally from the top right corner to the bottom left corner all the way through.
  15. Enjoy your peanut butter and jelly sandwich!

This “Exact Instructions” Challenge video by Josh Darnit demonstrates algorithmic thinking when making a peanut butter and jelly sandwich by following the steps exactly… which leads to a hilarious outcome.

Source: https://www.youtube.com/watch?v=Ct-lOOUqmyY

Teaching students about algorithmic thinking using common tasks we compete every day, such as this simple sandwich making, closes the gap between computational thinking and common sense. It shows that there isn’t that big of a difference between using algorithms in the computer to complete a task and that of every day actions. Every outcome and product can be broken down into simple steps.

Through coding and offline coding lessons (those which don’t use computers or programs to demonstrate a coding concept… see the sandwich example above), students develop algorithmic thinking skills. This enables them to better understand, interpret, and assess the impact of such thinking on our lives. Some may even take these thinking skills and take part in developing and guiding the use of algorithms in the world of the future.

Coding and computational thinking empowers children to use technology more effectively and guides them into choosing the right programs or devices to help them achieve their outcome. Integrating coding into their everyday learning enables students to better understand all aspects of the digital world and become better prepared for the future developments in tech and digitization.

10 key benefits of learning to code at school:

  1. Increased academic motivation
  2. Acquisition of mathematical, problem solving and computer skills
  3. Development of autonomy
  4. Teamwork and collaboration
  5. Critical and creative thinking
  6. Improved self-esteem
  7. Increased sense of competence
  8. Ability to find information
  9. Increased resilience in the face of challenges
  10. Enhanced reasoning, organization, and planning skills

In case you weren’t totally convinced about the benefits of coding, check out this Ted Talk by Mitch Resnick of MIT Media Lab, who explains that coding isn’t just for computer whizzes, it’s for everyone.

Source: https://www.ted.com/talks/mitch_resnick_let_s_teach_kids_to_code?language=en

2 Comments

  1. ctrades

    I couldn’t have said it better myself!

  2. Nicole

    Yes, Hayley! I so agree with everything you have said here. I don’t think we need to teach coding so that students can code, per se. It’s so that they can learn to problem-solve, and so that they can become okay with trying and failing and trying and failing and trying and failing, over and over again. In many ways, I think math gets at some of these same skills, but because of preconceived notions about math, students often aren’t able to get beyond the math to the problem-solving. Plus, coding has much more immediate feedback!

    Love the PB&J sandwich video too! (Now I’m hungry)

Leave a Reply

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

© 2020 Techtrovert

Theme by Anders NorenUp ↑