利用 AI 教学哈佛 CS50 课程 —— 在计算机科学教育中的生成式人工智能应用 [译]

在计算机科学教育中的生成式人工智能应用

摘要

2023 年夏,我们在哈佛大学的 CS50 课程中引入了一套 AI 软件工具。这些工具最初面向大约 70 名夏季课程的学生,随后向数千名线上学生开放,并在同年秋季扩展到校园的数百名学生。

遵循课程政策,我们鼓励学生使用这些专为课程设计的工具,同时限制了他们使用 ChatGPT、GitHub Copilot 以及新版 Bing 等商业 AI 软件。我们的目标是通过软件实现接近 1:1 教师对学生的比例,使每位学生都能随时拥有一位以教学为导向的学科专家助手。

这些工具的设计目的是引导学生探索解决方案,而非直接给出答案。学生对这些工具的反响积极,他们表示这就像拥有了一位“个人导师”。我们的研究发现,将 AI 有策略地融入教育环境可以通过提供持续的个性化支持,提升学习体验,并帮助教育者解决更复杂的教学难题。

在本文中,我们将详细讲述 AI 工具如何在 CS50 课程中提升教学和学习效果,主要涉及代码片段解释、代码风格改善,以及对课程讨论论坛上的课程内容和行政问题的精准回应。此外,我们还将分享我们的方法论、实施细节,以及对那些考虑在教育领域应用这些工具或 AI 技术的人的建议。

1 引言

在大众对基于大语言模型(LLMs)的生成式 AI 的浓厚兴趣之中,人们也对 AI 干扰教育的可能性感到忧虑。现在学生们能完全依赖 AI 完成作业甚至写作论文,这对教育的基本目标构成了挑战。因此,许多教育者选择了一种直接反应:完全禁止使用 AI。

我们采取了不同的策略,将生成式 AI 主动融入哈佛大学的计算机科学入门课程 CS50,这个课程面向专业和非专业学生。我们不仅接纳了生成式 AI,并在课堂中充分利用它,还制定了相关规则,以保证学术诚信和促进有效学习。CS50 拥有庞大的校内学生群体和通过 OpenCourseWare 达到的全球在线影响力,使其成为评估不同对 AI 教学方法有效性的理想平台。

2023 年夏季和秋季期间,我们积极测试了一个由 AI 驱动的聊天机器人,这个机器人是作为专为 CS50 设计的虚拟小黄鸭(借鉴小黄鸭调试法)的一部分。我们首先在大约 70 名夏季学生中部署了这个被称为 CS50.ai 的 CS50 小黄鸭,随后向数千名在线学生开放,最终又推广到大约 500 名校园学生中。本文记录了我们开发 CS50.ai 的过程,包括遇到的挑战、提出的解决方案和取得的成果,这一切都是为了实现我们长期以来的目标:实现 1:1 的教师与学生比例。

2 动机

为了应对人工智能(AI)在教育领域引发的担忧,我们在 CS50 课程中尝试结合 AI 进行教学。批评者们将像 ChatGPT 这样的工具称为“教育界的灾难”[12],因为它们可能助长学术欺诈行为,使学生能够将 AI 生成的作品冒充自己的成果。作为同样关注学术诚信问题的教育者[7],我们认识到某些 AI 工具可能对计算机科学初学者过于“友好”,给他们带来困扰。与其他课程一样,我们迅速制定了禁止使用 ChatGPT、GitHub Copilot 以及其他可以提供或完成问题答案的 AI 软件的规则。但同时,我们也意识到,如果不利用 AI 的强大潜力来丰富学生的学习过程,那将错失一个宝贵机遇,这是非常可惜的。

先前的研究已经探讨了如何调整 AI 工具,使其更好地服务于学生。例如,斯坦福大学的研究人员通过使用一种叫做 ProtoTransformer 的元学习技术,展示了 AI 在教育中的应用,该技术在反馈学生代码方面的准确度甚至超过了教学助理[13]。此外,Reis 等人的研究显示,AI 生成的个性化提示显著减少了学生在找到正确解决方案时的努力[10]。日渐增多的证据表明,AI 有潜力改进学习反馈过程、促进批判性思维,并增强解决问题的技巧[11]。

