Code puzzles can be an engaging way to learn programming concepts, but getting stuck in a puzzle can be discouraging when no help or feedback is available. Intelligent tutoring systems can provide automatic individual...
详细信息
ISBN:
(纸本)9781450368193
Code puzzles can be an engaging way to learn programming concepts, but getting stuck in a puzzle can be discouraging when no help or feedback is available. Intelligent tutoring systems can provide automatic individualized help, but they rely on having a robust and useful representation of student state. One common challenge for Intelligent tutoring systems in the programming domain is a large state space of possible students states. We propose a constrained set of features of student code based on detecting and classifying the bugs present in the code.
Using existing APIs properly is a key challenge in programming, given that libraries and APIs are increasing in number and complexity. Programmers often search for online code examples in Q&A forums and read tutor...
详细信息
ISBN:
(纸本)9781450356206
Using existing APIs properly is a key challenge in programming, given that libraries and APIs are increasing in number and complexity. Programmers often search for online code examples in Q&A forums and read tutorials and blog posts to learn how to use a given API. However, there are often a massive number of related code examples and it is difficult for a user to understand the commonalities and variances among them, while being able to drill down to concrete details. We introduce an interactive visualization for exploring a large collection of code examples mined from open-source repositories at scale. This visualization summarizes hundreds of code examples in one synthetic code skeleton with statistical distributions for canonicalized statements and structures enclosing an API call. We implemented this interactive visualization for a set of Java APIs and found that, in a lab study, it helped users (1) answer significantly more API usage questions correctly and comprehensively and (2) explore how other programmers have used an unfamiliar API.
Programmers frequently learn from examples produced and shared by other programmers. However, it can be challenging and time-consuming to produce concise, working code examples. We conducted a formative study where 12...
详细信息
ISBN:
(纸本)9781450356206
Programmers frequently learn from examples produced and shared by other programmers. However, it can be challenging and time-consuming to produce concise, working code examples. We conducted a formative study where 12 participants made examples based on their own code. This revealed a key hurdle: making meaningful simplifications without introducing errors. Based on this insight, we designed a mixed-initiative tool, CodeScoop, to help programmers extract. executable, simplified code from existing code. CodeScoop enables programmers to-scoop" out a relevant subset of code. Techniques include selectively including control structures and recording an execution trace that allows authors to substitute literal values for code and variables. In a controlled study with 19 participants, CodeScoop helped programmers extract executable code examples with the intended behavior more easily than with a standard code editor.
暂无评论