整理 | 苏宓

出品 | CSDN(ID:CSDNnews)

自 2021 年 6 月,微软发布 AI 代码建议工具 GitHub Copilot 以来,业界关于它的争议就没有断过。

这不,继Copilot 相继宣布收费、代码版权引发软件自由保护协会怒批之后,来自美国马萨诸塞大学阿默斯特分校计算机科学教授 Emery Berger 发表了一篇《Coping with Copilot》的文章,警告教育工作者,基于人工智能的开发工具正在向你的作业“开炮”,抵抗是徒劳的。同时,他还比喻道,「携带(Copilot)的学生正在把 Uzis(冲锋枪)带到一场刀战中」,而 Copilot 本身也将变成作弊的有利工具。

为了验证自己的观点,Emery Berger 还举了几个例子加以说明,我们不妨一起来看看。

写一下函数名,就能生成所有的代码

在Emery Berger 看来,使用 Copilot 工具,学生们可以立即生成自动完成的代码解决方案。

对于学生自身而言,他们只需要给出问题陈述,或者给出函数名称,甚至只需要盯着屏幕就行,编程就能轻轻松松搞定。

举个例子,假设让一位 CS(计算机科学)入门的学生编写一个 Python 程序,输出需要实现 1 到 N 所有数字的总和。前提条件是,“我们计算机科学家非常讨厌 O(1) 闭式解决方案(斐波那契,我正在看着你),总得让 CPU 忙起来”,Emery Berger 说道。

按理来说,通常情况下(除非班级中有 Carl Friedrich Gauss 德国数学家这样聪明的人),学生们都需要试着写一些代码来实现,甚至需要静下心来思考一下。

不过,Emery Berger 表示,“这对于拥有 Copilot 的学生来说,并不会发生这样的苦差事。他们只需要将问题陈述作为注释,复制并粘贴到 IDE 中,然后输入函数‘def output_sum(N):’,再按一下 Tab 键就可以得到想要的内容(如下面代码中 3-6 行的所有内容都是由 Copilot 生成的)。”

1#?A?Python?program?that?outputs?the?sum?of?all?the?numbers?from?1?to?N.
2def?output_sum(N):
3??sum?=?0
4??for?i?in?range(1,?N?+?1):
5????sum?+=?i
6return?sum

至于如果可以用闭式的解决方案(closed form solution),Copilot 同样可以迅速解决这个问题,其中只需要重新命名一下这个函数就行了(第 2 行是由 Copilot 自动生成):

1def?output_sum_closed_form(N):
2??return?N?*?(N?+?1)?/?2

为了慎重起见,Emery Berger 还使用了封闭形式的斐波那契进行了测试(第 2-3 行,是由 Copilot 自动生成):

1def?fibonacci_closed_form(N):
2??#?recursion,?schmecursion
3??return?((1?+?5?**?0.5)?/?2)?**?N?/?5?**?0.5

整体看来,GitHub Copilot在所有的入门编程作业上都接受过专门培训。

Emery Berger 教授称,“每次为了训练 Copilot,安排它编程作业时,这款工具都会激动地流‘口水’,甚至会喃喃自语:我知道那个,这是解决方案,请再给给一个作业吧。”

因此对于使用 Copilot 工具的学生来说,与其将编程作为他们课程的目标,倒不如说直接他们的课程目标是“点击 Tab 键”(这是指根据对所需输出的描述来生成代码的按键命令),因为在下面所有的黑色加粗代码都是由 Copilot 自动生成的,其中只需要输入函数名称和参数就可以实现所有代码:

1def?depth_first_search(tree,?node,?visited):2??visited.add(node)3??for?child?in?tree[node]:4????if?child?not?in?visited:5??????depth_first_search(tree,?child,?visited)6def?quicksort_random_pivot(l):7??if?len(l)?<=?1:8????return?l9??pivot?=?random.choice(l)
10??left?=?[x?for?x?in?l?if?x?<?pivot]
11??middle?=?[x?for?x?in?l?if?x?==?pivot]
12??right?=?[x?for?x?in?l?if?x?>?pivot]
13??return?quicksort_random_pivot(left)?+?middle?+?quicksort_random_pivot(right)
14def?dijkstra(g):
15??dist?=?{}
16??for?v?in?g:
17????dist[v]?=?float(‘inf’)
18????dist[g[0]]?=?0
19??while?True:
20????u?=?min(dist,?key=dist.get)
21????if?dist[u]?==?float(‘inf’):
22??????break
23????for?v?in?g[u]:
24??????if?dist[v]?>?dist[u]?+?g[u][v]:
25????????dist[v]?=?dist[u]?+?g[u][v]
26??return?dist

