Code-recommendation systems, such as Copilot and CodeWhisperer, have the potential to improve programmer productivity by suggesting and auto-completing code. However, to fully realize their potential, we must understand how programmers interact with these systems and identify ways to improve that interaction. To make progress, we studied GitHub Copilot, a code-recommendation system used by millions of programmers daily. We developed CUPS, a taxonomy of common programmer activities when interacting with Copilot. Our study of 21 programmers, who completed coding tasks and retrospectively labeled their sessions with CUPS, showed that CUPS can help us understand how programmers interact with code-recommendation systems, revealing inefficiencies and time costs. Our insights reveal how programmers interact with Copilot and motivate new interface designs and metrics.
翻译:代码推荐系统(如Copilot和CodeWhisperer)通过建议和自动补全代码,具有提升程序员生产力的潜力。然而,要充分发挥其潜力,我们必须理解程序员如何与这些系统交互,并找出改进交互方式的方法。为此,我们研究了GitHub Copilot——一个每天被数百万程序员使用的代码推荐系统。我们提出了CUPS,一个用于描述程序员在与Copilot交互时常见活动的分类体系。我们对21名程序员进行了研究,这些程序员完成了编码任务并基于CUPS对其会话进行了回顾性标注。研究结果表明,CUPS能够帮助我们理解程序员如何与代码推荐系统交互,揭示低效环节与时间成本。我们的洞察揭示了程序员与Copilot的互动模式,并为新型界面设计与评估指标提供了启示。