中国电子商会信息工程测试专业委员会主办
今天是
中国电子商会信息工程测试专业委员会
产教融合共同体
资源共享 您的位置: 主页 > 产教融合共同体 > 资源共享
基于AI大模型的Java程序设计实践方法探究
2025-12-26 返回列表

聪,王

东北大学秦皇岛分校 计算机与通信工程学院,河北 秦皇岛 066004




摘 要:针对 AI 大模型在 Java 程序设计实践教学中的应用,分析大模型对程序设计教学带来的挑战和机遇,提出基于 AI 大模型的 Java编程实践教学方法并阐述如何用于辅助实践教学,最后说明该方法的有效性。

关键词:大语言模型;程序设计实践; Java 语言;教学改革



0

引 言

自 2022 年以来,随着 ChatGPT、qwen 2、llama 3 等人工智能大模型的问世,计算机教学改革也迎来了新的机遇和挑战。 Java 程序设计课程具有实践性强、密切结合实际应用、注重动手能力培养、强调问题解决能力等特点,面临培养周期长、师资力量短缺、教学案例滞后等一系列问题。随着 AI 大模型逐步应用到教育教学领域,诞生了新的思路和方法来解决传统的实践难题。

1

大模型与实践教学现状

对于 Java 程序设计的实践教学来说,AI 大模型的迅猛发展具有双重意义。一方面,大模型是一种优秀的辅助工具,可以改进教学方法、优化教学手段[1];另一方面,大模型正在改变包括 Java 在内的软件开发模式[2-3],应用场景的更新反馈到课堂教学中,教学目标和重点难点都需要随之调整。

在程序设计类课程的实验实践中,MOOC、Online Judge 系统等工具都曾发挥过巨大作用[4-5],信息化手段在学生编程能力培养过程中具有显著效果。然而,大模型的应用让程序设计教学实践拥有了更加广阔的前景和更高的提升空间,“基于人工智能的智慧课程建设”,与传统的“基于信息化手段的课程建设”具有本质性区别。人工智能借助生成模型,从信息的“搬运者”转变成了“生产者”,有能力解决五花八门的“新问题”。它改变了教师“一对多”的教学模式,使教师可以采用更加高效的“一对一”教学模式。各种教学模式的本质都是以“师生”二元联系为主,其他诸如知识图谱、视频、程序设计平台等工具的目标都是从各种不同维度来强化二者的联系,而不是冲击二者关联的主体地位。大模型不同于以往的工具,以第三个主体的身份介入教学中,用“人机”交流部分取代了“师生”交流。这不仅给传统“师生”关系带来了挑战,还给依托传统教学模式的一系列工作带来了挑战,如团队精神、工程伦理培养、课程思政建设等都受到了影响。

在工业界的程序设计工作中,大模型已然初露峥嵘,能够生产出高质量的 Java 代码,但是对 Java 初学者而言,这并非是一个完全的好消息。首先,大模型“幻视”现象严重,资深程序员能够通过经验忽略错误,但不利于开展教学答疑;其次,初学者可以不受限制地获取所有代码,会影响学习进步的过程;最后,虽然大模型普遍受到伦理约束,但是存在部分商用智能体从不良来源获取知识,会造成如“360 智能手表辱华”等恶劣后果。

因此,如何在程序设计实践中融合人工智能,来解决实际存在的问题,切实提升教学效果,是一个全新的课题。

2

 Java 程序设计实践面临的挑战和解决思路

Java 程序设计实践面临的挑战主要如下。

(1)实践课时缺乏。以作者团队承担的 Java 程序设计课程为例,作为大一春季学期必修课,此课程包括 32 学时的理论课时,没有实验课时,但是配备了一周(等同 16 学时)的课程设计。几乎八成以上的课程相关实践,需要学生使用课外时间独立完成。受限于整体的培养方案,只有部分高校能够配置 24 学时的实验课时,几乎没有高校能够设置超过 32 课时的实践安排。对学习一门编程语言来说,这些课时是远远不够的。国内某知名教育机构拟定的 Java 培训标准为 800 课时;培训机构普遍安排 4~6 个月的全日制学习,单独学习 Java 语言,其中实践占绝大部分课时。就此可见,普通在校本科生的 Java 实践时间远远低于入门级程序员的需求。

