WatChat: Explaining perplexing programs by debugging mental models

要約

多くの場合、プログラムの予期しない動作の適切な説明は、プログラマのコードのバグです。
しかし場合によっては、プログラマが使用している言語のメンタル モデルにバグがあるという方が、さらに適切な説明になることがあります。
現在のコードを単にデバッグする (「プログラマーに魚を与える」) のではなく、ツールがメンタル モデルを直接デバッグできる (「プログラマーに魚を教える」) としたらどうなるでしょうか?
この論文では、まさにそれを行うために、計算認知科学のアイデアを適用します。
複雑なプログラムを考慮して、プログラム合成技術を使用して、ユーザーがプログラムの動作に驚かされる可能性のある潜在的な誤解を自動的に推測します。
これらの誤解を分析することで、プログラムの動作についての簡潔で役立つ説明を提供します。
私たちの方法を逆にして、生徒の誤解を診断し修正するための教育的なサンプル プログラムを合成することもできます。

要約(オリジナル)

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.

arxiv情報

著者 Kartik Chandra,Tzu-Mao Li,Rachit Nigam,Joshua Tenenbaum,Jonathan Ragan-Kelley
発行日 2024-03-08 14:10:25+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.AI, cs.HC, cs.PL パーマリンク