Every now and again, you write a blog post that you know will upset some folks. This may well be one of them although I’m not specifically challenging any of the assumptions on a personal level, but more on the practical and logistical level.
I’m reminded of the concept a former superintendent drilled into me. “Plan with the end in mind.” And, he was fond of putting me on the spot with one word. “Why”.
I was inspired for this by a post from Alfred Thompson. “What will go if we teach CS?“. In his post, he was inspired by Katie O’Shaughnessey who had posted “Day -1: #cs50bootcamp: It’s all about scheduling in schools… what will go if we teach CS?“. Both articles are definitely written from the secondary school perspective. They address the concern about where in the life of a student would you fit a compulsory course in Computer Science into the school day. At present, it’s an elective in most schools and you know what – I’m OK with that. Even the logistics of trying to find enough qualified teachers to teach the course(s) and then somehow find reliable computers on which to code is daunting, much less worry about the other legitimate issues that they’ve identified.
Just like I certainly wouldn’t have liked to have had a particular course rammed down my throat, not everyone is ready to take on the rigour of a full-blown Computer Science course in their teen years. Leaving it as an elective makes it an option for those who really want to take the course. Having said that, I do believe that coding is a valuable skill that all students need to have but they need it long before they hit secondary school.
So, let us take a look at the elementary panel. In the past while, there most definitely has been some real excitement and traction in coding through the Hour of Code initiative. I’ve put together a collection of resources in a Flipboard document here. Here, well meaning people and organizations have put together a wonderful collection of activities to introduce students to the concept of coding. The initiative has started some thinking and discussion but has some serious flaws if the goal is to make significant change.
- Not every teacher gets involved;
- It’s just an hour with little or no followup;
- The activities are largely unrelated to anything in the curriculum.
But there have also been great successes with coding clubs and followup in some classrooms. It’s not the intent to belittle those efforts. But as long as they are isolated activities in a few classrooms, it’s good (really good) for those particular classes and that’s about it. I also recognize that great initiatives such as robotics have started with the efforts of excited and dedicated educators but there was a target. Where’s the target here?
Standing back, one has to ask – how can you make something as important as coding relevant for all students? Where does it naturally fit into an already excellent Ontario Curriculum? In my mind, it only makes sense that it becomes an integral part of the Mathematics Curriculum. Currently, there are five strands being taught.
- Number Sense and Numeration
- Geometry and SpatialSense
- Patterning and Algebra
- Data Management and Probability
I would suggest formally adding an additional strand “Computational Thinking and Coding”.
Computational thinking isn’t a foreign concept to the mathematics curriculum. “Computational strategies” is already specifically identified. I would suggest that coding strategies where students work towards developing solutions is a perfect fit. I know through talking with teachers who are already coding with their students that they hang their hat on that when challenged with the “why”. The real advantage is that they either already have or have taken the time to learn the key concepts. It’s an add-on but they’ve seen the value.
While the concept fits nicely into the mathematics area, we know that excellent teachers apply the concepts where they fit. I had a teacher tell me once “We integrate everything”.
In discussions like this, the question of what language is best for this always arises. It’s interesting to sit back and strike a list of languages that I’ve used in the past. (Actually, kind of humbling.) At university, it seems like courses were often differentiated by the language. I think that it’s important to choose an application that works on a variety of platforms, phones, tablets, computers, and that scales with the skill development of the student. Right now, I think that TouchDevelop certainly fits that bill.
In the new strand for Computational Thinking and Coding, there needs to be support for the classroom teacher. I would suggest that the first textbook or support materials for current textbooks from a reputable publisher would seal the deal. If you haven’t, you need to read Douglas Rushkoff’s Program or Be Programmed. Nothing speaks better to the topic.
Imagine a graduating class from an elementary school who have coding skills, coupled with computational thinking and all of the other strands from the mathematics curriculum. As noted in Alfred’s post, why not let student vote with their feet? Those who have the skills and see the benefits of learning to more formally program are now ready and prepared for the secondary school courses. They’re not flying blindly into the unknown. They’re in a position to make an informed choice in their course selection. If they elect not to select Computer Science, at least they’ll have a number of years of background in computational thinking and coding. It’s a valuable skill and only grows in value as they acquire devices and wish to master them.
They really can’t lose.
Thanks, Sylvia Duckworth.