为什么原有技能会改变学生从工具中的收获
AI 编程助手能在几秒内把可运行的代码交给学生。这能否转化为学习,取决于学生拿答案做了什么。计算思维能力较强的学生——习惯于把问题拆成几部分、追踪算法、检查结果是否合理——有更多内在的判断依据来对照 AI 的建议。技能较弱的学生可对照的东西更少,因此接受输出就成了阻力最小的路径。
最清晰的信号来自一项研究,它比较了在编程学习中使用生成式 AI 助手的两种方式:一种直接给出答案,另一种用苏格拉底式提问推动学生推理 [4]。该比较在学习活动后测量了分解、算法思维、评估和概括等计算思维成分,还追踪了"认知懒惰"——本质上就是愿意让工具替自己思考 [4]。这个设计之所以重要,是因为它分离出的是 AI 支持的方式,而不只是 AI 是否存在。
收益体现在推理上,而不只是写完的代码
当 AI 支持围绕提问而非给答案来设计时,K-12 编程课程中的学生在学习成就、计算思维和元认知意识——即对自己如何思考和学习有所觉察——上都显示出效果 [2]。同一项研究还提出了一个与原有技能问题相关的重要问题:给每个学生相同的帮助,并不等于给每个学生他们需要的东西,这也是为什么自适应支持被提为设计目标 [2]。
这与一种看法一致:工具的价值部分在于它迫使产生的对话。被提示解释某一步的学生,必须调取并运用自己已有的计算思维;而只是被告知这一步的学生则不需要。研究支持这是一种可能的机制,而非已证实的因果——这些比较针对的是支持方式,而不是先测量每个学生的起始技能、再预测其收益。
原有技能最少的学生反而是重度使用者
在计算机科学专业的本科生中,AI 编程助手最常被编程技能处于初级和中级水平的学习者使用 [3]。这种使用模式正是原有技能如此重要的现实原因:最可能依赖助手的学生,也最缺乏独立判断其输出的基础。同一项研究考察了 AI 辅助工具如何影响编程能力,但没有测量计算思维,因此无法告诉我们初学者的大量使用是缩小还是扩大了差距 [3]。
感知数据也指向类似方向。在一门编程入门课程中,学生认为 AI 工具对理解代码有帮助,其中 20 名学生接受了关于所遇挑战的访谈 [5]。这反映的是学生的感受,而不是对他们学到了什么的测量,该研究也没有评估计算思维 [5]。不过,这符合初学者把工具当作讲解者的图景——这种用法可能建立理解,也可能替代理解,取决于学生如何参与。
关于原有技能,我们仍无法断言什么
这些研究都没有在 AI 干预前直接测量学生的计算思维,再比较不同技能水平之间的收益。针对 AI 编程助手、以生产力为重点的研究考察的是本科计算机专业学生的任务完成时间和代码质量等结果,但完全没有测量计算思维 [1]。因此,对这个问题的诚实回答是:机制是合理的,也有部分支持,而直接的检验——高计算思维学生是否比低计算思维学生从同一个助手中获益更多或获益方式不同?——在这批证据中仍然缺失。
证据确实支持一个实际区分。AI 支持的方式似乎会影响学生是去推理还是得过且过 [2][4],而最容易接触这些工具的学生恰恰是原有技能最少的那部分 [3]。在有关研究测量原有计算思维并追踪不同水平的收益之前,最稳妥的解读是:原有技能很可能改变收益的性质——更多推理练习还是更多直接拿答案——而不只是把收益简单放大或缩小。
本文引用的文献
衡量 AI 编程助手(如 GitHub Copilot、ChatGPT)对计算机科学专业本科生编程生产力的影响
考察 AI 编程助手对本科计算机专业学生编程生产力(任务完成时间和代码质量)的影响,但没有测量计算思维能力。
……用苏格拉底式提问开展生成式 AI 辅助编程学习:对学习成就、计算思维和元认知意识的影响
研究了用苏格拉底式提问开展生成式 AI 辅助编程学习对 K-12 学生学习成就、计算思维和元认知意识的影响,研究指出统一的帮助并不适合每个学生。
AI 辅助编程工具对计算机科学专业学生编程能力的影响
AI 编程助手最常被编程技能处于初级和中级水平的计算机科学专业本科生使用,该研究考察了编程能力,但没有测量计算思维。
……给答案与苏格拉底式生成式 AI 支持在编程学习中的对比:认知懒惰、计算思维与计算思维……的差异
比较编程学习中直接给答案与苏格拉底式生成式 AI 支持,发现二者在认知懒惰以及活动后分解、算法思维、评估和概括等计算思维成分上存在差异。
课堂里的新成员:探究学生对 AI 编程助手的看法
在一门编程入门课程中,学生认为 AI 工具对理解代码有帮助,这一结论基于表现比较和对 20 名学生的访谈;研究没有测量计算思维。