特别是在 CS50 校园课程中,AI 能够帮助弥补理想中的一对一教学与现实中资源限制之间的差距。尽管我们拥有很多教学助理,但要满足一个 500 人班级的多元化需求仍然是一个挑战。AI 已经在支持不同水平学习者方面发挥了关键作用[14],成为当今教育中的重要工具。

在规模较大的在线课程中,学生可能从未有机会与教师直接交流。以 CS50 的大规模公开在线课程(MOOC)为例——截至目前已有超过 500 万注册者——学生通常只能向其他学生寻求帮助。如果 AI 助教能够提供比学生更专业的知识,并且表现得像一个优秀的导师,那么这对于那些可能永远不会与课程讲师互动的学生来说,将是一个巨大的突破。

最终,我们的目标是模拟一对一教学的理想状态,通过使用像 OpenAI 的 GPT-4 这样的生成式大语言模型(LLM),为每位学生提供一个个人专家。这样的教学方式旨在引导学生,而不是直接给出答案,并且能够紧跟课程的更新和变化。

3 解决方案

我们最初的目标是开发一些简单的概念验证项目,这些项目逐步演变成更为高级的工作,目的是为学生提供全面的工具集,辅助他们学习 CS50 的课程内容。这套工具包括:

  1. “解释高亮代码”,用于便捷的解释选中的代码;
  2. 代码风格评估工具 style50 的增强版;
  3. CS50 小黄鸭,一个能够通过多个平台回答课程相关问题的聊天机器人。

所有这些工具均由我们的一体化网络应用程序 CS50.ai 提供支持。CS50.ai 不仅能快速准确地提供 AI 生成的回答,而且还内置了与我们的教学理念相符的“教学辅助措施”,引导学生自主学习,而不是直接给出问题的答案。

3.1 解释高亮代码

我们首先开发了一个名为“解释高亮代码”(EHC)的 VS Code 扩展工具,其模仿人类教师的方式,为学生提供代码片段的即时英文解释。(学生只需高亮一行或几行代码,就能得到解释。)这个工具补充了 CS50 现有的代码正确性检测工具 check50,为代码的语义层面提供即时的解释。如今,学生随时都可以获得代码的即时解析,这使得面对面的辅导时间变得更加高效,学生可以更多地专注于探讨高层次的设计问题,而不是纠结于基础的疑问解答。

3.2 提升代码风格

我们还改进了 style50 —— 该课程中用于检查代码风格的命令行工具 —— 将其作为一个带图形界面的 VS Code 扩展重新实现。这个新版本能够将学生的代码与根据 CS50 风格指南优化后的版本进行直观对比。此外,这个扩展还提供了一个“解释变更”按钮,学生点击后可以直接获得对 style50 建议的自然语言解释。这些功能让 style50 成为了一个互动式学习工具,它像人类教师一样提供指导,帮助学生更清晰地理解和实践代码的语法优化。

3.3 CS50 小黄鸭

我们的所有 AI 工具均由同一 CS50.ai 后端支持,这确保了我们在 AI 应用上的方法保持一致。为了让学生能够像使用 ChatGPT 那样,较为自由地接触 AI 模型,我们专门建立了一个独立的网站供学生使用 CS50 小黄鸭。学生可以通过这个网站,以一种受控制的方式,直接与 GPT-4 进行互动,如图 1 所示。

图 1: 在 CS50.ai 的主页上,学生们可以与 CS50 小黄鸭进行交流,这是一个互动型的“小黄鸭调试工具”。
图 1: 在 CS50.ai 的主页上,学生们可以与 CS50 小黄鸭进行交流,这是一个互动型的“小黄鸭调试工具”。

CS50 小黄鸭不仅可以通过 CS50.ai 网站使用,还可以通过一个单独的 VS Code 扩展进行访问,如图 2 所示。无论是哪种方式,学生们都能获得相同的 AI 辅助体验。CS50 小黄鸭利用 GPT-4 的上下文理解功能,为学生们提供了真正互动的教与学体验,并严格遵循 CS50 的教学原则。

