Designing a Supportive IDE to Help Novices Recognise and Recover from Programming Misconceptions

International Computing Education Research Workshop(2022)

引用 0|浏览0
暂无评分
摘要
BSTRACT Popular Integrated Development Environments (IDEs) provide features such as syntax highlighting, warnings, and error messages to help programmers find and fix bugs and write cleaner code. Although these tools are available to programmers of all levels, they are designed with the assumption that IDE users know how to code. We present a new project to develop IDE features for novice programmers who may have missing, incomplete, or incorrect understanding of the code constructs they use. We are developing tools for mainstream IDEs that help learners diagnose and recover from misconceptions. Several purpose-build IDEs are available for novices e.g. [2, 8, 12, 17]. Although these tools can be effective, they typically lack the rich features of standard IDEs [18]. One argument for the use of specialised IDEs is that the complexity of standard IDEs can overwhelm beginners. However, research has shown that this may not be the case [18]. Like [10], we believe that embedding support for novices directly in existing IDEs is a promising research direction. We have built a library to detect 18 task-independent symptoms of misconceptions in Python code. Where prior work has focused on identifying and categorising errors e.g. [1, 3, 4, 7, 9, 11, 13, 14, 16], we focus instead on the detection of symptoms, where symptoms are patterns in statements or blocks of code that indicate a possible misconception. This is similar to the notion of constraints in constraint-based modelling [15]. We distinguish symptoms from misconceptions because different misconceptions may exhibit the same symptoms. For example, an undefined variable is a symptom. Depending on the presence of other symptoms, it could indicate a misconception about variable values or scope, syntax of function calls, or it could just be a typo. Symptoms are also distinct from errors as misconceptions may be apparent in code that produces correct output. The symptoms were derived from analysis of a dataset of 1332 Python programs written in an introductory programming course. Expanding the focus from errors to the broader concept of symptoms gave us a novel view of beginners’ misconceptions. A finding of particular interest was that four of the five most frequent and persistent symptoms in our dataset signalled clear misconceptions but did not lead to errors, meaning they would be missed by analyses focusing on mistakes. Three of those four are not picked up by existing IDE features, which suggests they are good targets for our design work. Our library enables us to automatically detect symptoms of misconceptions; next comes the more challenging task of designing interventions to help learners recognise, understand, and recover from those misconceptions. Guided by existing design recommendations [5, 6, 10], we have begun to explore how the built-in capabilities of popular IDEs can be extended. To support the design process, we are conducting a diary study with beginner programmers to gain insight into how they monitor and assess their own understanding of programming concepts. This will be followed by a co-design workshop to inform the design of new IDE features.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要