Skip to main content

Table 5 Types of programming challenges and scaffolds

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