图 2: CS50 的学生也可以在 VS Code 中使用 CS50 小黄鸭,讨论计算机科学相关话题、解析代码,或提出代码风格改进建议。
图 2: CS50 的学生也可以在 VS Code 中使用 CS50 小黄鸭,讨论计算机科学相关话题、解析代码,或提出代码风格改进建议。

3.4 CS50 小黄鸭在 Ed 平台上

长期以来,我们一直在课程中使用 Ed [2] 这个第三方平台作为线上讨论论坛,以提供异步帮助。在 Ed 上,学生可以提出问题,并从课程团队和同学那里得到指导,这大大简化了讨论的过程,减少了问题重复,促进了同学间的合作。

为了进一步增强 Ed 的功能,我们利用其 HTTP 请求特性,将 CS50 小黄鸭集成到了平台中。如图 3 所示,CS50 小黄鸭可以参与讨论并在需要时提供答案。我们在 CS50.ai 应用中为 Ed 上的 CS50 小黄鸭专门设置了一个 API 接口,这样我们就能够控制 GPT-4 生成的回复,确保 CS50 小黄鸭的行为与课程内容和教学理念相符,而不仅仅是直接回答学生的问题。

图 3: 在 Ed 上,CS50 小黄鸭的实际应用场景。一名学生提出了问题,CS50 小黄鸭则提供了一个简洁的答案,随后被一名课程工作人员确认为正确。
图 3: 在 Ed 上,CS50 小黄鸭的实际应用场景。一名学生提出了问题,CS50 小黄鸭则提供了一个简洁的答案,随后被一名课程工作人员确认为正确。

通过在 Ed 上的 CS50 小黄鸭,我们的目标是通过提供即时且经过精心准备的回应来丰富学生的学习体验。我们的目的是辅助人类教学,而不是取代它。为了保持这一原则,所有 CS50 小黄鸭的回复都必须得到课程工作人员的认可、修改或删除。Ed 的用户界面为此提供了相应的操作选项。

4 实施细节

正如图 4 所展示的,我们开发了 CS50.ai 作为我们所有 AI 工具的支撑平台,负责管理每个用户与 GPT-4 的交互通信。具体来说,我们采用的是部署在 Microsoft Azure [8] 上的 GPT-4 版本。学生的查询首先被发送至 CS50.ai,在此去除任何个人身份信息(PII)。随后,这些查询被进一步转化为结构化的查询请求,即我们所说的“提示词(Prompt)”。这些提示词结合了特定课程的规则和指导原则,以及原始的学生查询,目的是引导 GPT-4 更准确地生成具有情境感知的回答。

对于来自 Ed 讨论平台的学生查询,CS50.ai 采用了一种叫做“检索增强式生成”(RAG) 的方法来生成回答。这种方法通过引入外部来源的事实数据,提高了生成式大语言模型的准确性和可靠性,有效减少了模型产生虚假信息的可能性。我们在构建提示时融入这些事实数据,以便 GPT-4 能生成更加精准和贴近实际情境的回答。

整个系统构架是一个高效流畅的模式,CS50.ai 和 GPT-4 协同工作,迅速为学生提供准确且有价值的答案。

图 4: CS50.ai 的系统架构。GPT-4 负责生成对学生查询的回答,并可选用检索增强式生成技术,通过整合外部来源的事实数据来提高回答的准确度。
图 4: CS50.ai 的系统架构。GPT-4 负责生成对学生查询的回答,并可选用检索增强式生成技术,通过整合外部来源的事实数据来提高回答的准确度。

4.1 提示词(Prompts)

在与像 GPT-4 这样的大语言模型互动时,提示词起着控制对话的关键作用。从 CS50.ai 发出的对 GPT-4 的每一次请求,都包含了系统提示和用户提示。系统提示用于设定特定课程的规则和指南,而用户提示则包含了实际的学生查询,即 GPT-4 需要回答的问题。

我们可以通过不同的提示来创建各种解决特定任务问题的“智能体”。比如,在 CS50.ai 的每次互动中,我们都会使用一个定制的系统提示,引导模型扮演 CS50 的助教角色。接着,我们发送包含实际学生查询的用户提示,这些提示是在一组固定指令的基础上构建的。经过多次迭代后,我们针对不同的使用场景,如解答计算机科学相关问题、解释代码片段、提供代码风格反馈等,创建了多个不同系统提示和用户提示模板的配置文件(采用 YAML 格式)。

