JAVATUTOR-2026 2026-EL 参赛作品 TEAM 喵喵喵喵
JAVA 算法可视化 × AI 智能体辅助教学系统

让程序执行过程,
完全可见

Make the invisible visible. Understand code by seeing it happen.

JavaTutor · Landing — javatutor.cnLIVE

landing页加载动画 · 拉普兰德陪伴你探索看得见的运行时

PROBLEM · 教学的黑箱

项目背景

--关于我们为什么要做这个

算法初学者面对的课本是静态的,日常开发者手中的调试是不直观的.传统编程学习里,我们在编辑器中写代码、在草稿纸上绘图、在控制台里看结果,无法直观感受中间的动态运行过程。而 AI 的加入,好像并没有让水变清.

01 静态之山
静态的抽象概念缺乏「动态运行」的锚点

数组、链表、递归、栈帧、引用传递、时间复杂度……这些概念在初学者的脑海中并没有很好的建立起动态变化的模型。课本上的示意图是静态的,而你的oj报错却是动态的——面对满屏的报错,也许你只能复制粘贴给 ai ,或者问 agent ,却无法看清程序是怎么执行的。

把每一步的变量、栈帧、堆对象可视化成容易理解的动态图示,随着程序的运行自动播放。

02 调试之山
错误从哪一步开始,你不清楚。调试一旦错过了某个节点,无法回退

程序出错时,我们看到的只有最终结果或一条崩溃信息,却看不到「从哪一步开始、哪个值开始不对」。传统 IDE 的断点调试对新手而言,是另一门更难的课——而且只能步步向前,既无可视化,也无法回放。

逐步前进 / 后退 + 三色行高亮,把程序执行的内阁步骤记录下来,使之可以被回溯。遇到程序执行崩溃, agent 自动识别 ,“让 agent 帮我看看”降低修 bug 心理负担

03 AI 之惑
只看静态的源码,ai 有时无法发现你真正的问题

agent 助手只能看到代码文本,看不到运行时状态。它无法了解到运行时 state ,从而可能无法一针见血地指出你的问题所在——而这恰恰是我们最需要的。

问答模块智能体直接读取 AST 插桩得到的真实执行快照;评审 Agent 对五类事实逐一核查,保证可靠性。

“大多数 AI 编程助手看到的只是『代码』;
JavaTutor 的智能体,看到的是代码真实运行时每一步的状态
回答「以执行为依据」,而不是「以经验为依据」。”

从「文本代码」到「运行时状态」,存在两层 gap , JavaTutor 对此一一给出回答。

GAP 01真实性 · 幻觉
ai 对于过程的理解仅停留在推理阶段,从未真实执行代码虽然随着迅速迭代,ai 会选择真实执行代码,但这其中的过程真实性依旧存疑。
JavaTutor 的回应 事前约束:回答必须建立在 step_facts 真实执行得到的数据上,每一项数据使用时都有出处。
事后把关:critic 评审 Agent 核查,发现编造即刻修订,verify 核对兜底,主动呈现决策痕迹。
GAP 02过程数据不透明
执行过程中的变量变化、数据结构,ai 不会主动向用户提供即使 ai 会真实写脚本去执行代码看实际运行结果,其中的 thinking chain 和 状态变化 无法主动暴露给用户。很多初学者并不知道应该了解哪些数据,也不知道如何提问。
JavaTutor 的回应 结果可查证:每条回答自带「决策痕迹」——意图、依据、工具调用及耗时、降级、治理裁决、核对结果逐项留痕,用户可随时查验这个回答是怎么来的。
MODE 1 · 单文件模式 · SINGLE-FILE
SEC.01 / ALGO KNOWLEDGE

算法知识库,构建你的算法体系

算法知识库是你的前置知识库,也是你每次练习算法的回溯点。每个重要算法都配有 leetcode / 代码随想录 / 洛谷 / 菜鸟教程 对应题解。每次运行,系统自动识别算法,在右下角提供算法知识库跳转弹窗。

算法知识库 — javatutor.cnLIVE

FIG.1 · 运行实录 · 算法知识库实际浏览演示 · 七大分类 · markdown + index.json 统一索引 · 内容与站内一致

SEC.02 / CODE TEMPLATES

点击算法模板,即刻置入。

算法模板库 提供经典预设一键载入。减轻认知之外的负担,让你更便捷地学习算法本身。

算法模板 · ClassicCodePanel — javatutor.cnLIVE

FIG.2 · 运行实录 · 点击模板 → 即刻置入 → 自动运行与拖拽 · ClassicCodePanel 实际操作演示

SEC.03 / DATA STRUCTURE CANVAS

数据结构可视化,让算法变得清晰。

「抽取 → 布局 → 渲染」pipeline, 精准识别代码中的算法,使用容易理解的数据结构可视化方式,随程序运行自动播放。

