找文章 / 找答案
精选问答 更多内容

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

puffs 显示全部楼层 发表于 2024-4-18 19:05:09 |阅读模式 打印 上一主题 下一主题
如今,像 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 代码生成器的合理调节使用,同时阻止上述不规范的使用方法。


回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部