4.2 聊天补全

大语言模型 (LLM) 能够接收一系列的输入提示,并产生 AI 生成的回复。CS50.ai 采用了 OpenAI 的聊天补全 API。这个工具能处理各种提示,每个提示都有特定的角色——如“系统”、“用户”或“助理”,用以模拟一场对话。

一场对话通常从一个系统提示开始,它设定了助理应遵循的场景和行为规则。紧接着,用户的提示则包含了具体的问题或陈述,等待 LLM 的回应。

我们首先制定好系统和用户的提示,然后将它们作为输入发送给聊天补全 API。为了营造一种连贯的对话流,我们把 AI 的回复加入到一个存储着用户问题的数组中。这样,每次对话的全部内容都会重新输入到 GPT-4,为接下来的 AI 回复提供了上下文。随着对话的继续,这个过程会不断重复。

4.3 检索增强生成 (RAG)

有时,大语言模型 (LLM) 可能会产生一些听起来合理但实际上错误的回应,我们称之为“幻觉”[3]。这是因为 AI 模型在大量文本数据上训练,虽然能流畅生成文本,但并不总是关注事实的准确性。此外,LLM 有时受到知识截止的限制,仅能使用到最近训练会话时的信息,无法获取实时更新或训练后的事件。

为了解决这个问题,我们可以使用一种叫做检索增强生成 (RAG) 的技术。这种技术通过结合外部数据源中的事实,来提高 LLM 的准确性和可靠性 [5]。例如,我们利用 OpenAI 的嵌入(Embeddings)API,为 CS50 课程的字幕制作文本嵌入,这样就建立了一个基于事实的外部数据源。这些文本嵌入其实就是一系列数字,它们代表着文本的含义,帮助机器学习算法更好地理解和使用数据。

我们的数据准备流程是这样的:首先,将课程讲座的英文字幕分割成每段 30 秒的小片段。然后,我们使用 OpenAI 的 text-embedding-ada-002 模型为这些片段创建嵌入,并将它们存储在 ChromaDB 向量数据库中。接着,对每个学生提出的问题也进行嵌入处理,并在数据库中搜索,找出与问题最相关的讲座字幕片段。最后,我们将这些相关的字幕片段和学生的问题一起输入到 GPT-4,由 AI 帮助生成回应。

通过这种 RAG 方法,我们能够降低 GPT-4 在回答具体讲座问题时出现“幻觉”的可能性,而且这样做不需要对大语言模型进行耗时且计算资源密集的微调或重新训练。

4.4 如何防止恶意提示攻击

恶意提示攻击指的是恶意用户向大语言模型(LLM)输入误导性指令,以改变其行为,比如让 GPT-4 提供详尽的家庭作业解答。

为了应对这种威胁,我们在 CS50.ai 中加入了一种“防护”机制。它能检测学生的每一项请求,查找是否存在异常的符号或模式,这些可能是攻击的迹象。一旦发现可疑情况,CS50.ai 就会单独调用 GPT-4 的 API,判断这是否是一个正常的查询还是恶意提示攻击。若判定为攻击,系统会立即终止该用户的会话,防止被滥用。

4.5 通过 HTTP 请求实现与 Ed 的集成

CS50.ai 能处理和增强 HTTP 请求,这使得它可以与第三方在线平台协同工作。例如,在 Ed 平台上,学生之间的互动主要发生在论坛帖子(学生发起的主题或问题)和评论中。我们在 Ed 上的 CS50 小黄鸭设计用于监控这些帖子和评论,并根据特定的标准(如帖子的类别)来决定是否需要回应。

当学生发起一个帖子时,Ed 上的 CS50 小黄鸭会首先确认这是否是一个问题,检查是否由教职员发布,以及是否符合某些预设的类别。一旦这些条件都满足,CS50 小黄鸭便会向 CS50.ai 的 API 端点发送带有帖子相关数据的请求,以产生相应的回复。