与此同时,Copilot 在今年 6 月宣布的付费政策中,以每月 10 美元(人民币约 67 元)或每年 100 美元(人民币约 669 元)的价格出售,并提供 60 天的免费试用期。值得一提的是,收费群体是有限制的,其中通过身份验证的学生和热门开源项目维护者可以免费使用。

这更有助于学生群体将 Copilot 集成到自己的 IDE 中。

假装所有的代码都是学生自己写的?

EmeryBerger教授担心 Copilot 将使传统的编程练习变得毫无意义,因为只要通过 Copilot,学生就知道所有的答案,但并不能记住编程的方式。他说道,“编程在很多计算机科学课程中起着作用,特别是在计算机科学入门课程中”。

因此,编程对于锻炼学生技能而言,尤为重要。但是身为老师,虽然不希望学生使用 Copilot,但是往往防不胜防。因为 Copilot 与在 Stack Overflow 和其他互联网编程资源上搜索答案不同。

“有些编程问题,你已经可以在网上找到代码的例子”,EmeryBerger说道,“但是你知道,老师也可以在谷歌上找到它们,然后用抄袭检测器将这些代码与学生提交的代码进行比较。”

然而,现如今Copilot 是不同的。Copilot 实际上生成的解决方案。虽然谈不上是天才、复杂级别的方案,但是它带来的代码与网络上提供的还是有很大不同的,表面看起来,极有可能出自学生之手,老师根本无从分辨。

因此,EmeryBerger 教授认为,与编程有关的教学方法需要调整。他在文章中调侃道,「用手堵住我们的耳朵,然后假装 Copilot 不存在的同时,老师不断做心理暗示,称剽窃的情况不存在、互联网不存在,一切都是学生真实做的」。

对于开发者有利的 Copilot,弊端会在下一代编程初学者身上体现

事实上,所有事情都有两面性,这并不意味着 Copilot 完全不能用。

对于 Copilot 本身,它由 OpenAI 研发的新 AI 系统 Codex 提供支持,Codex 是 GPT-3 的延伸版本,该模型接受过公开源代码和自然语言的训练,因此它理解编程和人类语言。同时,它已经接受过数十亿行公共代码的训练,在其内部建立了很多安全机制来保证开发者能够生成安全、高质量的代码。

对于开发者而言,Copilot 的确有用,还极大地提升了开发效率,但是对于学生群体而言,好比连基础的算术都没有学会,遇到算术问题就拿起了计算器一样,早期学习时,应该强制学生不可以使用 Copilot 等工具。

否则,“如果你关心编程的过程完整性,那么 Copilot 实实在在就是一款作弊机器。就像有人给你作业的答案,你只需要在回答的窗口中输入一下,然后点击 Tab 就行”,Emery Berger 说道。

在这种情况下,Emery Berger 认为对教育者来说,确保学生真正学到材料是很重要的,这可能意味着他们需要重新思考在计算总成绩时,那些可以用 Copilot 解决的家庭作业应该算多少分。

也许现在说 Copilot 对学生产生了哪些具体影响可能还为时过早,因为该软件只公开使用了几个月。但随着 Copilot 等类似工具迅速崛起,用不了多久,其影响就会开始显现。

“我希望对此持乐观态度。但我认为,至少,我们需要对它进行深思熟虑” ,Emery Berger 担忧地说道。

参考链接:

https://itnext.io/coping-with-copilot-b2b59671e516

https://www.theregister.com/2022/08/19/copilot_github_students/

— 推荐阅读—

