How to Assess “Computational Thinking”?
In my 6th grade technology class, one of my most important goals is to help the kids develop “Computational Thinking” or “Algorithmic Thinking”. Students should be able to analyze a problem, such as the behavior of a video game character, and describe it as a set of rules that a computer can follow. In middle school, I want this to include basic programming structures: variables, branching, and looping.
Relevant CSTA standards :
CSTA:L1:6:CT.2 Develop a simple understanding of an algorithm (e.g., search, sequence of events, or sorting) using computer-free exercises.
CSTA:L1:6:CPP.6 Implement problem solutions using a block-based visual programming language.
The first big question was “How do I assess compuational thinking?” I wanted pre- and post-test data to compare, and I needed a test that would be quick to administer and easy to grade that offers decent information on how well students understand an algorithm. A quick online search turned up this study on measuring computational thinking in middle-schoolers, and I decided to base mine on the same idea. The “Fairy Assessment” mentioned in the study tasked students with adding to an already-existing program in Alice to give fairies certain behaviors under certain conditions. I decided to give students two tasks: A simple analysis task to tell me what a snippet of a Scratch script did, and a simple creation task to fill blocks in with missing actions given rules for what a cat character needed to do.
Since my school does standards-based grading, I use basically the same standards-based rubric for everything. I went through each assessment and coded the analysis task and the creation task with a 1-4 score. This is the guide for scoring.
|1 = Beginning – shows little understanding of concept||2 = Partially Proficient – shows some understanding of concept with some misconceptions||3 = Proficient – shows understanding of concept with a few mistakes but no major misconceptions||4 = Advanced – shows fluent understanding of concept with transfer to other areas|
Next, I went through my papers and identified some anchor papers for each score. This wasn’t hard, as I didn’t have very many papers that scored over a 1! Many were like this.
What follows is a gallery of some of the anchor papers and how I justified my scores. This also helps me identify some of the misconceptions I’m going to see students run up against as they learn how to program a computer.
When I graded all of my pre-assessments, this is what I ended up with for all of my 6th grade students.
|Students: 89 total||Ones||Twos||Threes||Fours||Average|
Some common misconceptions I ran into that I’ll need to watch as we go through the unit:
– Not understanding that one block = one instruction
– Not knowing what variables represent or keeping track of more than one variable
– Changing variables, assigning variables, substituting values in place of variables
– Not understanding what a Repeat block does
– Not understanding “if” and especially nested “if” statements
– Not seeing that instructions are run one at a time, starting at the beginning and following an order of execution
– Not understanding that the instructions inside a Repeat loop can do something different each time depending on values of variables and conditional statements
– Thinking of the narrative of a game instead of rules that are followed
And then there are general thinking and problem-solving and self-esteem issues like:
– Not actually reading the prompt on an assessment
– Not answering all parts of a question
– Being sad about not understanding a pre-assessment
– Not writing in complete thoughts, let alone complete sentences
– Getting lost and giving up and lacking strategies to understand the text
All challenges of teaching 6th grade. I have a quarter to get the kids on the path to thinking like programmers. I promise it won’t be boring!