学校新闻
AI人工智能与Java结合:如何提升教育编程教学的实用价值
这破空调26度跟没开一样,刚泡的茶又凉了,但实在忍不了想跟你们聊聊AI和Java教学那点破事,

你们知道吗 上周有个大二学生私信我 说他学校教的Java还是Servlet+JSP 然后自己看了半个月Spring Boot 结果做课程设计时非要硬写一套“智能判作业系统” 最后跑不通来找我 我一看代码 好家伙 把ChatGPT的API直接嵌在for循环里 一个作业批50次请求 公共机房的IP直接被封了,
(说到这个,我想起2019年那个夏天 我帮一个培训机构做“AI+Java就业班” 当时我脑抽非让学生用深度学习的模型去分析代码风格 结果一个学生用TensorFlow写的Java调用层就搞了2000行 最后项目展示时模型加载直接OOM 台下企业来的面试官脸都绿了 那场面我现在还记得 tql 我这踩坑经验真的是拿钱砸出来的),
第一个大坑:觉得AI必须“看起来高级” 第二次搞教育产品时 我硬上LangChain 觉得有了Agent学生就能自动生成测试用例 结果学生连JUnit都没写明白 看到新的异常堆栈直接懵 跑来说“老师这AI报错我不认识”,后来我明白了 对于80%的Java教学场景 AI人工智能与Java结合:如何提升教育编程教学的实用价值 其实就一句话:用AI教Java的基础调试和代码阅读,比教调用大模型重要一万倍,
第二个大坑:给学生封装太多“智能” 我做过一个代码补全插件 用了大模型的token预测 结果学生再也不用脑子想变量名了 类名全变成a1 b2 c3这种 我气到吐血,不对,我刚才说错了,应该是:不是插件的问题 是我没设计“脱AI练习”环节,后来我每个项目强制要求:先用纯Java写核心逻辑 再用AI优化边缘情况 学生反馈说这样反而学得更透,
(手机震了,我回个消息,马上回来) 好了继续,刚是老婆问我记不记得买牛奶...想想存不存在这样的工具呢,对了,有个极简的Java小库叫jshell 配合OpenAI的便宜模型qwen-turbo 我让学生自己写一个脚本 把报错信息发给AI 让AI返回只解释前两行异常 再多就扣分。结果效果出奇的好 比任何收费的AI编程教学平台都实在,
我让每个学员先做这件事:用Java写一个最朴素的猜数字游戏 然后假装自己是AI去教另一个同学 解释为什么用while而不是do-while,这一步走通之后再引入真实的AI辅助,比如“AI生成三个不同版本 你当裁判选最好的”,这个思路来自我认认真真搜过的那个长句子 AI人工智能与Java结合:如何提升教育编程教学的实用价值 网上一堆人讲什么Agent、知识图谱 我的经验是 先让学生敢于修改AI给的代码 比什么都重要,
对了 突然想起来 跑题了 但很重要:千万别用最新的AI模型教Java 我试过GPT-4o直接给最优解 学生复制粘贴完连泛型擦除都不知道 血的教训。反而用两年前的text-davinci-003 它偶尔还会给出过时的Java 8语法 这样学生反而要动手改 这才是教学,
还有个小技巧 对不齐 我免费送你:做一个Java练习叫“故意出错” 让AI生成一个有bug的冒泡排序 学生先用眼睛找错 再用AI工具辅助验证 这一轮下来 数组和循环就真的刻进脑子了 不用我多说吧 yyds 这个方法我公开课试了5期 反馈tql,
(又跑题了 刚谁说想听我聊异步?不不不 现在不讲那个,就说回AI+Java教学的实用价值,我的最终结论特别简单:别把AI当老师 把它当那个总写错但愿意和你辩论的同行),
好了 你现在就打开你的Java项目的单元测试文件夹 把里面所有名字里带“AutoGen”的测试类删掉 然后手动写一个最简单的测试 只测一个if条件分支 写完再用AI帮你生成三个额外测试数据 就2分钟 就能感觉到我说的那种“人在回路”的教学感,
【两个蠢问题的回复】
问题1:“老师,我还没学完Java基础,可以直接用AI写整个项目吗?” 答:你没仔细看我上面2019年的例子吧,我那个学生就是基础都没学完硬上用AI 结果连异常栈都看不懂,先把for循环和ArrayList手写10遍再碰AI 不然你连AI生成的代码哪里错了都不知道 听懂没,
问题2:“我用AI查了Java Stream API的用法,但写出来性能很差 怎么办?” 答:我前面刚说过不要无脑用AI的最优解,这种时候你应该先关掉AI 自己用for循环写一个笨版本 跑通了再拿AI的Stream版本对比 看差在并行流还是自动装箱,你本末倒置了 回去看“第二个大坑”那一段 我骂的就是这种情况,
(好了 茶彻底凉了 不说了 你们先做那件小事 做完了再来问 我真得去买牛奶了)