Recent developments in deep learning have resulted in code-generation models that produce source code from natural language and code-based prompts with high accuracy. This is likely to have profound effects in the classroom, where novices learning to code can now use free tools to automatically suggest solutions to programming exercises and assignments. However, little is currently known about how novices interact with these tools in practice. We present the first study that observes students at the introductory level using one such code auto-generating tool, Github Copilot, on a typical introductory programming (CS1) assignment. Through observations and interviews we explore student perceptions of the benefits and pitfalls of this technology for learning, present new observed interaction patterns, and discuss cognitive and metacognitive difficulties faced by students. We consider design implications of these findings, specifically in terms of how tools like Copilot can better support and scaffold the novice programming experience.
翻译:深度学习的最新进展催生了能够从自然语言和基于代码的提示中高精度生成源代码的模型。这很可能对课堂产生深远影响——现在,学习编程的初学者可以使用免费工具自动为编程练习和作业建议解决方案。然而,目前对初学者实际使用这些工具的交互方式知之甚少。我们首次开展了针对入门级学生在典型编程入门任务(CS1)中,使用代码自动生成工具GitHub Copilot的观察研究。通过观察与访谈,我们探索了学生对这项技术在学习中的益处与潜在风险的认知,发现了新的观察交互模式,并讨论了学生面临的认知与元认知困难。我们考量了这些发现的设计启示,尤其聚焦于Copilot这类工具如何更好地支持和构建初学者的编程体验。