The concept of Computational Thinking helped me see the teaching of coding in a completely new way. I was struggling to find a way to teach coding from an inquiry perspective, while at the same time ensuring students developed a strong foundation in basic principles. I wanted to avoid the rote teaching and practice of coding language, and instead engage at a deeper level with what coding is.
Framing the learning of coding from the perspective of computational thinking has helped me and my students really understand the essence of learning a computer code. There are several variations of computational thinking, but the one I'm following, and which is closely aligned with the IB computer science model, considers these four concepts:
- Algorithms: Understanding and creating rules
- Pattern recognition:
- Decomposition
- Abstraction
In the teaching of code, I've been emphasizing to students how computational thinking concepts can be applied to other areas of making. I shared the band Wintergaten's Marble Music Box, as an example of how computational thinking is employed to solve complex design problems.
Students watched the video and discussed where they saw loops, variables, patterns, and so on in the performance and the machine. They discussed how the designer might have used concepts like decomposition to create the machine.
Key to helping us understand and engage with computation thinking concepts were resources from Google and the BBC.
BBC's Bite Size site has a really engaging introductions to coding and computer science. We used this site to explore the concepts.
Google's Exploring Computational Thinking for educators does a great job of showing how CT can be applied to other areas of inquiry, and how features some great examples of lessons that apply CT to different contexts such as history, science, and geography--great examples of interdisciplinary learning.