(2)答疑工作量大。为了提升学生的编程能力,程序设计实践中演示型和验证型实验一般较少,以设计型实验居多。需要学生根据要求,自行设计程序结构,自行编写代码。而指导设计型实验,对教师的工作量要求是比较高的。作为初学者,学生自行编写的程序会频繁地遇到各种 bug(程序错误),如果不能及时解决,会严重打击学生的学习积极性。有时候学生会盲目地通过网络寻找答案,这给教学带来了一定的弊端:①学生给出的答案质量良莠不齐,碎片化严重,同时代码版本及配置环境的不同也会带来更多的问题;②越过了教师角色,让教师无法把握学生状态,丧失教学质量优化、课程思政等工作的基础。

(3)重语法重框架轻设计。目前 Java 程序设计理论和实践路径普遍遵循“语法学习—类库学习—框架学习”的路线。学习前期的应用实践以熟悉语法知识为目标,后期的应用实践以掌握 Spring、SpringBoot、Struts、MyBatis 的应用方法为主。Java 框架确实能够简化设计流程,快速搭建应用程序,但是对于学生能力的培养缺失了重要的“设计”环节。开发人员只需要按照框架要求去填写配置文件、实现某些接口即可,失去了对程序的整体掌控能力。随着大模型编程能力的提升,越来越多的程序员开始利用大模型进行代码生成,这一方面降低了程序员的工作强度,另一方面是在逐步减少程序员的工作区间。因此,为了提升学生未来就业的核心竞争力,培养学生的程序设计能力是迫在眉睫的。但是在实际的实践教学过程中,却很难去锻炼设计能力。

综合来说,提升学生 Java 程序实践能力的门槛是缺少一个全流程实践指导、过程把握、代码质量测评的角色。因此,我们的思路是,利用大模型的生成能力和自然语言交流能力,让人工智能深入实践教学中,以期达成以下目标。

(1)指导实践工作:可以充分利用学生的课外学习时间,让学生在存在疑问时充分获得指导;教师可以通过授课内容管控人工智能答疑,确保知识点的完整性和一致性。

(2)管控教学过程:学生学习进度、常见问题、难点问题,都可以通过人工智能反馈。教师也可以通过后台设置,实现课程思政、学习进度查询、增加知识库等功能。

(3)高层次核心能力提升:大模型可以作为虚拟程序员、虚拟测试工程师,由学生担任程序设计师、团队领导的角色,体验团队核心的工作场景。

3

基于 AI 大模型的 Java 实践助手智能 Agent 关键技术

智能 Agent 是一种具有一定智能的软件系统,基于 AI 大模型的智能 Agent 是目前常见的 AI 应用方法。“ChatGPT 之父”奥特曼在 OpenAI 的第一届开发者大会中将构建自主智能体作为 OpenAI 的核心战略。它将充当人类用户和底座大模型之间的角色,如果人类直接与大模型对话,难免因为沟通方式或者专业术语导致“幻视”问题,而且通常无法挖掘大模型的工作潜力。此时,需要领域专业人士搭建专门的智能体(如医疗智能体、教育智能体),智能体能够实现复杂的逻辑,将人类意图更好地传达给大模型。其工作过程如图 1 所示,人类提出一个问题,由特定领域的智能体进行分解,按照一定的逻辑与大模型进行多次交互,得到更加准确的结论。研究结果显示[6],“大模型+智能体”的性能表现是单纯使用大模型的 3 倍。

图片

3.1整体框架

首先搭建面向 Java 程序设计课程的辅助实践教学的教学智能 Agent,其具体功能如下。

(1)专注课程教学工作的教学智能 Agent,能够可信可靠地回答问题,避免教学“幻视”,如问答内容偏离教学、问答具有政治性错误、问答具有工程伦理问题、问答与课堂授课发生冲突、知识点错误等。

