用 AI 和不用 AI 学习编码,区别在于……

e9de54b0b650027f6c398da1189ba827.gif

这篇文章是作者与多伦多大学博士生 Majeed Kazemitabaar 共同撰写的,他一直在研究用于计算机科学教育的 AI 工具。

原文链接:https://austinhenley.com/blog/learningwithai.html

作者 | Austin Z. Henley

翻译 | 郑丽媛

出品 | 程序人生(ID:coder_life)

如今,像 ChatGPT 这样的工具能解决许多编程入门任务。通常情况下,你只需简单地复制粘贴指令,就能得到详细的解决方案和解释,无需再做其他事情。

然而,这引起了很多关于用 AI 生成代码的 LLM 是否会影响编程教育效果的讨论。教育工作者担心学生会过度依赖 AI 工具,无法有效地学习;反之,这些工具也可能降低编程门槛,甚至扩大人们对计算机的参与!

为了了解其中到底发生了什么,我们有两个基本问题:

(1)在编程入门课程中,AI 代码生成器对新手有什么影响?

(2)新手如何在入门编程课程中用 AI 代码生成器?

08618251743af46c2e758114025144aa.png

4a1e3560aed2a439ae67c0fb4b9cc26c.png

研究方法

为了回答这些问题,我们在 2022 年 8 月对 69 名没有 Python 编程经验的学生(10-17 岁)进行了 10 节课的对照研究。在第一节课上,我们用 Scratch 向学生传授了编程的基本概念,如变量、条件和循环。然后,立即用 25 个 Scratch 代码跟踪问题对这些学生的高级计算思维能力进行评估。

在接下来的 7 节课中,学生被分成两组:Baseline 组和 Codex 组。在这 7 节课中,两组学生都使用为本次研究开发的工具 Coding Steps 完成了 45 个由两部分组成的任务。Coding Steps 包含了对新手友好的文档,并允许远程助教对学生提交的任务提供实时反馈。每个任务的第一部分是代码编写任务,学生必须根据提供的说明编写代码;第二部分是代码修改任务,学生必须根据额外要求修改前一部分的正确解决方案。在代码编写任务中,Codex 组的学生只能选择使用 LLM 代码生成器。

b1b0079e70b86584f4b0e6c329839100.png

该代码生成器基于 OpenAI Codex,学生只需输入用自然语言描述的程序,它即可将其转换为 Python 代码。

最后两节课的重点是评估学生的表现,在这两节课中,学生无法使用 Codex 或其他 AI 辅助工具。共有两个评估环节,都包含 10 个编码任务和 40 道选择题。第一次评估测试是在七节培训课后一天进行的,第二次测试是在一周后进行的,使用的是稍作修改的类似任务。

b018761e5153011acbf97e13921d6a7a.png

有 AI 和没有 AI 的学习表现

首先,我们来看看前 7 次课的培训结果:

  • 在前 7 次培训中,Codex 组的学生取得了更大的进步,完成任务的比例(91%)明显高于 Baseline 组(79%)。

  • 在代码编写任务中,Codex 组学生的正确率(80%)明显高于 Baseline 组(44%),并且总体上完成任务的速度明显更快。

  • 不过,在代码修改任务中,两组学生的正确率表现相似,Codex 组(66%)略高于 Baseline 组(58%)。

  • 某种程度上来说,前两个结果属于意料之中,但他们在代码修改任务上平分秋色的表现真令人欣慰!Codex 组的学生在很大程度上依赖 AI 来完成代码修改任务,但表现得几乎一样好,甚至在某些情况下还优于 Baseline 组。

接着,让我们来看看最后两节课的测试评估结果:

  • 在培训课程结束一天后进行的即时测试中,两组在编码任务(Codex:61%,Baseline:63%)和多项选择题(Codex:49%,Baseline:42%)上的表现差异不大。

  • 在一周后进行的测试中,Codex 组在编码任务(Codex:59%,Baseline:50%)和多项选择题(Codex:44%,Baseline:35%)上的表现显然更好。

  • 针对在 Scratch 预测试中成绩较高的前 50%学生,使用 Codex 的学生的成绩(74%)明显优于 Baseline 组(60%)。

  • 此外,Codex 组的学生更渴望继续学习编程,在培训期间感到的压力和气馁也少得多。

fcdd896782ab00407bcb6a0221e17498.png

使用 AI 学习:过度依赖与自我调节

此外,我们还对 Codex 组学生在七次培训中用 AI 代码生成器的 1666 次使用情况进行了专题分析。我们重点分析了他们如何使用工具、用了哪些提示,以及如何验证和使用 AI 生成的代码。基于此,我们发现了各种过度依赖和自我调节的迹象,下面将对此进行讨论:

  • 学生经常(n=501,30%)直接复制任务描述来生成整个代码,事先并未尝试过手动编码。(✕)

  • 有时(n=197,12%),学生会将任务分为多个子目标,要求 AI 只生成第一个子目标而不是整个任务。(✓)

  • 当把任务分解为多个子目标时,学生有时(n=85,5%)会要求使用编辑器中已有的代码。(✕)

  • 虽然比较少见(n=16,1%),但有时学生会在有了解决方案后再生成代码,以检查和比较 AI 的输出与自己的解决方案。(✓)

  • 学生偶尔(n=89,5%)会写出类似伪代码的提示(例如“对于数字中的 num,如果 num > large,则将 large 设为 num”)。(✓)

  • 虽然大多数情况下,学生在提交前都会对 AI 生成的代码进行适当测试,但也有几个学生(n=63,4%)在提交 AI 代码时没有进行测试。(✕)

  • 虽然很少,但有时(n=30,2%)学生会主动优化 AI 生成的代码,以正确理解语法和逻辑。(✓)

  • 同样,有时学生会在 AI 生成的代码中手动添加代码(如“print”语句),帮助他们验证代码的正确性。(✓)

最后,我们认为未来的 AI 工具设计者和教育者,应该促进人们对 LLM 代码生成器的合理调节使用,同时阻止上述不规范的使用方法。

推荐阅读:

▶苹果曝“内鬼”猛料,索赔 18 万元:五年泄露至少 6 种机密,发送超 10000 条信息!

▶硅谷 CEO 立「千万赌约」,邀马斯克应战:“我用 1000 万美元,赌你的 AI 预测是错的!”

▶大模型浪潮下软件研发如何变革?听听微软、阿里、百度等宝贵实践

f13227eb50b14c5a1f73a016f8826b91.gif

4 月 25 ~ 26 日,由 CSDN 和高端 IT 咨询和教育平台 Boolan 联合主办的「全球机器学习技术大会」将在上海环球港凯悦酒店举行,特邀近 50 位技术领袖和行业应用专家,与 1000+ 来自电商、金融、汽车、智能制造、通信、工业互联网、医疗、教育等众多行业的精英参会听众,共同探讨人工智能领域的前沿发展和行业最佳实践。欢迎所有开发者朋友访问官网 http://ml-summit.org、点击「阅读原文」或扫码进一步了解详情。

a15d75b12a03275f7d22e111aba8e48d.png

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值