1. LLM对软件工程教育的影响
LLM对软件工程的影响,不仅仅是对教学内容的影响,而且会影响到许多方面,例如:
例如学生提交的代码,不是自己一行一行代码敲出来的,而是LLM生成的,怎么办?
是否让学生使用LLM?因为有人说,不是LLM淘汰程序员,而是会使用LLM的程序员淘汰不会使用LLM的程序员。从这个角度看,我们应该允许学生使用LLM或类似GitHub copilot、Cursor等AI编程工具。
技能价值重构:大模型的应用使得90%的传统技能价值归零,而剩余的10%技能价值被放大1000倍。这对大学毕业生的就业带来了直接影响,迫使教育体系重新审视培养目标。
学生遇到问题,不再问老师了,而是问大模型,会让教师情何以堪吗?
有了大模型和一些编程平台,今天自学环境更加成熟了,上课学生不再听老师讲解,而是学生自学、自我练习、自我提升。我们教师的价值体现在哪里?论知识容量,比不过大模型;让回答问题的响应速度,也比不过大模型。
学生可能过度依赖AI工具,导致记忆力和思维能力退化。例如,学生在编写代码时过度依赖AI助手,可能缺乏独立解决问题的能力。如果学生过于依赖LLM,其基础不扎实、基本功不行,这样的学生是否合格?我们是否又重新加重期末考试的比重?
2. 我们有什么对策呢?
将AI视为协作伙伴而非替代工具 强调元认知能力训练 构建人机协作的创新实验室
计算机科学与其他学科深度融合 开设AI伦理必修课程 鼓励学生参与实际的跨学科AI项目
这一切,意味着我们必须快速行动起来,进行教学改革,快速推进,完成软件工程教育范式的深层次的转变。
认知维度:从知识累积到能力构建; 技术维度:从单一技术到跨学科融合; 方法维度:从被动学习到主动探索; 伦理维度:从技术中立到价值判断。
重塑课程内容:课程应简化基础概念和理论,增加面向问题解决的案例分析和实操环节。例如,在软件测试课程中,采用PBL模式,让学生通过实际项目学习测试用例的设计和执行。
实时性与前瞻性:课程内容需要更加灵活,及时纳入最新的技术发展和行业实践。例如,将最新的LLM应用、模型训练方法、AI伦理等纳入教学大纲。 跨学科融合:大模型应用广泛,软件工程教育需要与其他学科深度融合,如数据科学、认知科学和伦理学,培养学生的跨领域综合能力。
个性化的学习目标和评估标准:根据学生的兴趣和特长,制定个性化的学习目标和评估标准,利用大模型,可以为每个学生提供个性化的学习建议和反馈,帮助他们以最适合自己的方式学习。 引入AI助教:利用大模型作为助教,减轻教师的工作负担,同时实现个性化教育。例如,学生在编写代码时,可以实时获得AI助手的反馈和建议,提高学习效率。 学习分析与数据驱动教学:通过对学生学习行为的数据分析,教师可以更好地了解每个学生的需求,制定有针对性的教学策略。 自我反思与评估:鼓励学生进行自我反思与自我评估,培养自我反思和持续改进的意识。
虚拟实验室与仿真实训:借助大模型和虚拟现实技术,学生可以在虚拟环境中进行软件开发和测试,积累实际经验。
项目驱动与PBL深化:加强问题驱动学习(PBL),让学生在解决真实问题的过程中,深入理解理论知识,培养实践能力。
激发创造力:大模型可以生成多样化的解决方案,启发学生的思维,激发他们的创造力和创新意识。 协同创新:通过人机协同,学生可以与AI共同完成复杂的项目,探索新的领域和可能性。
问题驱动学习(Problem-Based Learning, PBL)是一种以学生为中心的教学方法,通过精心设计的问题驱动学生自主学习,结合理论与实践,提升分析和解决问题的能力。 PBL不仅关注知识的掌握,还注重批判性思维、沟通协作和创新能力的培养。通过实际问题的解决,激发学生的学习兴趣和主动性。让学生在真实情境中应用所学知识,提高实际操作能力。 问题设计的深度与广度:教师要精心设计、选择具有挑战性的、来自软件企业/业界的实际问题,激发学生的学习动力和责任感。融入软件工程跨学科知识,让学生从多角度分析和解决问题。
强化团队协作与沟通:组建由不同背景和专业的学生组成的团队,培养他们的协作能力和包容性。加强口头和书面沟通的训练,提升学生的表达和交流能力。
自主学习与反思:在PBL中,学生需要自主寻求解决方案,从而培养他们的自学能力。鼓励学生定期反思自己的学习过程和方法,持续改进,提高学习效果。
多元化的评估方法,如注重对学生学习过程的评估,包括参与度、创新性和合作能力;通过项目成果的展示和答辩,评估学生的综合应用能力。
强化伦理意识:在AI广泛应用的背景下,软件工程师对社会负责的伦理意识比以往任何时候都更加重要。例如,通过分析实际案例,如算法歧视、数据隐私泄露等,帮助学生理解AI可能带来的伦理问题。在面对伦理困境时,能够做出符合道德规范和社会期望的决策。 培养责任感:教育学生认识到自己开发的软件可能对社会产生的深远影响,培养他们的社会责任感。 规范的建立与遵守:引入相关的法律法规和行业标准,帮助学生了解并遵守伦理规范。鼓励学生在整个软件开发过程中,持续反思自己的工作是否符合伦理要求。 培养包容性:在教学中强调技术对社会公平的影响,引导学生关注弱势群体的需求。 绿色计算:引导学生关注计算资源的节约和高效利用,开发环保的技术解决方案。
未来软件工程师的核心竞争力将不再是代码编写能力,而是:
系统思维能力:理解复杂系统的交互与治理; 批判性思维能力:对AIGC生成的内容,善于质疑和分析,从而准确评估AI输出的结果。 学习能力:善于学习,与时俱进,超越自己。 与AI协作能力:高效与AI系统配合的元认知能力; 价值判断能力:在AI生成的方案中进行伦理和战略选择
学习型社会:技术的迅猛发展要求软件工程师具备终身学习的能力,随时更新知识体系。 柔性教育体系:教育机构需要建立弹性的教育体系,支持学生在不同阶段返回校园深造。
协同共事:培养学生与AI协同工作的能力,发挥人机各自的优势,提高工作效率。 元认知能力:提升学生对自身思维过程的认知,善于审视和调节自己的学习和工作策略。
国际化教育:拓展学生的国际视野,理解全球科技发展的趋势和不同文化背景下的合作方式。 多元文化理解:培养学生的文化敏感性,能够在多元文化环境中工作和交流。
批判性与创造性思维:培养学生的批判性和创造性思维能力,使其能够在AGI时代中找到自身的独特定位。 跨学科能力:结合计算机科学、社会学、心理学等多学科知识,提升综合能力。 自学能力:培养学生的自学能力,使其能够持续跟踪和掌握最新技术 分析能力:能够从复杂问题中提取关键要素,进行系统分析。 设计能力:具备良好的系统设计能力,能够设计高效、可靠的软件系统。 开发/编程能力:掌握先进的编程技术,能够高效开发和调试代码。 团队协作能力:具备良好的沟通和协作能力,能够在团队中发挥作用。 创新能力:具备创造性思维,能够提出新颖的解决方案。 AI技能:掌握大模型相关技能,能够有效利用AI工具辅助开发。
保持开放与好奇的心态; 建立持续学习机制; 在人机协作中找到人类独特价值。