(2)知识库,包括一个向量数据库和一个关系数据库。向量数据库用于存储非结构化的学习资料,如教材、教案、大纲等。关系数据库存储课程进度、学生状态等结构化数据。

(3)实现课程进度同步功能,学生可以根据教学智能 Agent 了解本堂课及下堂课的教学计划,同步预习或者复习。

(4)学生代码能力、学习进度的质量评价体系。通过大模型的文本分析、代码分析能力,根据平时作业、讲课进度、学生提问等情况,对每个学生的学习质量进行评价,同时掌握学生的学习进度、课堂效果、常见问题等。

(5)学生编程辅助机制,实现代码解释、代码查错等功能。

教学智能 Agent 整体实施方案如图 2 所示,从使用者来看包括学生、教师两种角色;从软件开发角度来看包括数据库、智能体、底座大模型 3 部分。其中,学生可以在学习过程中针对课程进度、知识点进行提问,也可以在代码开发过程中就具体语法、逻辑结构、代码质量进行提问,或者直接检查代码、生成代码。教师可以通过教学智能 Agent 布置作业,查询学生作业质量,了解常见问题。

图片

数据库部分包括向量数据库和关系数据库,教师提供的学习资料、教案、文本教材等可以存入向量数据库,作为增强检索的素材。作业、学习进度、学生状态等信息可以存入关系数据。

基于教学可用计算资源数量,底座大模型可以使用 qwen 2、llama 3 等开源大模型进行本地化部署、调试,也可以使用智谱华章公司提供的大模型进行在线服务。

教学智能 Agent 由教学团队独立研发的 DoT 平台进行开发。智能体的工作可以由 3 种类型的虚拟角色完成:虚拟教师、虚拟程序员、虚拟思政教师。当问题到达,建立“增强检索→内容生成→内容审核→内容修改→结果提交”的过程,确保消除“幻视”。

3.2 基于有限状态机的教学智能 Agent 工作逻辑

基于大模型的智能 Agent 通常表现形式为聊天机器人,本文所描述的聊天机器人的工作逻辑建立在有限状态机的基础上,这也是目前各类聊天机器人的常见技术路线。其状态转换图如图 3 所示,由初始状态、分类状态、代码检查状态、问题回答状态、代码生成状态、审查状态和其他状态 7 个状态组成,系统进入任何一个状态,则执行该状态的内部任务。

初始状态:智能 Agent 处于待机状态,等待用户输入,得到用户输入后进入分类状态。

分类状态:对用户输入进行分类,根据用户意图分别转入代码检查状态、问题回答状态、代码生成状态或者其他状态。分类工作由底座大模型完成。

代码检查状态:如果用户意图是提交作业,则将用户输入的代码以及其他作业信息提取出来,如果信息不全则要求用户补全。之后根据作业要求检查代码,输出代码评价,并将相关信息存入数据库。

问题回答状态:如果用户意图是对 Java 课程知识点进行提问,则通过检索,基于知识库和大模型的内在知识生成答案,之后进入审查状态。

审查状态:从结果正确性、工程伦理、课程思政等角度对大模型生成的内容进行审核,如果审核不通过,则回到问题回答状态重新生成;如果审核通过则将提问结果反馈给用户。

代码生成状态:如果用户意图是大模型辅助编写代码,且该问题处于指导教师允许的范畴,则进入代码生成状态,该状态将只生成完整的可执行代码与部分注释。

其他状态:如果用户输入不属于 Java 教学实践相关内容,则拒绝回答。

图片

3.3基于投票的审查机制

与常见的大模型聊天机器人不同,当大模型用于教学实践当中时,需要格外重视结果审查工作,对“360 儿童手表辱华言论”等问题持零容忍态度。因此,设计了基于投票的审查机制,其具体方法如下。

当教学智能 Agent 结束回答问题状态,生成回答文本 T,进入审查状态时,执行以下步骤。