通过这种方式,CS50.ai 在处理 HTTP 请求方面的灵活性帮助我们扩大了 CS50 小黄鸭在不同在线平台上的作用和影响力,为学生们提供了无论在何处都能获得的高质量教育支持。

4.6 使用频率限制

CS50.ai 通过一个可视的爱心计数器来限制使用频率。每位学生初始有 10 颗爱心,每隔三分钟可以恢复一颗。每次与 CS50 小黄鸭互动都会消耗一颗爱心,这样可以防止滥用行为。这样做还有助于降低运行 CS50.ai 的成本,因为每次向 GPT-4 发送请求都会产生费用。

此外,这种使用限制对学生学习也有积极影响。首先,它鼓励学生在与 CS50 小黄鸭互动时更加深思熟虑,促使他们慎重地提出问题。这种做法旨在培养学生独立解决问题的能力和提出精准问题的技巧,这对学习本身非常重要。其次,这种限制也鼓励学生进行反思性的休息,帮助他们带着新的视角重新思考和处理复杂的问题。

5 结果

5.1 学生反馈

2023 年夏季,我们邀请了大约 70 名参加 CS50 课程的学生,在课程结束时填写了一份非匿名调查,以收集他们对我们 AI 工具的使用体验。学生们的反馈普遍非常正面,他们对 AI 工具在解决难题时的帮助性、有效性和可靠性给予高度评价:

  • “简直难以置信,就像有一个私人辅导老师一样...我特别欣赏 AI 机器人回答问题时的客观公正,即使是最简单的问题也不会被小觑。它展现出了超乎寻常的耐心。”

  • “我真的很感谢这些 AI 工具,特别是在当前 AI 在编程中越来越普及的背景下。能够提前适应与 AI 工具的协同工作,感觉很棒,而不是觉得这些工具在阻碍我们。CS50 课程推出自己的 AI 版本也很让人欣赏,因为仅仅使用像 chatGPT 这样的工具可能会削弱学习效果。”

  • “AI 工具对我帮助很大。它们向我解释了一些我不太清楚的概念,并教会了我解决特定问题所需的新知识。AI 工具不仅给了我足够的提示让我独立尝试,还帮我分析错误及可能遇到的问题。”

在接下来的 2023 年秋季学期,我们对大约 500 名校园学生进行了两次非匿名调查,一次在学期中期,另一次在学期末,以此来了解他们对 AI 工具的看法和反馈。学期中期的调查显示,学生们对 AI 工具的使用情况多样但普遍频繁:

  • (1)17% 的学生每周使用这些工具超过十次,32% 的学生每周使用 5 到 10 次。此外,26% 的学生每周使用 2 到 5 次,还有 25% 的学生每周使用不超过两次。

  • (2) 在工具的帮助性方面,大多数学生认为课程中的 AI 工具很有益处。具体来说,47% 的学生认为它们“非常有帮助”,26% 的学生觉得“有帮助”,21% 的学生认为“稍有帮助”,还有 6% 的学生认为“没什么帮助”。

  • (3) 在评价这些工具对学习提升的有效性时,学生们的反馈同样积极。35% 的学生认为它们“非常有效”,35% 的学生认为“有效”,25% 的学生认为“稍有效”,5% 的学生认为“无效”。

  • (4) 虽然学生们被告知要“批判地思考”,不应盲目相信由 AI 生成的信息总是正确无误的,但大约有 23% 的学生对我们的 AI 工具回答的准确性非常自信,46% 相对自信,27% 稍微有些自信,还有 4% 表示不太自信。

在学期末的调查中,到目前为止已有 73% 的学生做出了回应:

  • (1) 50% 的学生表示他们“经常”使用我们的 AI 工具,而有 28% 的学生表示“一直”在使用它们,这表明他们对这些工具非常依赖。同时,19% 的学生“偶尔”使用它们,只有 3% 的学生从未使用过。

  • (2) 我们的 AI 工具普遍被认为是有益的,33% 的学生觉得它们“总是有帮助”,55% 的学生认为它们“经常有帮助”。然而,也有 11% 的学生觉得它们“偶尔有帮助”,1% 的学生认为它们“从未有帮助”。

  • (3) 总体上,学生们对我们的 AI 工具非常满意:53% 的学生“非常喜欢”它们,33% 的学生“喜欢”它们。另一方面,13% 的学生持中立看法,只有 1% 的学生表示“不喜欢”它们。