GitHub Copilot 正在“摧毁”初级开发者,已沦为编程考试作弊的神器?相关推荐

  1. AI之Tool:GitHub Copilot(一款人工智能编程小助手—猜你想写的代码)的简介、安装、使用方法之详细攻略

    AI之Tool:GitHub Copilot(一款人工智能编程小助手-猜你想写的代码)的简介.安装.使用方法之详细攻略 目录 Copilot人工智能工具的简介 1.GitHub Copilot的安全性 ...

  2. GitHub Copilot 已上线,AI 编程这等来啦!

    点击蓝字 关注我们 在人工智能高速发展的时代,AI 撰稿.AI 语音等技术已经相对成熟,在无数个熬夜写代码和排 bug 的日子里,你有没有 dream 过 AI 编程? GitHub copilot ...

  3. 将Hexo同时部署在github和腾讯云开发者平台或Coding初级实践教程

    写在前面的话 其实我也是这两天才接触到Hexo,之前是用的wordpress在阿里云上挂着.觉得Hexo好像更符合现在我的审美,so, do it! 嗯前面安装git和node.js我这边就省略掉了. ...

  4. 【AIGC使用教程】GitHub Copilot 免费注册及在 VS Code 中的安装使用

    欢迎关注[AIGC使用教程] 专栏 [AIGC使用教程]SciSpace 论文阅读神器 [AIGC使用教程]Microsoft Edge/Bing Chat 注册使用完全指南 [AIGC使用教程]Gi ...

  5. 用GitHub Copilot 生成的项目中,40%会引入漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件的安全 ...

  6. GitHub使用方法(初级)

    GitHub使用方法(初级) [初识Github] Git 是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理.在推出后,Git在其它项目中也取得了很大成 ...

  7. 如何通过几个简单的步骤编写一个漂亮的初级开发者简历

    所以你已经看到了你梦想的初级开发者职位,并正在考虑申请应聘.是时候写那个简历了!没有比坐在一张白纸上而不知道如何开始更好的了,对吧? 简历是招聘人员看到的第一件事.它是取得面试过程的敲门砖,可能是获得 ...

  8. 连登GitHub TOP榜,中国开发者在行动!

    作者 | 唐小引 数据 | 于瑞洋 出品 | AI科技大本营(ID:rgznai100) 中国开发者正在走向世界 中文开源项目正在不断登上 GitHub TOP 榜 不久前,一个名叫「wuhan202 ...

  9. 2021 GitHub年度报告:7300万开发者,最爱的依旧是Javascript

    视学算法报道 编辑:蛋酱 全球最大的代码托管平台 GitHub,至今已聚集了超过 7300 万的开发者. 2020 年,新冠疫情突然到来,拉开了人与人之间的「地理距离」.与此同时,开发者们不得不开始学 ...

最新文章

  1. Discuz!NT 中的数据库链接类(重构到抽象类工厂模式)
  2. 计算机职业短命,最短命10种活法你占几条?9成人长期对电脑
  3. 浅谈C++ STL中的优先队列(priority_queue)
  4. php 类 和 函数,PHP函数和类
  5. pcDuino的linux移植五GPIO驱动开发
  6. 教你一招解决Git时提交到多个远程仓库
  7. 算法与数据结构实验题 4.1 伊姐姐数字 game
  8. TCP Congestion性能测试分析
  9. 腾讯企业邮箱申请步骤
  10. 口碑极好的SAP PP培训视频, 21G, 52个视频
  11. 北京大学可视化发展前沿研究生暑期学校Day4
  12. 【FPGA入门教程】(六)时序逻辑电路设计
  13. 《Microduino实战》——1.1 什么是开源
  14. Linux运维技术之详解任务计划(crontab命令)
  15. 手写一个json格式化 api
  16. 小歆记账 php,小歆记账WebApp项目(Web服务端)
  17. h'tml和java代码,Tapestry 教程(七)在Tapestry中一起使用Hibernate
  18. mysql脏读解决方案_mysql是如何解决脏读、不可重复读、幻读?
  19. MS SQL 系统库信息说明
  20. JAVA设计模式是个什么玩意儿_02_抽象工厂模式

热门文章

  1. 第七届力学、数学与应用物理学国际会议(ICMMAP 2023)
  2. [opencv完整项目详解] 传统图像算法解决路标的检测和识别
  3. Python Unet网络结构pytorch简单实现+torchsummary可视化(可以直接运行)
  4. 微服务项目实战技术点汇总:“尚硅谷的谷粒在线教育”九、整合阿里云视频播放器、课程评论功能、讲师详情页、课程详情页、检索功能、课程和讲师列表功能
  5. 小睿家庭云可以刷linux系统吗,小睿私人云 篇二:小睿私人云刷机
  6. 2019-2020,互联网的十六个趋势
  7. ABAQUS中的应力应变描述
  8. 影视大全android,影视大全下载2021安卓最新版_手机app官方版免费安装下载_豌豆荚...
  9. OSChina 周日乱弹 —— 红领巾聚会
  10. 【JVM】JVM垃圾回收机制GC