第一步,创建 3 个虚拟角色,虚拟教师员甲负责 Java 知识点和代码正确性的审核,虚拟辅导员乙负责思政合规性的审核,虚拟工程师丙负责工程伦理的审核。

第二步,将文本 T 分别交给虚拟教师员甲、虚拟辅导员乙和虚拟工程师丙各自独立进行审核,判断虚拟角色输出是否通过审核,如果不通过需要给出否决理由。

第三步,实行一票否决制,如果文本 T 被否决,那么执行状态转移,将否决理由和本文 T 返回给问题回答状态,进行重新生成。

在资源充足的条件下,虚拟角色建议使用独立的大模型底座,如果资源受限可以考虑共享底座大模型,在极端条件下可以将 3 个虚拟角色的系统 prompt 合并为一个角色。

4

结合智能 Agent 的教学实践方法

通过前述方法建立了基于大模型的教学智能 Agent 软件系统,在经过任课教师的少量前期准备后即可投入到教学应用当中,教师准备工作包括以下 3 步。

第一步,由任课教师将教案、Java 课程大纲、常见问题及回答、其他电子版资料进行向量化,存入向量数据库,在教学智能 Agent 进行问答时,将首先检索向量数据库,以向量数据库作为参考生成回答。

第二步,由任课教师设置教学智能 Agent 的系统 prompt,这个过程类似于教师向助教交待注意事项,主要包括课程使用的 Java 开发环境、JDK 版本号等。教学智能 Agent 在回答问题时,将与系统 prompt 对齐。除了基本配置,还可以包括其他注意事项,如“除实验 3 以外,不允许 Agent 在回答中生成代码”“回答问题限制在 300 字以内”等。

第三步,由任课教师将教学日历、课后作业或者实验、课程思政案例等结构化信息存入关系型数据库。

学生使用智能 Agent 进行辅助学习,辅助代码编写工作,所有交流都以自然语言完成,基本上不存在学习门槛。首先,学生可以使用自然语言查询任意一节课的知识点和授课安排,便于课前预习和课后复习。其次,学生可以在完成课外实验或者作业之后,将代码复制给 Agent,教学智能 Agent 随后会进行批改,从功能完成度、代码质量、实验要求约束条件等方面给出评语。再次,学生可以在完成作业、完成实验、自主练习等任何条件下,请求教学智能 Agent 帮助查找 bug,询问知识点。最后,每次课后,教学智能 Agent 向教师汇报答疑和作业完成情况。教师可以随时更新向量数据库中的常见问题,并在课堂中进行反馈。

5

教学效果

本文提出的方法经过了一学期的实践检验,取得了良好的效果。学生通过开发的教学智能 Agent 提出疑问,并获得解答。使用最新版本的大模型作为底座,又在知识库中收录了课堂相关的教学资料和教学进度,所以问题回答质量不低于互联网检索结果,而且与课堂关联度更高。所以学生具有较高的意愿使用自研工具,从后台数据来看,学生平均提问次数 10 次,远高于以往向教师提问次数。学生提出的问题经过后台汇总,将重点问题反馈给教师指导教学。每次上课前,教师可针对重点问题进行回顾讲解,提升课堂教学质量。

6

结 语

通过设计并实现教学智能 Agent 软件系统,有效解决了实践课时缺乏、答疑工作量大等问题。实际应用表明,该方法能够显著提升学生的编程能力和学习效果,为计算机教学改革提供了新的思路。未来,我们将进一步优化教学智能 Agent 的功能,探索更多人工智能技术在教学中的应用场景,以期全面提升教学质量。


二维码
中国电子商会信息工程测试专业委员会 电话:010-87660482 传真:010-87660482 邮箱:ceietn@sina.com 地址:北京经济技术开发区博兴六路17号院1号楼3层(100176)
Copyright © 2021-2027 中国电子信息工程与测试网 版权所有 主办单位:中国电子商会信息工程测试专业委员会 技术支持:电设信科(北京)技术有限公司 备案号:京ICP备11002915号-001