Teaching Algorithmic Thinking: Take 2
Last semester, I taught new (to me) classes in sixth grade technology, during which time I set a goal of teaching the sixth-graders how to think algorithmically and how to program in Scratch.
I gave them a pre-test, and I taught the unit by weaving lessons about flowcharts and algorithms into a project during which they created a little video game. The video game was scripted and every kid created pretty much the same game. The warm-up lessons required some group discussion and problem-solving, mostly about troubleshooting or analyzing an algorithm I had written.
Then I gave the kids a post-test. I blogged about the pre-test and the rubric by which I scored it in an earlier post.
I decided to really change how I’m teaching the unit this semester for two reasons:
1) The post-test scores weren’t amazing. They were OK, but I expected more.
2) I solicited student feedback. While some of them enjoyed making the game I created and found it fun, an equal number said they would have enjoyed being more creative with a final project. I want to give that to my students, and I think they’ll learn more and own the learning better if they get a chance to be more creative with it, so I’m going to change.
This semester, I’m teaching the class with three mini-projects on three concepts related to computer science: variables, conditionals (if/then decisions), and loops. After the three mini-projects, the students will be able to make their own creative final project that uses all three.
The first mini-project was on variables. Sixth-grade is when many students really learn about variables in any depth in math class. They explore percents, fractions, and equations and expressions. I created a few lessons and a mini-project that would tie in to what they did in math class. Here’s the lesson!
VARIABLES IN SCRATCH lessons and mini-project
I’ll know more when I administer my post-test, but I was pleased with how this lesson went. I noticed students working with variables comfortably once they had processed the math operations that needed to be done.
In the coming days, I’ll also write about the next two mini-lessons – if/then blocks and loops – and a final project for the kids. I’m hopeful that I’ll see the students become more comfortable with how computers work with information and use algorithms to solve problems.