Skip to content

lxl141421/EduCode-Agent-Architecture

Repository files navigation

EduCode - AI 驱动的编程教育平台

用 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 动画

课程体系

Python 3.12 完整覆盖 (89 个知识点)

等级 年级 核心内容
一级 小学 1-3 年级 变量、运算、输入输出、字符串
二级 小学 3-4 年级 条件判断、for/while 循环、类型转换
三级 小学 4-5 年级 列表、元组、字典、嵌套结构
四级 小学 5-6 年级 函数、递归、集合、文件操作、推导式
五级 初中 1-2 年级 类和对象、继承、match/case、类型提示
六级 初中 2-3 年级 装饰器、生成器、dataclass、DFS/BFS、DP
七级 高中 1 年级 堆、并查集、最短路径、异步编程
八级 高中 2-3 年级 网络流、KMP、线段树、元类、描述符

C++20/23 完整覆盖 (61 个知识点)

等级 年级 核心内容
一级 小学 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、可持久化数据结构、计算几何

CSP-J 入门级(19 个知识点)

面向初中生,对标 GESP 5-7 级。高频考点:模拟/枚举、排序/贪心、二分、DFS/BFS、DP、数论。

类别 知识点
基础算法 模拟、枚举、排序、二分查找、贪心、递推、递归
搜索 深度优先搜索、广度优先搜索
动态规划 背包问题、线性 DP
数据结构 栈、队列、字符串、二叉树、图基础
数学 数论、前缀和、位运算、组合数学

CSP-S 提高级(25 个知识点)

面向高中生,对标 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

访问:

Docker 部署

docker-compose up -d

运行测试

python -m pytest tests/ -v

API 接口

接口 方法 说明
/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

联系方式

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors