Computational Thinking and Robotics

Yay, we’re talking about my teaching specialty this week! I can finally feel like my skills are valuable in the library learning commons!

Computational thinking and robotics are somewhat strangely arranged in the BC curriculum as we move from grades 6-12. This post will discuss where the terms appear in the curriculum and then discuss some of the eccentricities of computational thinking and robotics in the curriculum.

Overview

From grades 6-9, computational thinking and robotics are both optional modules for ADST (with robotics lumped in with electronics in grade 9). The focus of the computational thinking is on programming processes and algorithms, whereas the robotics curriculum is more focused on physics, circuits, and mechanical systems. There is some minor overlap (can’t control most robots without programming!).

Computational thinking is a part of the Computer Studies 10 curriculum, but is not mentioned by name anywhere in the ADST curriculum after grade 10. Computer Science 11 and 12 (mathematics courses) and Computer Programming 11 and 12 (ADST courses) contain mentions of computational thinking.

Robotics appears, unsurprisingly, in the Robotics and Electronics 10 and Technology Explorations 10 curricula, and again in the Robotics 11 and 12 and Engineering 11 and 12 curricula. The focus in these curricula continues to be on the mechanical aspects of robotics, with little emphasis on programming for embedded systems.

Thought #1: Robotics and Computational Thinking are Silo’d

It’s important to note that, just because the words “computational thinking” and “robotics” aren’t used, this doesn’t mean other courses don’t include the principles of those topics.

The robotics courses in the curriculum do include bits and pieces that are computational thinking-adjacent, such as “programming for microcontrollers”, but there is little on key principles like abstraction, decomposition, pattern recognition, etc. Any electrical or mechatronics engineer will tell you that programming and algorithm design are a key part of the process of designing complex robotic systems. Unfortunately, the onus is on the teacher to introduce computational thinking in any meaningful way in these courses, as “coding” is not the same as understanding algorithm design.

By the same token, there are snippets of robotics in the Computational Thinking curriculum from grades 6-9. The popularity of platforms like Micro:bits, Arduino, and Lego Mindstorms show that physical computing is a powerful tool for learning computational thinking and design principles, alongside understanding the mechanics of the devices that our code is running on. I use them extensively in my computer programming classes (and as a cross-curricular tool in my science and math classes). It is again on the shoulders of the teacher to make the choice to introduce robotics and physical computing into their classroom.

I feel like the BC curriculum is well suited to breaking out of these silos by mixing and matching content and competencies. I feel strongly that there is value to computational thinking as a life skill, even outside of computing contexts.

Thought #2: Systems and Theory

A professor once told me that there are two kinds of people in computer science: systems people and theory people. The systems people want to build practical programs that people can actually use in the real world. The theory people want to figure out an algorithm for dining philosophers to share their forks. The world needs both types of people. The senior computing curriculum has two courses: a systems course and a theory course.

The senior computing curriculum is divided between Computer Programming (an ADST course) and Computer Science (a math course that most schools won’t offer because university programs ask for Pre-Calc). Both course streams include computational thinking principles (although I would say that the Computer Science curriculum places more emphasis on them). Computer Programming includes a lot of talk about design processes, but also talks about decomposition, algorithm design, and general computational thinking processes. Computer Science is mostly built around computational thinking principles, but includes some topics that I would hope most Computer Programming students would learn, like data types, scope, logical operators, and control flow. An ideal programming course would include content and competencies from both.

I’d be very curious to know how many schools are actually offering Computer Science 11/12 as a math elective and how many Computer Programming teachers are just pulling content from that curriculum informally.

Thought #3: Computational Thinking Illustrated

I really like this resource, it has my Former Computer Engineering Student Stamp of Approval, but I wonder what universe they’re living in that they think it’s appropriate for primary students.

Questions for Discussion

Is it enough to expect that teachers will use professional judgement and introduce computational thinking/robotics into other areas? Would having the government more actively encourage cross-curricular learning be seen as infringing on teachers’ rights to classroom autonomy?

Sources

I must have visited half the curriculum website today, so for the sake of brevity, I’m just going to cite the whole website. Forgive me, professor, I am but a humble and very sick human.

Chun, B. & Piotrowski, T. (n.d.) CT Illustrated. Retrieved from https://codebc.ca/wp-content/uploads/2017/04/computational-thinking-illustrated.pdf

Ministry of Education. (n.d.). Curriculum. Retrieved from https://curriculum.gov.bc.ca/

Leave a Comment

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