根据我们的观察,很多学生会将 CS50 小黄鸭人格化,视其为一个友好的伙伴。我们认为,这种亲切感促进了我们 AI 工具的成功,因为学生们乐于与一个可爱的小黄鸭聊天,而不是与一个没有表情的机器人。正如一位学生所说:“超级喜欢这只小黄鸭,我们现在已经成为朋友了。”

不过,我们的 AI 工具也曾出现误解问题并给出错误建议的情况。偶尔的错误本身是可以接受的——毕竟人类教师也会犯错。但 AI 往往即使错误也会表现出满满的权威自信,而人类在回答时可能会表现出一定的保留。类似于其他 AI 聊天机器人的固有局限,CS50.ai 有时在错误地“幻觉”信息时也表现出过度的自信。但最近的研究表明,大语言模型 (LLM) 很快可能就能在适当的时候表达出不确定性 [6]。

也有学生建议减少使用限制,因为他们更喜欢无限制地与 CS50 小黄鸭聊天。考虑到限制的设置既是出于成本考虑,也是为了教学目的,我们近期不打算取消这些限制。但随着成本和使用状况的变化,我们将持续调整这一策略。

5.2 回答的准确性分析

为了检验 CS50 小黄鸭在 2023 年夏季 Ed 平台上的表现,我们邀请了一位非开发团队的资深课程员工对 CS50.ai 提供的回答进行了评估。在夏季课程中,CS50 小黄鸭在 Ed 上共发布了 64 个回答,其中 25 个涉及课程内容,39 个涉及日常管理事务。我们的发现如下:

  • 在 25 个课程相关的回答中,有 22 个(占 88%)是正确的。
  • 在 39 个管理相关的回答中,有 30 个(占 77%)是正确的。

管理事务回答准确率略有下降,这在我们预料之中。原因是,作为基础的 GPT-4 模型是根据一定时间点前的数据训练的。随着时间的推移,CS50 课程的教学大纲发生了变化,使得 GPT-4 与课程的最新内容不完全匹配。而对于 88% 的课程内容回答准确率,我们认为这相比 GPT 在编程问题上的基本表现有了显著提升。最新研究显示,ChatGPT 在回答软件工程相关问题时,正确率仅为 48% [4]。

截至本文撰写,2023 年秋季学期刚结束,我们刚开始评估 CS50 小黄鸭在秋季在 Ed 上的表现。在秋季,CS50 小黄鸭总共回答了 180 个问题,但仅有 70 个获得了教职员工的“认可”,初步看来准确率仅为 39%(比夏季有所下降)。但我们认为,这个数字可能低估了 CS50 小黄鸭的实际表现,因为学生使用 Ed 的频率已经大幅下降。例如,在 2022 年秋季,学生们通过 Ed 平均每人提出了 0.89 个问题;到了 2023 年夏季,这个数字上升到每人平均 1.1 个;但在 2023 年秋季,这一数字降至每人仅 0.28 个(这些数据包括了校内外的学生)。

鉴于 CS50.ai 在 2023 年秋季已经全面投入使用,我们推测很多学生转而通过 VS Code 和 CS50.ai 官网与 CS50 小黄鸭进行更即时、对话式的互动,而不是在 Ed 上提问。我们还猜想,学生可能在通过其他方式向 CS50 小黄鸭提问未获满意答案后,会将更复杂的问题转至 Ed,寻求人工解答。由于我们刚开始分析 2023 年秋季的数据,这些只是目前的初步推测。

5.3 使用总结

从 2023 年 6 月起,我们的 AI 工具在全球范围内,尤其是在校园中得到了广泛应用。截至 2023 年 12 月,CS50.ai 已吸引超过 50,000 名独立用户。至今,我们总共处理了超过 180 万次查询。

日均独立活跃用户数量显著上升,从 2023 年 6 月的约 200 人增至 9 月的 1,000 人,再到 11 月达到 1,500 人。目前,每天创建的提示数量呈现上升趋势,峰值达到每天 25,000 个,如图 5 所示。同时,用户平均每天创建的提示数量也从最初的每人每天 5 个增加到现在的每人每天 15 个,这反映出用户对我们 AI 工具的使用愈发密集。

