首页 科技快讯 用 AI 和不用 AI 学习编码,区别在于……

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

来源:晰数塔互联网快讯 时间:2024年04月18日 16:38

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

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

作者 | Austin Z. Henley

翻译 | 郑丽媛

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

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

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

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

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

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

研究方法

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

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

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

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

有 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 组的学生更渴望继续学习编程,在培训期间感到的压力和气馁也少得多。

使用 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 代码生成器的合理调节使用,同时阻止上述不规范的使用方法。

发布于:江苏

相关推荐

用 AI 和不用 AI 学习编码,区别在于……
AI加入疫情研究一线,用深度学习算法寻找肺炎病毒宿主
斑马英语:用“AI老师”解放家长,英语启蒙学习应该再“严肃点儿”? | 36氪启蒙教育专题
「Peak Labs」发布搜索引擎「magi.com」,用NLU和迁移学习技术为AI提供知识体系
谷歌将为 Google Colaboratory 加入 AI 编码功能
CMU计算机及心理学系教授Ken Koedinger:用AI探索高效学习的边界 | AIAED全球AI智适应教育峰会
不用手拿,不用头戴,AI时代的无屏“手机”挑战iPhone
百度主任架构师“跨界”医药,「望石智慧」用AI助力研发新药
机器学习圣杯:图灵奖得主Bengio和LeCun称自监督学习可使AI达到人类智力水平
会开发AI的AI:超网络有望让深度学习大众化

网址: 用 AI 和不用 AI 学习编码,区别在于…… http://www.xishuta.com/newsview115667.html

所属分类:行业热点

推荐科技快讯