From: Identifying middle school students’ challenges in computational thinking-based science learning
Types of challenges | Description | Kinematics unit examples | Ecology unit examples | Scaffolds provided |
---|---|---|---|---|
Challenges with semantics and execution of domain-specific primitives | Difficulty understanding the functionality and role of various visual primitives and their execution semantics | Difficulty understanding how “right_”, “speed up” blocks work and how to use them correctly | Did not occur | Step through the code and explain the functionality of primitives by showing their behavior in the E-World; explain correct syntax for primitives |
Challenges with computational primitives like variables, conditionals, nesting, and loops | Difficultly in understanding the concept of variables, iterative structures or loops, conditionals, and how and when to nest conditionals within other conditional statements | Difficulty coordinating loops and turn angles to generate shapes, understanding what it means to increase the speed by the “steepness” variable | Difficulty with conditionals and nesting conditionals to represent multiple preconditions which needed to be satisfied simultaneously | Explain concept of a variable using examples; explain syntax and semantics of loops and nested conditions using code snippets and their enactment |
Procedurality challenges | Difficulty specifying a modeling task as a finite set of distinct steps, and ordering the steps correctly to model a desired behavior | Did not occur | Difficulty specifying behaviors like eat, breathe as a computational structure made up of a small set of primitive elements | Prompt students to describe the phenomena and break the phenomena into subparts and the individual steps within each subpart |
Code reuse challenges | Difficulty identifying already written similar code to reuse and understanding which parts of the similar code to keep intact and which to modify | Did not occur | Difficulty understanding that “breathe” procedures for Nitrosomonas and Nitrobacter bacteria are similar and can be reused | Prompts encouraging analogous reasoning; making students think about what similar procedures they have already written |
Modularity challenges | Difficulty in separating the behavior of the agents into independent procedures such that each procedure executes only one functionality or aspect of the desired agent behavior, independent of other functionalities in other procedures, along with difficulty remembering to call/invoke each of the procedures from the main procedure or program | Did not occur | Difficulty modeling the fish “eat” and “swim” behaviors separately in different procedures (though eating and swimming together is possible in real life, modeling calls for distinct procedures); forgetting to call procedures from the main “Go” method | Prompt students to think about which function/behavior they are currently modeling and whether their code pertains to only that function |
Debugging challenges | Difficulty in methodically identifying “bugs” or unexpected outcomes in the program, determining their underlying causes, removing the bugs, and testing to verify the removal of the bugs | Difficulty testing and correcting behavior of one rollercoaster segment at a time | Did not occur | Prompt students to walk through their codes and think about which part of their code might be responsible for the bug; help break down the task by trying to get one code segment to work before moving onto another |