归并排序 · MergeSortTreeCanvasLIVE

FIG.3-1 · 运行实录 · 分治树 · 分裂 → 逐层合并

KMP 字符串匹配 · KmpCanvasLIVE

FIG.3-2 · 运行实录 · next 数组跳转 · 命中高亮

链表反转 · LinkedListCanvasLIVE

FIG.3-3 · 运行实录 · prev/cur/next 三指针 · 箭头逐一反转

网络流 · GraphCanvasLIVE

FIG.3-4 · 运行实录 · 增广路径 · 流量累加

有向图 · GraphCanvasLIVE

FIG.3-5 · 运行实录 · BFS 波纹扩散 · 访问编号

堆排序 · TreeCanvasLIVE

FIG.3-6 · 运行实录 · 堆树 · 绿色已排序尾段

插入排序 · SortBarCanvasLIVE

FIG.3-7 · 运行实录 · 已排序边界 · 玫红插入位

SEC.04 / CFG & MEMORY

流程图展现执行全貌,
内存监控带你了解jvm内部。

Mermaid 实时生成流程图,执行节点高亮;内存面板同步呈现栈帧变量与堆数组。

运行实录 · 控制流图 · 二分查找 — MermaidLIVE
内存状态 · 栈帧 + 堆数组LIVE

FIG.4 · 运行实录 · 左:Mermaid 流程图(当前节点高亮) · 右:栈帧 + 堆数组联动

SEC.05 / ONLINE TESTING · 在线测试

LeetCode 主代码补全,跑通你的思路。

粘贴题目的主代码,自动补全外围结构与测试用例,逐行比对输入输出,在可视化执行中验证解法。

测试 · LeetCode 主代码补全 — javatutor.cnLIVE

FIG.5 · 运行实录 · 粘贴主代码 → 自动补全 → 用例逐行比对

MODE 2 · 多文件模式 · MULTI-FILE
SEC.06 / MULTI-FILE PROJECT · 多文件模式

从单文件到工程,类协作一目了然。

单文件专注算法可视化,而多文件专注类协作关系解释。多文件项目整体运行、UML 静态分析与跨文件调试。

多文件模式实录 · 44s
多文件模式 — UML 导航LIVE

FIG.6 · 运行实录 · 多文件模式自动生成 UML ·

MODE 3 · 智能体教学 · AI AGENT
SEC.07 / AI AGENT CORE

Agent 智能体教学

部署于 Coze 平台,以 LangGraph 状态图组织。负责快捷提供报错解答和教学任务

▍智能体状态图 · AGENT STATE GRAPH
Agent 状态图 FIG.7-1
Agent 状态机全景 · main_agent ⇄ guard ⇄ run_tools 工具环 + critic / verify 收束链
▍Agent 使用三大场景 · CORE SCENARIOS
场景 1 · 运行报错排查实录

运行报错时,一键发送「让 Agent 帮我看」——agent 指出出错那一步,并附带实际数据作为依据。

运行报错排查 — 让 Agent 帮我看LIVE

FIG.7.1 · 运行实录 · 运行报错排查 · agent 一键修复

场景 2 · 代码一键修改实录 ·

Agent 提供修改方案,用户确认后一键应用并修正代码

代码一键修改 — 方案确认 · 一键应用LIVE

FIG.7.2 · 运行实录 · 代码逻辑错误诊断 · agent 指出问题并提供方案 · 一键应用正确代码

场景 3 · Agent 解说当前步实录

Agent 提供基础问答,告诉你这一步和争端代码在做什么,并提示导航内存状态与数据结构,快捷跳转

当前步详解 — 内存 / 数据结构导航LIVE

FIG.7.3 · 运行实录 · ai 解说当前步骤和整段代码 · 跳转内存监控/数据结构

“教学的前提是信任,
信任的前提是真实和透明。”

TEAM 喵喵喵喵 小队

我们的开发人员

黄杰 team leader GitHub

项目统筹 · Coze 智能体架构 · 后端 AI 集成 · 安全沙箱 · 控制流图 · 测试模式 · 工程基建
  • Coze 智能体架构:主导 javatutor-coze 仓库,完成多工具架构、Harness 工程(图内 ReAct 真环 / 治理门闩 / 收束轮 / HITL 内核 / 运行时确定性核对)、输出指令通道(视角导航 + 编辑建议块)、评审 Agent、双轨评估系统、RAG、GSSC 上下文工程、会话工作记忆的整体设计与实现
  • 后端 AI 集成:AI 解说多 Provider 链路(流式 / 限流重试)、Coze Chat API 接入与转发
  • 安全沙箱:三层纵深防御——AST 静态扫描(import 白名单 + 方法/类型黑名单)、运行时 SecurityManager 动态拦截、线程隔离与超时控制
  • 控制流图:基于 Mermaid 的流程图实时生成,执行时呼吸灯高亮,全屏 / Zoom / SVG 下载,方法调用钻取
  • 测试模式:支持粘贴 class Solution { method } 格式代码片段,自动补 import 和 main 包装,多种参数类型输入
  • 前端 AI 交互:决策痕迹面板、流式面板、代码优化卡片(方案卡 / 整文件覆盖 / 门禁与撤销)、报错转发入口、视角导航卡片、对话时间线
  • 工程化:CI/CD、Codespaces、一键启动脚本、部署脚本

