Too often we give kids answers to remember rather than problems to solve. If kids are taught how to approach problems they will be more likely to rise to the challenge to solve them.
Computational Thinking is a logical approach to problem-solving. It allows you to take a complex problem, understand what the problem is and develop possible solutions.
Computational Thinking has five parts to it and is used in more than just programming:
Abstraction: Focusing on What’s Important, Ignoring What is Unnecessary
Abstraction is the process of filtering out - ignoring - the characteristics of patterns that you don’t need in order to concentrate on those that you do. This process helps to create a framework that allows redesigns without starting from scratch. For example, when you make pancakes, you have the foundational recipe for it - the framework. And if you want to make blueberry pancakes, you don’t need a whole new recipe. You simply make modifications to the foundational recipe by adding blueberries.
All of Hatch Coding’s 600+ projects give project requirements, that can each be modified, so long as the foundational requirements are met. For our ‘house’ project, students can change the colour, shape, size, and background of the house as long as they have the foundational details to convey an image of a house.
Algorithms: Pathway to Reach Your Goal
Algorithms are a set of steps or rules that are followed to meet an objective. They are important because they are an established means to solve a specific problem and will give the same result every time. Similar to a child’s bedtime routine, the ‘algorithm’ to get them in bed so you can have the evening to unwind is followed each night. It can be altered depending on how much time you want to devote to this objective, or if your children resist the algorithm. But your goal is likely to get them to bed in the most efficient way possible. Similarly, the goal in computer programming is to find the most efficient and usually shortest sequence, as then fewer mistakes are likely to occur.
As students progress at their own pace on Hatch Studio, they’re introduced to new coding concepts to help make their code more efficient. For example, they’ll learn how for loops allow them to repeat blocks of their code multiple times, saving them from having to write repetitive code.
Decomposition: Breaking Down a Problem into Smaller Parts
Decomposition is a thought process that gets you to break down big problems into smaller, more manageable parts. For example, if you’re planning your child’s birthday party, this big event will be more manageable if it’s broken down into smaller tasks (plan a theme, decide on a guest list, pick a venue, order the food and cake, etc.). Each of these parts can also be further broken down to ensure that no crucial areas have been missed and the event runs smoothly.
Hatch Coding's teaching philosophy is that once a child can read and type, they can learn to code. And that coding is not difficult to learn once you break it down into smaller tasks. Every project in Hatch Studio is broken down into three coding levels and is presented as requirements. If students need the code explained even further, each project can further be broken down with our “Explain Code” button (see below).
Design Thinking: Thinking With the End-User In Mind
Evaluation and meta-awareness are key skills of design thinking. To create an objective - like creating a game - you have to consider who your core users are and evaluate what are their needs by asking lots of questions. You then create the game based on the criteria of what your users need and want, by continually asking questions if this game will meet their needs and be easy to understand how to play it.
Hatch Coding students learn how to comment on their code by writing notes about their projects or discussing them with an instructor. This helps them to engage in meta-awareness and meta-cognition. As students gain independence over time, they then have opportunities to build their own games and publish them on the Hatch Studio for other students to try.
Pattern Matching: Grouping Similarities
In programming, pattern matching is observing similarities in items to best group them and it has two parts:
- Identify items that are identical or have similar characteristics
- Notice and understand the conditions in which these items exist
When you’re shopping online, you can filter items in your search to easier find what you’re looking for. It’s these ‘patterns’ that are created by programmers that help to give you a better shopping experience.
We teach students to look for patterns inside their code. As they progress through our 25 coding levels they learn to review other students’ code to identify patterns, and can give suggestions for how to make it more efficient.
Hatch Studio: Teaching Students Lifelong Skills
Hatch Studio, our teaching-assisted software application, immerses students into full language programming from their very first lesson through programming fluency, for the fastest and most efficient coding education. It is custom-designed to allow students to progress on their own, in a step-by-step curriculum.
Students can choose their degree of learning support - from working on their own, private lessons, or team workshops.
Sign your child up for our two-week free trial and give them lifelong skills to shape their future.