图 5:展示了随时间推移每日提示创建数量的图表。目前,通常每天约有 15-20K 个提示被创建。
图 5:展示了随时间推移每日提示创建数量的图表。目前,通常每天约有 15-20K 个提示被创建。

尽管 11 月的用户活动量很大,但我们的成本依然在合理范围内,大约每位学生每月 1.90 美元,每条提示词 0.05 美元。考虑到学生积极的反馈和学习体验的提升,这是一项值得的投资。此外,像 OpenAI 和 Microsoft 这样的公司通常会为教育用途提供免费信用额度,从而帮助减少成本。

因此,我们持续监控并调整我们的 AI 工具,以提高效率并降低成本。我们的举措包括提高 RAG 的效果、调整使用限制,并确保工具能准确回应学生的查询。

6 未来工作

6.1 评估代码设计

在 CS50 课程中,学生的作业主要根据正确性、风格和设计进行评价。其中,正确性和风格是通过两个自动化工具 check50 和 style50 来评分的。check50 负责检查代码是否满足任务要求,而 style50 则评价代码是否遵循了编程风格准则。然而,评估学生的代码设计能力也很关键,这部分目前仍然需要人工评估。在 CS50 的网络课程中,由于课程规模庞大,代码设计甚至没有被评估。评估代码设计不仅有助于了解学生的编程组织能力和效率,但人工评估既耗时又可能带有主观性。

为了提高评估的一致性和效率,我们计划开发一款名为 design50 的 AI 工具,专门用于自动化的设计评分。这个工具可以为每个提交的作业提供统一的反馈,从而减轻人工评分的工作量。事实上,先前已有研究证明了这种方法的有效性 [1]。我们的目标是训练 design50 根据人工评估的标准来自动评分,最终只需人工确认评估结果,这将使评分过程更快捷、更标准化。

6.2 扩展到其他课程

在 CS50.ai 成功应用于我们的暑期课程之后,我们将其扩展到了其他 10 个相关的网络课程。这些课程涵盖了从游戏设计到 SQL,再到网络安全等多种主题。尽管这些课程全年对全球成千上万的学生开放,CS50.ai 使我们能够提供全天候的支持。

为了实现这一点,我们开发了一个能够自动更新知识库和提示库的模块化配置系统,让我们可以针对每门课程的特殊教学内容和方法调整 AI 工具。未来,我们希望借助这一系统,将 CS50.ai 的应用扩展到更多课程中,无论是在科学技术、工程和数学(STEM)领域,还是人文科学领域。

7 结论

在一个夏季的实际应用和一个秋季的深入测试之后,我们认为我们为 CS50 准备的 AI 工具组合非常成功。我们相信,相对于完全禁止 AI 的方法,我们“设限”的使用方法至少有了明显的优势。我们希望通过提供我们的 AI 工具,减少学生利用网络上其他 AI 工具进行学术不诚实的行为。

每一款 AI 工具都不只是一个理论概念。基于大量的使用数据和学生的积极反馈,CS50.ai 已经推广到全球数千名学生手中,证明了它在实际应用中的价值。尽管我们仍有改进空间,但将 AI 融入教育领域已展现出巨大潜力,特别是在提升个性化教学帮助的可获得性和让教职员工更多地关注高层次教学问题方面。

我们的长期目标是把我们的 AI 工具应用到更多学科领域,使 CS50 小黄鸭能够涉及计算机科学之外的教育内容。我们希望,CS50 对 AI 的应用能为其他教育机构和课程提供一个范例,展示生成式 AI 在提升学生学习方面的潜力,而不仅仅是造成干扰。当配备了适当的保障措施后,AI 有望为教育带来革命性的改进。

致谢

特别感谢 Ed、GitHub、Microsoft 和 OpenAI 对我们工作的支持。还要感谢 Brenda Anderson、Sophie Anderson 和 Doug Lloyd 在这项工作中的帮助。