沈子粟 GitHub

前端播放器 · 堆栈内存可视化 · 多文件系统 · 执行引擎扩展 · AI grounding
  • 播放器核心:步骤播放/暂停、上一步/下一步、跳转首尾、进度条拖拽、自动播放与速度调节
  • 状态管理:Pinia Store 全局状态,前后端数据对接中枢
  • Monaco Editor:代码编辑器集成 + 三色行高亮(上一步/当前/下一步)
  • 多方法调用:为 Instrumenter 增加方法声明级别插桩,支持嵌套调用时每层栈帧独立追踪
  • 堆/栈内存可视化:真实编译级插桩追踪,改造 TraceEngine 实现多栈帧管理、堆对象字段展开、色彩标签映射联动、数组/对象/集合类可视化
  • 多文件项目:整体运行、静态分析、UML(类图 / 结构图 / 调用图)、共享控制栏
  • 多文件调试:跨文件 step 递增、堆对象按文件隔离、栈帧文件归属;上传支持拖拽文件/文件夹
  • AI 辅助:Coze 侧确定性 grounding 核对器

张邹铭 GitHub

前端可视化 · 后端执行引擎 · 设计系统 · 部分 Harness
  • 后端执行引擎:AST 插桩(Instrumenter)—— JavaParser 解析 + 遍历插桩,执行可视化的数据源头
  • 数据结构可视化 Canvas:数组 / 排序 / 链表 / 树 / 堆 / 图 / KMP 的可视化方案设计和实现
  • 算法知识库与题解:七大分类 markdown + index.json 索引,及识别算法-算法手册的一键跳转
  • 设计前端 Landing 动画、系统主题和配色,看板娘授权以及语库设计
  • 设计前端整体 UI:单文件 / 多文件系统分开设计——单文件专注算法可视化,多文件专注类协作关系解释
  • 编辑建议(edit-suggestion):agent 结构化块解析、diff 定位到源码;优化方案卡(勾选方向→提方案)+ 门禁校验 + 应用/撤销确认
  • 后端三层日志:访问日志 / 结构化日志 / 聚合检索实现

向鸿桂 GitHub

前端 UI / 视觉 · 壁纸与背景系统 · 全局状态提示 · 控制台输出面板 · Coze 提示词调优
  • 界面与视觉优化:统一 Maple Mono 字体(本地自托管)、代码区蓝黑配色、顶栏合并为单条品牌栏、运行栏左右 / 对角拖拽调宽、多文件可视化图例与类型标识
  • 壁纸与背景系统:预设壁纸 + 自定义图片 / 视频背景 + 网格背景 + 背景音乐 + 卡片透明度调节
  • 全局状态提示:全局 loading 动画 + 错误提示条(运行类错误常驻展示,一键转发给 agent 诊断)
  • 控制台输出面板:终端风格深色面板,程序输出实时捕获,可折叠 / 展开
  • Coze 侧调优fetch_execution_context 调用率提升、Judge 兼容 reasoning 模型、领域本体核对与扩充
EPILOGUE / 写给 AI NATIVE 的一代

AI 时代,答案变得很便宜,
但理解力依然很贵。

蒋炎岩老师在《如何成为 AI Native 的大学生》里说,AI 可以降低学习的痛苦,却不该替你完成思考;它可以当 copilot,但不能当大脑。

初学 Java 最难的,常常不是语法,而是看不见程序怎么一步步运行:变量何时改变,栈帧如何进出,递归怎样展开,对象何时创建,yield 为什么让函数停住。Everything is a state machine。代码看不懂,很多时候不是你不够聪明,而是没人把状态迁移摊开给你看。

我们想做的,就是把这层“看不见”变成“看得见”。让你亲手追一次执行,亲眼看一次递归,亲自补上一个缺口。AI 可以帮你查、帮你讲、帮你生成例子;但真正的理解,仍然要你自己走一遍。底大一级压死人,Scaling Law 对人也成立——你喂给自己的知识、练习和反馈,最终会长成你的直觉。

所以,欢迎你,正在为学 Java 而努力的你。愿你在这里不只拿到一段能跑的代码,而是收获一次“原来如此”的正反馈。十次困惑里只要有一次被点亮,它就会推着你继续往前。

AI 能替你生成答案,替不了你长出直觉。
让 AI 成为你的助手,别让它替你思考。

—— JavaTutor 团队 · 2026