WatChat: Explaining perplexing programs by debugging mental models
arxiv(2024)
摘要
Often, a good explanation for a program's unexpected behavior is a bug in the
programmer's code. But sometimes, an even better explanation is a bug in the
programmer's mental model of the language they are using. Instead of merely
debugging our current code ("giving the programmer a fish"), what if our tools
could directly debug our mental models ("teaching the programmer to fish")? In
this paper, we apply ideas from computational cognitive science to do exactly
that. Given a perplexing program, we use program synthesis techniques to
automatically infer potential misconceptions that might cause the user to be
surprised by the program's behavior. By analyzing these misconceptions, we
provide succinct, useful explanations of the program's behavior. Our methods
can even be inverted to synthesize pedagogical example programs for diagnosing
and correcting misconceptions in students.
更多查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要