参考文献

  • [1] Wei Dai, Jionghao Lin, Flora Jin, Tongguang Li, Yi-Shan Tsai, Dragan Gasevic, 和 Guanliang Chen. 2023. 大语言模型能否有效反馈给学生?一项关于 ChatGPT 的案例研究。https://doi.org/10.35542/osf.io/hcgzj
  • [2] Ed. 2023. https://edstem.org/
  • [3] Ziwei Ji, Nayeon Lee, Rita Frieske, Tiezheng Yu, Dan Su, Yan Xu, Etsuko Ishii, Ye Jin Bang, Andrea Madotto, 和 Pascale Fung. 2023. 探索自然语言生成中的“幻觉”
  • [3] Ziwei Ji, Nayeon Lee, Rita Frieske, Tiezheng Yu, Dan Su, Yan Xu, Etsuko Ishii, Ye Jin Bang, Andrea Madotto, 和 Pascale Fung. 2023. 探索自然语言生成中的“幻觉”现象。计算机调查 55, 12 (2023 年 3 月), 1–38. https://doi.org/10.1145/3571730
  • [4] Samia Kabir, David N. Udo-Imeh, Bonan Kou, 和 Tianyi Zhang. 2023. 聊天机器人与编程社区在解答软件工程问题上,孰优孰劣?一项深入分析 ChatGPT 与 Stack Overflow 回答的研究。arXiv:2308.02312 [cs.SE]
  • [5] Patrick Lewis, Ethan Perez, Aleksandra Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich Küttler, Mike Lewis, Wen tau Yih, Tim Rocktäschel, Sebastian Riedel, 和 Douwe Kiela. 2021. 针对知识密集型自然语言处理任务的检索增强生成技术。arXiv:2005.11401 [cs.CL]
  • [6] Stephanie Lin, Jacob Hilton, 和 Owain Evans. 2022. 如何让 AI 模型更准确地用语言表达不确定性。arXiv:2205.14334 [cs.CL]
  • [7] David J. Malan, Brian Yu, 和 Doug Lloyd. 2020. 在 CS50 课程中如何教授学术诚信。在第 51 届 ACM 计算机科学教育技术研讨会论文集 (美国俄勒冈州波特兰) (SIGCSE’20). 计算机协会,纽约,NY, USA, 282–288. https://doi.org/10.1145/3328778.3366940
  • [8] Microsoft. 2023. Azure OpenAI 服务。https://azure.microsoft.com/en-us/products/aiservices/openai-service/ 访问日期:2023-12-12.
  • [9] OpenAI. 2023. GPT-4 详细介绍。https://openai.com/research/gpt-4 访问日期:2023-10-09.
  • [10] Ruan Reis, Gustavo Soares, Melina Mongiovi, 和 Wilkerson L. Andrade. 2019. 在初级编程课程中,反馈工具的效用评估展示了其重要性,详见相关研究报告,共 7 页。详细链接:https://doi.org/10.1109/FIE43999.2019.9028418
  • [11] 蔡孟霖、翁崇伟和陈承良于 2023 年进行了一项研究,探讨了在化学工程教育中利用大语言模型 (LLMs) 的可能性。他们尝试利用 Chat-GPT 构建核心课程的问题解决模型,旨在提高教学质量。具体成果发表在《化学工程教育》杂志第 44 期,页码为 71-95。详细链接:https://doi.org/10.1016/j.ece.2023.05.001
  • [12] 杰里米·魏斯曼在 2023 年提出了对 ChatGPT 在教育领域应用的批评观点,认为其可能带来负面影响。
  • [13] 吴迈克、诺亚·古德曼、克里斯·皮克和切尔西·芬恩在 2021 年提出了一种创新方法——ProtoTransformer。这种方法结合了元学习的理念,旨在为学生提供更加有效和个性化的学习反馈。
  • [14] 卡特·泽恩克和大卫·J·马兰于 2023 年进行的研究,专注于如何在计算机科学教育中针对不同学生的学习舒适度进行适应性教学。他们的研究成果发表在第 54 届 ACM 计算机科学教育技术研讨会(SIGCSE’23)的论文集中,强调了个性化教学方法的重要性。详细链接:https://doi.org/10.1145/3545947.3573249