For the last year I've been, in addition to teaching physics, a budding computational thinking teacher. I had a hand in building course outlines and plans for new one trimester courses for our 6th grade, 8th grade, and 10th grade that are now graduation requirements, and in two of the courses that are available as options to fulfill a requirement to take a second trimester in high school.
My primary role this year is in teaching the two option courses, one focusing on Data analysis, the other on AI and Machine Learning. The first thing everyone asks about these courses is, "What is computational thinking?", which is a pretty good question. There's been some criticism of the "computational thinking thing" from the computer science education research community, which I'll try to engage with later as I think they have some good points. But here's my take on what we want students to get out of our courses:
- A first experience with programming / computation
- An opportunity to use computation to engage with "real" problems
- Enough of an idea of what computation is and how it is used to be able to ask good questions about the implications of computation for their lives and for the future. Good citizenship.
There's a lot of detail and nuance hidden withing these three, of course, that also bear teasing out. Some of the big questions around these are about how far to take each of these three, what tools to use, how to sequence skills and concepts through the courses, how to assess effectiveness, how to address learning differences and experience differences, how to strive for equity.
This is hard. As a physics teacher I think I've gotten pretty good at the pedagogical content knowledge of my field. I know what my students are going to struggle to understand, and I usually know why they will struggle. I know a bit about how to teach for transfer and how to help them navigate their fears and misconceptions.
But CT / CS is much harder to teach than physics. There is an absolutely enormous range of student experience level in the domain. The details of every task and program implementation seem so specific and opaque to the beginner students that nothing transfers. Student fears and misconceptions are real and significant barriers, and I don't understand all of them (yet).
It has been an interesting challenge and it's going to continue to require a lot of effort to meet the 3 big goals while addressing the nuance questions.