5 月 3 日消息:生成式人工智能正在改变软件开发行业。AI 驱动的编程工具正在协助程序员完成他们的工作流程,同时 AI 领域的工作岗位也在持续增加。但这种转变在学术界也很明显——学术界是下一代软件工程师学习编程的主要途径之一。
计算机科学的学生正在拥抱这项技术,使用生成式 AI 帮助他们理解复杂概念,总结复杂的研究论文,集思广益解决问题的方法,提出新的研究方向,当然还有学习如何编程。
「学生是早期采用者,并且一直在积极测试这些工具,」斯坦福大学计算机科学硕士生、助教 Johnny Chang 说。他还在 2023 年创立了 AI x Education 会议,这是一个虚拟的学生和教育工作者聚会,讨论 AI 对教育的影响。
为了不落后,教育者也在尝试使用生成式 AI。但他们在采用这项技术的同时,还在努力确保学生学习计算机科学的基础。
「这是一个困难的平衡行为,」新加坡国立大学计算学院的副教授 Ooi Wei Tsang 说。「鉴于大型语言模型正在迅速发展,我们仍在学习如何做到这一点。」
对语法的重视减少,对解决问题的重视增加
大多数初级计算机科学课程都集中在代码语法和使程序运行上,而知道如何阅读和编写代码仍然至关重要,但测试和调试——通常不是课程大纲的一部分——现在需要更明确地教授。
「我们看到这种技能的提高,学生从生成式 AI 中获得代码片段,他们需要测试其正确性,」纽约州波茨坦克拉克森大学计算机科学教授 Jeanna Matthews 说。
另一个重要的专业技能是分解问题。「这是一个早期就需要知道的技能,因为你需要将一个大问题分解成更小的部分,以便大型语言模型可以解决,」加州大学圣地亚哥分校计算机科学副教授 Leo Porter 说。「很难找到课程中教授这一点的地方——也许是在算法或软件工程课程中,但那些是高级课程。现在,它成为了初级课程的优先事项。」
因此,教育者正在修改他们的教学策略。「我以前只关注学生编写他们提交的代码,然后我在代码上运行测试用例来确定他们的分数,」多伦多密西沙加大学计算机科学副教授 Daniel Zingaro 说。「这是对软件工程师含义的狭隘看法,我只是感觉有了生成式 AI,我设法克服了这种限制性看法。」
Zingaro 与 Porter 合著了一本关于 AI 辅助 Python 编程的书,现在他让学生分组工作,并提交一个视频来解释他们的代码是如何工作的。通过这些演示,他了解到学生如何使用 AI 生成代码,他们在哪些方面遇到困难,以及他们如何接近设计、测试和团队合作。
「这是一个机会,让我评估他们整个软件开发 [生命周期] 的学习过程——不仅仅是代码,」Zingaro 说。「我感觉我的课程已经开放了更多,它们比以前更广泛了。我可以让学生们在更大、更高级的项目上工作。」
Wei Tsang 也同意这种看法,并指出生成式 AI 工具「将为我们节省时间,教授更高层次的思考——例如,如何设计软件,应该解决的正确问题是什么,解决方案是什么。学生可以花更多的时间在优化、伦理问题和系统的用户友好性上,而不是专注于代码的语法。」
避免 AI 编程陷阱
但教育者对大型语言模型的幻觉倾向持谨慎态度。「我们需要教会学生对结果持怀疑态度,并负责验证和验证它们,」Matthews 说。
Matthews 补充说,生成式 AI「可能会缩短学生依赖它太多的学习过程。」Chang 同意这种过度依赖可能是一个陷阱,并建议他的同学自己探索问题的可能解决方案,这样他们就不会失去批判性思维或有效的学习过程。「我们应该让 AI 成为学习的副驾驶——而不是自动驾驶——」他说。
其他缺点包括版权和偏见。「我教导学生关于道德约束——这是一个建立在其他人的代码上的模型,我们会承认所有权,」波特说。「我们还必须认识到,模型将代表已经存在于社会中的偏见。」
适应生成式 AI 的崛起涉及学生和教育者共同努力和相互学习。对于她的同事,Matthews 的建议是「尝试培养一个环境,鼓励学生告诉你他们何时以及如何使用这些工具。最终,我们正在为学生准备现实世界,现实世界正在变化,所以坚持你一直做的事情可能不是最好地服务于学生在这个过渡中。」
Porter 对现在所做的改变将为学生在未来服务持乐观态度。「我们有一个长期的学术界教授的内容与学生到达行业时实际需要的技能之间存在差距的历史,」他说。「如果我们接受大型语言模型,我希望我们可能有助于缩小这个差距。」