Improving Scratch Programming with CRC-Card Design
Scratch and other block-based programming environments are popular and successful in engaging young learners with basic concepts of programming. It is common, and intentional, that programming with Scratch is done using an explorative tinkering approach, where blocks are selected from toolboxes and assembled. However, this type of bottom-up programming behaviour is generally associated with code quality issues, makes it difficult to create more complex programs, and may impede the learning of fundamental concepts. In order to investigate whether a more structured approach is feasible, we adapted the object-oriented design methodology of CRC cards (class-responsibility-collaboration) to Scratch programs, such that learners first plan the central aspects of their programs (i.e., the sprites and their interactions), before writing the code. We applied this methodology in the context of a pilot study with two school classes to investigate how this affects the students and their resulting projects. The results of this initial investigation suggest that students are not deterred by the additional design work, and we observed a slight improvement in the completeness and correctness of the resulting programs.