用 HTML 动画可视化教学,对标 GESP 考级,覆盖 Python 3.12 和 C++20/23 全部语法
EduCode 是一个面向 K12 学生的 AI 编程教育平台。核心理念:不直接给答案,用动画帮助理解底层原理。
通过 HTML/CSS/JS 动画可视化展示代码执行过程,让学生看到变量如何变化、内存如何分配、循环如何迭代、递归如何展开。比 Scratch 更深入,比纯文本更直观。
- 20 个教学动画:变量、循环、递归、数组、排序、指针、树、图、DP、哈希表等
- 194 个知识点配置:覆盖 GESP Python 1-8 级 + GESP C++ 1-10 级 + CSP-J + CSP-S
- 555 道题目:选择题 + 判断题 + 编程题,每道题有解析
- 20 个教学动画:变量、循环、递归、排序、指针、树、图、DP、哈希表等
- 进度管理系统:学生档案、知识点掌握度、智能推荐
- 测验系统:选择题 + 判断题 + 编程题
- 代码执行沙箱:安全执行学生代码
- AI 动画生成:输入代码自动生成 HTML 动画
| 等级 | 年级 | 核心内容 |
|---|---|---|
| 一级 | 小学 1-3 年级 | 变量、运算、输入输出、字符串 |
| 二级 | 小学 3-4 年级 | 条件判断、for/while 循环、类型转换 |
| 三级 | 小学 4-5 年级 | 列表、元组、字典、嵌套结构 |
| 四级 | 小学 5-6 年级 | 函数、递归、集合、文件操作、推导式 |
| 五级 | 初中 1-2 年级 | 类和对象、继承、match/case、类型提示 |
| 六级 | 初中 2-3 年级 | 装饰器、生成器、dataclass、DFS/BFS、DP |
| 七级 | 高中 1 年级 | 堆、并查集、最短路径、异步编程 |
| 八级 | 高中 2-3 年级 | 网络流、KMP、线段树、元类、描述符 |
| 等级 | 年级 | 核心内容 |
|---|---|---|
| 一级 | 小学 3-4 年级 | 程序结构、cin/cout、变量 |
| 二级 | 小学 4-5 年级 | 条件、循环、switch |
| 三级 | 小学 5-6 年级 | 数组、字符串、函数 |
| 四级 | 初中 1 年级 | 递归、auto、range-for、结构体 |
| 五级 | 初中 1-2 年级 | 指针、引用、动态内存、enum class |
| 六级 | 初中 2-3 年级 | STL 容器、Lambda、智能指针、string_view |
| 七级 | 高中 1 年级 | 移动语义、constexpr、Ranges、DFS/BFS/DP |
| 八级 | 高中 1-2 年级 | Concepts、Modules、变参模板、协程 |
| 九级 | 高中 2-3 年级 | 网络流、高级字符串、博弈论 |
| 十级 | 竞赛生 | LCT、可持久化数据结构、计算几何 |
面向初中生,对标 GESP 5-7 级。高频考点:模拟/枚举、排序/贪心、二分、DFS/BFS、DP、数论。
| 类别 | 知识点 |
|---|---|
| 基础算法 | 模拟、枚举、排序、二分查找、贪心、递推、递归 |
| 搜索 | 深度优先搜索、广度优先搜索 |
| 动态规划 | 背包问题、线性 DP |
| 数据结构 | 栈、队列、字符串、二叉树、图基础 |
| 数学 | 数论、前缀和、位运算、组合数学 |
面向高中生,对标 GESP 7-10 级。高频考点:DP 进阶、图论、高级数据结构、数学。
| 类别 | 知识点 |
|---|---|
| 高级数据结构 | 并查集、堆、字典树、线段树、树状数组、ST 表 |
| 高级算法 | DP 进阶、最短路径、最小生成树、拓扑排序、强连通分量、二分图、网络流 |
| 字符串 | KMP |
| 搜索与技巧 | 回溯、分治、单调栈、单调队列、离散化、双指针、二分答案、倍增 LCA |
| 数学 | 扩展欧几里得、矩阵快速幂、博弈论 |
EduCode-Agent-Architecture/
├── src/ # 后端 Python 代码
│ ├── agents/ # AI Agent 模块
│ │ ├── diagnoser.py # 代码诊断 Agent
│ │ ├── socratic_teacher.py # 苏格拉底提问 Agent
│ │ ├── intention.py # 意图识别 Agent
│ │ ├── challenge.py # 自动出题 Agent
│ │ ├── code_quality.py # 代码质量分析 Agent
│ │ ├── output_generator.py # 输出格式化 Agent
│ │ └── animation_generator.py # AI 动画生成 Agent
│ ├── models/schemas.py # Pydantic 数据模型
│ ├── utils/
│ │ ├── llm_router.py # LLM 统一调用封装
│ │ └── rag_knowledge.py # ChromaDB 向量检索
│ ├── curriculum.py # GESP 课程体系 (161 知识点)
│ ├── progress.py # 进度管理数据库
│ ├── quiz.py # 测验引擎
│ ├── sandbox.py # 代码执行沙箱
│ ├── repository.py # 对话持久化
│ ├── orchestrator.py # 多 Agent 编排器
│ ├── conversation.py # 对话状态管理
│ ├── config.py # 配置加载器
│ ├── api_progress.py # 进度管理 API
│ └── api_quiz.py # 测验 API
├── web/ # 前端代码
│ ├── landing.html # 产品首页
│ ├── index.html # 代码编辑器 + 动画预览
│ ├── dashboard.html # 进度仪表板
│ ├── quiz.html # 测验页面
│ ├── animations/ # 20 个教学动画
│ │ ├── 01_variables.html # 变量与赋值
│ │ ├── 02_loops.html # 循环执行
│ │ ├── 03_recursion.html # 递归调用栈
│ │ ├── 04_array.html # 数组遍历
│ │ ├── 05_sorting.html # 冒泡排序
│ │ ├── 06_pointer.html # C++ 指针
│ │ ├── 07_recursion_tree.html # 递归树
│ │ ├── 08_dfs_bfs.html # DFS/BFS
│ │ ├── 09_dp_table.html # 动态规划
│ │ ├── 10_hash_table.html # 哈希表
│ │ ├── 11_linked_list.html # 链表
│ │ ├── 12_binary_search.html # 二分查找
│ │ ├── 13_greedy.html # 贪心算法
│ │ ├── 14_backtracking.html # 回溯法
│ │ ├── 15_graph_shortest.html # 最短路径
│ │ ├── 16_merge_sort.html # 归并排序
│ │ ├── 17_heap.html # 堆
│ │ ├── 18_dijkstra_detail.html # Dijkstra
│ │ ├── 19_dp_knapsack.html # 01 背包
│ │ ├── 20_tree_traversal.html # 树遍历
│ │ ├── template_engine.html # 通用动画模板页面
│ │ └── template_nav.html # 导航栏模板
│ ├── configs/ # 150 个知识点动画配置
│ ├── js/
│ │ ├── animation-engine.js # 动画引擎核心
│ │ ├── code-parser.js # Python 代码解析器
│ │ ├── app.js # 主应用逻辑
│ │ ├── animation-template.js # 动画模板引擎
│ │ ├── progress.js # 进度管理前端
│ │ ├── quiz.js # 测验前端
│ │ └── components/ # 9 个可复用动画组件
│ └── css/
│ ├── common.css # 统一主题变量
│ └── animation.css # 动画样式
├── tests/ # 145 个测试
├── data/ # 测试数据和题库
├── docs/ # 文档
├── server.py # FastAPI 服务器
├── main.py # CLI 入口
├── Dockerfile # 容器化部署
├── docker-compose.yml # 编排配置
└── config.yaml # 全局配置
git clone https://github.com/lxl141421/EduCode-Agent-Architecture.git
cd EduCode-Agent-Architecture
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt# 设置 API 密钥
export MIMO_API_KEY=your_api_key
# 启动服务器
python server.py访问:
- 首页:http://localhost:8000/web/landing.html
- 代码编辑器:http://localhost:8000/web/index.html
- 进度仪表板:http://localhost:8000/web/dashboard.html
- 测验系统:http://localhost:8000/web/quiz.html
- 动画库:http://localhost:8000/web/animations/01_variables.html
docker-compose up -dpython -m pytest tests/ -v| 接口 | 方法 | 说明 |
|---|---|---|
/health |
GET | 健康检查 |
/api/diagnose |
POST | 代码诊断 |
/api/generate-animation |
POST | AI 生成动画 |
/api/execute |
POST | 安全执行代码 |
/api/students |
POST | 创建学生 |
/api/students/{id}/progress/{lang} |
GET | 学习进度 |
/api/students/{id}/recommendation/{lang} |
GET | 学习推荐 |
/api/quiz/start |
POST | 开始测验 |
/api/quiz/answer |
POST | 提交答案 |
/api/curriculum/{lang}/{level} |
GET | 课程大纲 |
- 后端:Python 3.11+, FastAPI, Pydantic, SQLite
- 前端:HTML5 Canvas/SVG, CSS Animations, 原生 JS
- AI:OpenAI SDK (MiMo API 兼容), ChromaDB (RAG)
- 测试:pytest (145 个测试)
- 部署:Docker, uvicorn
- 总代码量:~53,000 行
- 后端 Python:~7,800 行
- 前端 HTML/CSS/JS:~23,000 行
- 动画配置 JSON:~16,000 行
- 测试代码:~2,000 行
- 文档:~5,000 行
- 知识点配置:194 个
- 教学动画:20 个
- 题目测试:555 道
- 测试用例:145 个
MIT License