I’ve had to made a lot of key additions since my previous version!
It’s taken a couple of revisions, but I’ve finally developed a solid formative assessment for fourth thru sixth grade student understanding of decomposition in Scratch! Young students, or any novice coding student for that matter, typically struggle with reading and understanding code–even code that they’ve written themselves. Decomposition, the computational thinking process that is used to break something large into smaller pieces, should give students practice identifying the smaller chunks of their program to use as guideposts for reading and understanding their code, allowing them to make better logical jumps from one part of code to another, instead of the more random, less informed jumping around that novices exhibit.
I described the basic idea briefly in a previous post: I would first have students decompose a written story and then have them employ the same process with code. Since then, based on good peer feedback, I have had to develop the greater context surrounding the single assessment and identify additional applications of decomposition in coding practice to repeat, emphasize, and ensure understanding of the primary learning goal: to understand how to apply decomposition across the spectrum of coding practices.
The first application of decomposition would be in the context of adding new code to an existing project–the reading comprehension that I had already described (decomposing code). The second application of decomposition would be in the context of debugging and identifying the different parts of program behavior as it runs (decomposing program behavior). The final application of decomposition would be in the design of a program and identifying major sections of needed code before any code is written, to guide the implementation of a program (decomposing design). The emphasis on decomposition in all three lessons will go much farther in clearly communicating its importance as a learning goal than its use in a sole assessment will have.
Also based on feedback, I have also had to develop a more detailed plan for…feedback. Under the assumption that students will struggle with both the unfamiliarity of decomposition and code reading comprehension, I plan to give detailed explanations and reasons for why code should be decomposed in certain ways–showing them what makes for a good chunk, how to better summarize or explain code behavior in a chunk, and then identify that behavior with a short phrase or name. I shouldn’t expect students to pick this up right away; that always gets me into trouble in the classroom!
The final addition to the design of my formative assessment was to figure out what tools students should use for decomposition. Although Scratch offers the ability to include comments in code, there is no way to visually circle or bracket sections of code in Scratch with digital drawing tools. There is a fairly easy solution: take screenshots of the code, and then have my students annotate the code with pen and text using either Preview on Mac or Microsoft OneNote on Windows; or for a distance learning solution, OneNote or Google Jamboard, which can be shared between teacher and student.
These three additions to my formative assessment: defining the place of the assessment in an entire unit on decomposition, considering the finer details of the feedback my students would likely need, and researching what digital tools would assist in students understanding were essential in the full development of an assessment that students can use to understand and develop both their decomposition skills but their code reading comprehension. I am excited to try this out!