Project Details
TENDER-BLOCK: Testing, Debugging, and Repairing Blocks-Based Programs
Applicant
Professor Dr. Gordon Fraser
Subject Area
Software Engineering and Programming Languages
Term
since 2018
Project identifier
Deutsche Forschungsgemeinschaft (DFG) - Project number 418126274
Visual, blocks-based programming environments like Scratch are increasingly used to introduce learners to programming concepts, and to enable domain experts, who are not professional software engineers, to create programs. Although this approach successfully lowers entry barriers into writing computer programs, the advanced toolkits of professional, text-based programming languages are usually not available on visual programming languages. To some extent, the reason for this is that manually analysing and solving problems is an important learning aspect and of high educational value. Albeit, this hardly justifies the complete absence of tool support, since there are many scenarios where the absence of such support leads to negative implications:From a learner's perspective, there are concerns about the programming and software engineering skills achieved in absence of any sense of quality, as is the case in the currently common learning scenario, and difficulties in solving programming challenges can get in the way achieving the intended learning outcomes in other domains (e.g., when programming is used as a tool to convey mathematical concepts).From a teacher's perspective, monitoring learning progress, supporting learners, and assessing and grading learning outcomes is challenging and tedious.From a user perspective, finding and fixing bugs, determining when a program is finished, whether it is working as expected, and what the quality of the implementation is, is down to intuition and manual exploration. This is particularly frustrating for novice and learning programmers, especially those attempting to engage with programming outside of a curricular activity, resulting in abandoned programming projects, as well as users losing interest in programming.The overall aim of this project is to enable essential software engineering techniques supporting testing, debugging, and fixing for blocks-based programming languages. To achieve this goal, the project will: (1) adapt essential static program analyses to blocks-based programs,(2) develop a concept and framework for testing blocks-based programs,(3) devise techniques to automatically test blocks-based programs, and (4) develop techniques to manually, interactively, and automatically debug and repair blocks-based programs.These techniques will be implemented and evaluated in the context of the Scratch 3.0 programming environment, and will enable further research on analysing blocks-based programs as well as integrating these analyses into an educational context.
DFG Programme
Research Grants