Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

张倩、小舟机器之心编译

让学生免费用的Copilot,即将沦为编程考试作弊神器

做作业或考试时,你能忍住不去用电脑里已经安装的这款代码补全神器吗?

Copilot 是由微软、OpenAI、GitHub 三家联合打造的 AI 编程辅助工具。今年早些时候,Copilot 已被集成到 Visual Studio 2022 中。此外,GitHub 还有一个专门的校园计划,可以让学生免费获取这款编程神器。

不过,负面效应接踵而至:Copilot 在一项测试中展示出强大的能力,以至于它可能被用作编程考试作弊工具。

来自马萨诸塞大学阿默斯特分校计算机科学系的教授 Emery Berger 本月早些时候发表了一篇博文警告教育工作者,他说,「配备 Copilot 的学生就好像自备神器参加编程考试。」
图片
假设你让 CS 的入门学生写一个迭代的 Python 程序,输出从 1 到 N 的所有数字的和。拥有 Copilot 的学生只需要将问题语句作为注释复制并粘贴到 IDE 中,然后输入函数定义「def output_sum(N):」并按 Tab 键就可以获得剩下的内容(加粗部分都是 Copilot 生成的)。

他担心 Copilot 将使传统的编程练习变得毫无意义,因为 Copilot 知道所有答案。

「据我所知,Copilot 已完成所有入门级编程任务的专门训练」,Berger 写道。

Berger 还嘲讽地写道:对于使用 Copilot 的学生,教育工作者不妨将他们的课程目标描述为「按下 Tab 键」,因为只需要这样一个简单的操作,学生就能借助 Copilot 很容易地生成代码,完成编程题目。

Berger 举例说明了这种情况,下图代码中粗体部分都是 Copilot 自动补全的,Berger 只手动输入了函数名和参数

图片

编程在许多计算机科学课程中都扮演着重要角色,尤其是在计算机科学入门课程中,入门级编程题目包括数字排序、找到斐波那契数列的第 n 个元素等。而这些简单的编程题目似乎难不倒 Copilot。

Berger 说 Copilot 不同于在 Stack Overflow 和其他互联网编程资源上搜索答案。因为后者搜索到的代码答案,老师也可以搜索到,并且可以使用抄袭检测器测试学生提交的代码。

而 Copilot 「实际上是产生了新的解决方案。尽管新方案不会非常优秀,但它看起来和搜索到的答案有足够大的差异,以至于让老师误解代码是学生自己完成的。」

因此,Berger 认为与编程相关的教学方法急需改进,并提醒我们:不能掩耳盗铃,假装这种「作弊」不存在。

「如果你认为每个人都会克制自己,不去用安装在电脑上的这个作弊神器,那真的很不合理,或者说很不负责任。它的诱惑太大了。实话实话,可能在不久的未来,软件开发就会变成这个样子。」

Berger 承认 Copilot 很有用。他说,开发人员想要使用该软件是有道理的。

「当然,从评估的角度来讲,我们可以要求大家在不能用 Copilot 的环境下考试。就像要求小学生在做基本算术题时不能用计算器一样。」

他在伊利诺伊州的一个同事描述说,他们用的计算机是考试专用的,锁定了一些功能,所以学生们是在一个受控的环境中参加测试的。他建议说,这些措施,再加上口试之类的方法,可以帮助降低 Copilot 带来的一些负面影响。

Berger 还发现,Copilot 也有一些积极的方面,比如填写样板文件和实现 API 的能力。

「我觉得记住那些 API 的繁琐细节没有什么意思,那不是我们应该教或关注的东西。你知道创建具有这些特征的 DataFrame 的确切语法吗?我不在乎。如果你能在 Google、Stack Overflow 上找到这些内容,或者按一下 Tab 键它们就能出来,我觉得这样就很好。」他说。

尽管如此,他还是认为,对于教育工作者来说,确定学生确实在学习手里的材料还是很重要的,这可能意味着在计算总分时,要重新考虑用「Copilot」可以解决多少课后作业。

Berger 说,现在就说 Copilot 对学生产生了影响可能还为时过早,因为这款软件才刚刚对公众开放了几个月。但他认为,用不了多久,它的影响就会显现。

「我对此持乐观态度,」Berger 说,「但我认为,我们至少要考虑到这一点。我觉得还没有那么多的教育工作者意识到这是多么大的一场革命。」

参考链接:
https://www.theregister.com/2022/08/19/copilot_github_students/
https://itnext.io/coping-with-copilot-b2b59671e516
理论代码补全Copilot
相关数据
参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

算术技术

算术(英语:arithmetic)是数学最古老且最简单的一个分支,几乎被每个人使用着,从日常生活上简单的算数到高深的科学及工商业计算都会用到。一般而言,算术这一词指的是记录数字某些运算基本性质的数学分支。

推荐文章
暂无评论
暂无评论~