新版知识点体系
一、新版知识点体系:采用树形层次化结构建立新知识点体系。
- 所有知识点
- 编程基础
- 程序设计基础
- C++编程
- Python编程
- 算法基本思想
- 复杂度
- 枚举
- 模拟
- 高精度
- 排序
- 递推
- 递归
- 预处理
- 分治
- 二分
- 贪心
- 搜索
- 深度优先搜索
- 广度优先搜索
- 双向搜索
- 启发式搜索
- 迭代加深搜索
- 搜索剪枝
- 动态规划
- 线性DP
- 背包DP
- 记忆化搜索
- 区间DP
- 树形DP
- DAG上DP
- 状态压缩DP
- 基础数据结构
- 栈
- 队列
- 链表
- 哈希表
- 并查集
- 堆
- 树形结构
- 树和森林
- 二叉树
- 平衡树
- 线段树
- 树状数组
- 图论
- 图的遍历
- 最短路
- 生成树
- 拓扑排序
- 连通性
- 二分图
- 欧拉图
- 图的匹配
- 网络流
- 字符串
- Trie树
- KMP匹配
- AC自动机
- 后缀数组
- 数学
- 初等数学
- 位运算
- 数论
- 多项式与FFT
- 组合数学
- 线性代数
- 线性规划
- 集合论
- 概率统计
- 数值计算
- 编程基础
二、知识点相关接口
- 查询知识点相关信息(参数可选择
id
和name
,若二者均提供则优先按id
查询)
- 当前知识点信息(
id
/name
) - 当前知识点的子知识点(
children
)信息(可进一步递归) - 当前知识点关联的试题(
codingExercise
/multipleChoiceExercise
)与文章(post
)信息
query KnowledgeTag($name: String, $knowledgeTagId: ID) {
knowledgeTag(name: $name, id: $knowledgeTagId) {
id
name
children {
id
name
children {
...
}
}
codingExercises {
nodes {
id
title
}
}
multipleChoiceExercises {
nodes {
id
title
}
}
posts {
nodes {
id
title
}
}
}
}
- 查询试题相关信息
查询当前用户可看到的所有试题(包括公开可见以及自己出的试题),可指定知识点id列表(knowledgeTagIds
)作为限定条件
query CodingExerciseSearch($knowledgeTagIds: [String!]) {
codingExerciseSearch(knowledgeTagIds: $knowledgeTagIds) {
nodes {
id
title
}
}
}
如给定标题(title
)参数,则查询单个题目信息,可查询相关知识点信息
query CodingExerciseSearch($title: String) {
codingExerciseSearch(title: $title) {
nodes {
id
title
knowledgeTags {
nodes {
id
name
}
}
}
}
}
- 更新接口:更新试题/资源所属知识点
- 给定
knowledgeTagIds
(知识点id列表),对本试题/资源的原有所属知识点进行整体替换
mutation Mutation($codingExerciseId: ID!, $knowledgeTagIds: [String!]) {
updateCodingExerciseKnowledgeTags(codingExerciseId: $codingExerciseId, knowledgeTagIds: $knowledgeTagIds) {
id
title
knowledgeTags {
nodes {
id
name
}
}
}
}
三、应用场景
- 知识点列表:按"所有知识点"查询整个知识点层次结构
- 试题相关信息:界面展示所属知识点信息
- 试题知识点更新:结合更新接口与知识点列表查询接口
- 根据知识点限制选择性地展示相应试题资源
- 数据批量标注功能