项目背景
--关于我们为什么要做这个
算法初学者面对的课本是静态的,日常开发者手中的调试是不直观的.传统编程学习里,我们在编辑器中写代码、在草稿纸上绘图、在控制台里看结果,无法直观感受中间的动态运行过程。而 AI 的加入,好像并没有让水变清.
数组、链表、递归、栈帧、引用传递、时间复杂度……这些概念在初学者的脑海中并没有很好的建立起动态变化的模型。课本上的示意图是静态的,而你的oj报错却是动态的——面对满屏的报错,也许你只能复制粘贴给 ai ,或者问 agent ,却无法看清程序是怎么执行的。
把每一步的变量、栈帧、堆对象可视化成容易理解的动态图示,随着程序的运行自动播放。
程序出错时,我们看到的只有最终结果或一条崩溃信息,却看不到「从哪一步开始、哪个值开始不对」。传统 IDE 的断点调试对新手而言,是另一门更难的课——而且只能步步向前,既无可视化,也无法回放。
逐步前进 / 后退 + 三色行高亮,把程序执行的内阁步骤记录下来,使之可以被回溯。遇到程序执行崩溃, agent 自动识别 ,“让 agent 帮我看看”降低修 bug 心理负担
agent 助手只能看到代码文本,看不到运行时状态。它无法了解到运行时 state ,从而可能无法一针见血地指出你的问题所在——而这恰恰是我们最需要的。
问答模块智能体直接读取 AST 插桩得到的真实执行快照;评审 Agent 对五类事实逐一核查,保证可靠性。
“大多数 AI 编程助手看到的只是『代码』;
JavaTutor 的智能体,看到的是代码真实运行时每一步的状态。
回答「以执行为依据」,而不是「以经验为依据」。”
从「文本代码」到「运行时状态」,存在两层 gap , JavaTutor 对此一一给出回答。
事后把关:critic 评审 Agent 核查,发现编造即刻修订,verify 核对兜底,主动呈现决策痕迹。
算法知识库,构建你的算法体系
算法知识库是你的前置知识库,也是你每次练习算法的回溯点。每个重要算法都配有 leetcode / 代码随想录 / 洛谷 / 菜鸟教程 对应题解。每次运行,系统自动识别算法,在右下角提供算法知识库跳转弹窗。
FIG.1 · 运行实录 · 算法知识库实际浏览演示 · 七大分类 · markdown + index.json 统一索引 · 内容与站内一致
点击算法模板,即刻置入。
算法模板库 提供经典预设一键载入。减轻认知之外的负担,让你更便捷地学习算法本身。
FIG.2 · 运行实录 · 点击模板 → 即刻置入 → 自动运行与拖拽 · ClassicCodePanel 实际操作演示
数据结构可视化,让算法变得清晰。
「抽取 → 布局 → 渲染」pipeline, 精准识别代码中的算法,使用容易理解的数据结构可视化方式,随程序运行自动播放。
FIG.3-1 · 运行实录 · 分治树 · 分裂 → 逐层合并
FIG.3-2 · 运行实录 · next 数组跳转 · 命中高亮
FIG.3-3 · 运行实录 · prev/cur/next 三指针 · 箭头逐一反转
FIG.3-4 · 运行实录 · 增广路径 · 流量累加
FIG.3-5 · 运行实录 · BFS 波纹扩散 · 访问编号
FIG.3-6 · 运行实录 · 堆树 · 绿色已排序尾段
FIG.3-7 · 运行实录 · 已排序边界 · 玫红插入位
流程图展现执行全貌,
内存监控带你了解jvm内部。
Mermaid 实时生成流程图,执行节点高亮;内存面板同步呈现栈帧变量与堆数组。
FIG.4 · 运行实录 · 左:Mermaid 流程图(当前节点高亮) · 右:栈帧 + 堆数组联动
LeetCode 主代码补全,跑通你的思路。
粘贴题目的主代码,自动补全外围结构与测试用例,逐行比对输入输出,在可视化执行中验证解法。
FIG.5 · 运行实录 · 粘贴主代码 → 自动补全 → 用例逐行比对
从单文件到工程,类协作一目了然。
单文件专注算法可视化,而多文件专注类协作关系解释。多文件项目整体运行、UML 静态分析与跨文件调试。
FIG.6 · 运行实录 · 多文件模式自动生成 UML ·
Agent 智能体教学
部署于 Coze 平台,以 LangGraph 状态图组织。负责快捷提供报错解答和教学任务
运行报错时,一键发送「让 Agent 帮我看」——agent 指出出错那一步,并附带实际数据作为依据。
FIG.7.1 · 运行实录 · 运行报错排查 · agent 一键修复
Agent 提供修改方案,用户确认后一键应用并修正代码
FIG.7.2 · 运行实录 · 代码逻辑错误诊断 · agent 指出问题并提供方案 · 一键应用正确代码
Agent 提供基础问答,告诉你这一步和争端代码在做什么,并提示导航内存状态与数据结构,快捷跳转
FIG.7.3 · 运行实录 · ai 解说当前步骤和整段代码 · 跳转内存监控/数据结构
“教学的前提是信任,
信任的前提是真实和透明。”
我们的开发人员
黄杰 team leader GitHub
- 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
- 播放器核心:步骤播放/暂停、上一步/下一步、跳转首尾、进度条拖拽、自动播放与速度调节
- 状态管理:Pinia Store 全局状态,前后端数据对接中枢
- Monaco Editor:代码编辑器集成 + 三色行高亮(上一步/当前/下一步)
- 多方法调用:为 Instrumenter 增加方法声明级别插桩,支持嵌套调用时每层栈帧独立追踪
- 堆/栈内存可视化:真实编译级插桩追踪,改造 TraceEngine 实现多栈帧管理、堆对象字段展开、色彩标签映射联动、数组/对象/集合类可视化
- 多文件项目:整体运行、静态分析、UML(类图 / 结构图 / 调用图)、共享控制栏
- 多文件调试:跨文件 step 递增、堆对象按文件隔离、栈帧文件归属;上传支持拖拽文件/文件夹
- AI 辅助:Coze 侧确定性 grounding 核对器
张邹铭 GitHub
- 后端执行引擎:AST 插桩(
Instrumenter)—— JavaParser 解析 + 遍历插桩,执行可视化的数据源头 - 数据结构可视化 Canvas:数组 / 排序 / 链表 / 树 / 堆 / 图 / KMP 的可视化方案设计和实现
- 算法知识库与题解:七大分类 markdown +
index.json索引,及识别算法-算法手册的一键跳转 - 设计前端 Landing 动画、系统主题和配色,看板娘授权以及语库设计
- 设计前端整体 UI:单文件 / 多文件系统分开设计——单文件专注算法可视化,多文件专注类协作关系解释
- 编辑建议(edit-suggestion):agent 结构化块解析、diff 定位到源码;优化方案卡(勾选方向→提方案)+ 门禁校验 + 应用/撤销确认
- 后端三层日志:访问日志 / 结构化日志 / 聚合检索实现
向鸿桂 GitHub
- 界面与视觉优化:统一 Maple Mono 字体(本地自托管)、代码区蓝黑配色、顶栏合并为单条品牌栏、运行栏左右 / 对角拖拽调宽、多文件可视化图例与类型标识
- 壁纸与背景系统:预设壁纸 + 自定义图片 / 视频背景 + 网格背景 + 背景音乐 + 卡片透明度调节
- 全局状态提示:全局 loading 动画 + 错误提示条(运行类错误常驻展示,一键转发给 agent 诊断)
- 控制台输出面板:终端风格深色面板,程序输出实时捕获,可折叠 / 展开
- Coze 侧调优:
fetch_execution_context调用率提升、Judge 兼容 reasoning 模型、领域本体核对与扩充
AI 时代,答案变得很便宜,
但理解力依然很贵。
蒋炎岩老师在《如何成为 AI Native 的大学生》里说,AI 可以降低学习的痛苦,却不该替你完成思考;它可以当 copilot,但不能当大脑。
初学 Java 最难的,常常不是语法,而是看不见程序怎么一步步运行:变量何时改变,栈帧如何进出,递归怎样展开,对象何时创建,yield 为什么让函数停住。Everything is a state machine。代码看不懂,很多时候不是你不够聪明,而是没人把状态迁移摊开给你看。
我们想做的,就是把这层“看不见”变成“看得见”。让你亲手追一次执行,亲眼看一次递归,亲自补上一个缺口。AI 可以帮你查、帮你讲、帮你生成例子;但真正的理解,仍然要你自己走一遍。底大一级压死人,Scaling Law 对人也成立——你喂给自己的知识、练习和反馈,最终会长成你的直觉。
所以,欢迎你,正在为学 Java 而努力的你。愿你在这里不只拿到一段能跑的代码,而是收获一次“原来如此”的正反馈。十次困惑里只要有一次被点亮,它就会推着你继续往前。
AI 能替你生成答案,替不了你长出直觉。
让 AI 成为你的助手,别让它替你思考。