基于知识图谱的计算机组成原理课程学习系统

项目概述

项目的主要目的和价值

本项目是一款基于Django框架开发的计算机组成原理课程学习系统,融合了知识图谱技术,旨在提升学生对计算机组成原理课程内容的理解与应用能力。系统通过结构化的知识管理、丰富的教学资源以及题库练习,辅助学生进行系统化学习和知识掌握。同时,利用知识图谱实现课程内容、习题和相关知识点的关联查询,增强学习的深度和广度。

解决的核心问题

  • 传统计算机组成原理课程资料零散,难以系统化学习和知识关联;
  • 学生学习过程缺少针对性和互动性,难以掌握课程重点难点;
  • 习题与知识点断层,无法有效促进知识巩固与错题复习;
  • 知识难以形成结构性表达,学习效果不佳。
  • 知识难以形成结构性表达,学习效果不佳。

通过本项目,构建完备的课程章节内容和题库体系,利用知识图谱建立知识点间的关联,使学生能够全方位、多维度地理解课程知识,从而提升学习效果和能力。

目标用户群体

  • 计算机组成原理课程的学生,需系统化学习和复习相关内容;
  • 计算机科学相关专业的教学人员,便于管理教学资源和学生成绩;
  • 具有一定计算机基础,希望通过知识图谱辅助学习的自学者。

技术架构

使用的主要技术栈

  • 后端框架:Django,Python 3.9
  • 数据库
  • 关系型数据库(使用Sqlite)
  • 图数据库:Neo4j,利用 py2neo 进行图数据的管理和查询
  • 前端技术
  • Django模板系统(HTML, CSS, JavaScript)
  • 集成富文本编辑器:CKEditor
  • 各类前端资源插件支持(如jQuery、Echarts等)
  • 其他依赖
  • OpenAI API 接入用于智能问答等功能
  • jieba中文分词库用于文本处理

项目框架和依赖

系统运行于Python虚拟环境(.venv),依赖丰富的第三方库,核心包括:

  • Django 3.2.7
  • py2neo (Neo4j Python客户端)
  • OpenAI Python SDK
  • ckeditor 和 ckeditor_uploader 用于富文本内容管理
  • jieba 进行中文文本分词处理
  • simpleui 用于Django后台管理界面美化
  • 各类前端插件及资源(如fullAvatarEditor、codemirror等)

架构设计模式

  • MVC设计模式:采用Django的MTV模式(模型Model、模板Template、视图View),实现业务逻辑与表现的分离。
  • 模块化设计:系统划分为accounts(用户管理)、teaching(课程教学)、datas(知识图谱数据处理)等多个独立模块。
  • 知识图谱集成:教学数据和知识点不仅存储于关系型数据库,核心知识点及关联通过Neo4j实现知识图谱管理和查询。
  • 安全和权限控制:用户认证与权限管理基于Django自带的认证框架,扩展自定义用户模型。

数据库设计

  • 使用Django模型定义数据表,核心模型包括:
  • UserProfile(用户信息,包括头像和密码)
  • Chapter(课程章节,包含章节名、介绍、内容、PPT文件和视频文件)
  • Exercises(习题,关联章节,包含题目选项和答案)
  • Point(知识点,关联习题)
  • Exam(考试记录)
  • ExamDetail(考试详细题目及答案记录)
  • MyNodeMyWenda(存储知识图谱节点和问答交互)
  • 关系型数据库存储教学内容与用户信息,Neo4j存储知识图谱数据,实现知识节点和关系的高效查询。

功能模块

1. 用户管理模块 (accounts)

  • 用户注册与登录:提供用户注册、登录、登出功能,支持会话管理。
  • 用户信息维护:允许用户修改个人资料,包括用户名、邮箱和头像上传。
  • 密码管理:密码加密存储,支持密码忘记和重置功能。
  • 后台管理:基于Django Admin定制用户信息管理界面,支持用户列表展示和密码加密处理。

2. 教学资源管理模块 (teaching)

  • 章节管理
  • 录入课程各章节基本信息(章节名称、简介、内容文本)
  • 支持章节PPT及视频文件上传和管理
  • 习题管理
  • 习题录入(包含题目、四个选项、标准答案和分值)
  • 习题关联对应章节
  • 知识点管理
  • 知识点对应习题的管理与关联
  • 考试系统
  • 在线考试功能,包括试卷生成、试题备注和答题提交
  • 错题展示和统计功能,帮助学生集中复习薄弱环节
  • 知识图谱查询
  • 通过图谱节点、关系、结束节点进行知识图谱查询
  • 展现知识点之间的关联,辅助理解与探索

3. 知识图谱数据处理模块 (datas/extra)

  • 数据清洗:基础数据预处理,保证数据规范性。
  • 三元组抽取:从课程文本中抽取实体及关系,构建三元组数据库。
  • Neo4j导入:实现抽取结果批量导入Neo4j图数据库。
  • 文本OCR与处理:对PDF等非结构化文档进行OCR转文本处理,提升数据质量。

4. 富文本编辑与资源上传

  • 使用 ckeditor 富文本编辑器提升内容编辑体验。
  • ckeditor_uploader 支持文件和图片的上传,方便教学内容丰富展示。

5. 前端展示与交互

  • 基于Django模版,设计了包括首页、资源列表、章节详情、考试、错题展示、知识图谱查询等多种视图。
  • 利用分页组件优化资源列表的展示。
  • 提供页面表单数据提交和响应处理,支持异步和同步的用户交互。

6. 后台管理定制

  • 通过 simpleui 等包优化后台界面美观与使用便捷。
  • 管理员界面支持自定义字段显示、搜索过滤和文件资源管理。
  • 自定义用户密码储存方式,提升安全性。

项目结构

xy25_computer_platform/
├── accounts/                # 用户相关应用,包含用户模型、视图、管理等
├── datas/                   # 知识图谱数据处理,包括清洗、抽取、导入等脚本
├── media/                   # 用户上传的头像、视频和PPT资源文件
├── static/                  # 静态资源,如CSS、JavaScript、图片和第三方插件
├── teaching/                # 教学主业务模块,负责课程管理、习题、考试等
├── templates/               # 前端页面模板
├── xy_wrong/                # 项目主配置目录,包含Django设置、路由等
├── .venv/                   # Python虚拟环境目录
├── manage.py                # Django项目管理脚本
├── requirements.txt         # 项目Python依赖清单
└── README.md                # 项目说明文档

关键文件说明

  • accounts/models.py:自定义用户模型 UserProfile,扩展django内置用户,实现头像管理与密码自定义字段。
  • accounts/admin.py:用户后台管理设置,包括字段显现及密码加密保存逻辑。
  • accounts/urls.py:用户模块路由,包含登录、注册、信息修改、密码找回等URL。
  • accounts/views.py:用户视图实现,处理登录认证、个人信息管理、密码相关功能。
  • teaching/models.py:定义课程章节、习题、知识点、考试等核心模型,支持内容丰富度与结构化。
  • teaching/admin.py:课程和习题后台管理界面定制,采用tabular inline等方式增强管理体验。
  • teaching/urls.py:教学模块URL配置,支持多样课程页面及知识图谱查询入口。
  • teaching/views.py:实现课程展示、考试提交、知识图谱交互等业务逻辑。
  • datas/extra/:存储数据清洗、文本OCR、三元组抽取和图谱导入的自动化脚本。
  • templates/:前端页面模板集合,涵盖首页、章节详情、考试、知识图谱查询、登录注册等。
  • xy_wrong/settings.py:Django配置文件,含数据库、静态文件、模板、第三方应用及安全配置。
  • requirements.txt:列出项目所需Python包及版本,便于环境复制。

部署和运行

环境要求

  • Python 3.9+
  • Django 3.x版本
  • Neo4j图数据库服务
  • 支持Sqlite等Django配置的关系型数据库
  • 系统支持文件上传功能的操作系统,及相应读写权限
  • 推荐使用虚拟环境管理Python依赖(如venv)

安装步骤

  1. 克隆项目代码:
   git clone <项目仓库地址>
   cd xy25_computer_platform
  1. 创建并激活虚拟环境:
   python3 -m venv .venv
   source .venv/bin/activate    # Linux/macOS
   .venv\Scripts\activate       # Windows
  1. 安装依赖包:
   pip install -r requirements.txt
  1. 配置数据库(修改xy_wrong/settings.py),确保关系型数据库和Neo4j连接正确。
  2. 运行数据库迁移:
   python manage.py makemigrations
   python manage.py migrate
  1. 创建超级管理员账户:
   python manage.py createsuperuser
  1. 准备媒体及静态文件目录:
  • 确保 media/ 目录具备读写权限
  • 收集静态文件:
    python manage.py collectstatic

配置说明

  • 数据库配置:在xy_wrong/settings.pyDATABASES部分配置关系型数据库信息。
  • Neo4j配置:在settings.py或相关模块中配置Neo4j数据库连接参数(主机、端口、用户名、密码)。
  • 媒体文件配置:MEDIA_ROOT指定用户上传文件的存储路径,MEDIA_URL为访问映射路径。
  • 静态文件配置:STATIC_ROOT指定静态资源收集目录,STATIC_URL为静态文件访问地址。
  • 第三方应用配置:CKEditor及SimpleUI等组件按需配置,提升编辑及管理体验。
  • 安全设置:密码加密使用Django默认hashers,前端表单使用CSRF保护。

启动方式

在项目根目录下执行:

python manage.py runserver

启动Django开发服务器,默认地址为http://127.0.0.1:8000/,通过浏览器访问即可使用系统。


总结

基于知识图谱的计算机组成原理课程学习系统,以Django为基础框架,结合关系型数据存储及图数据库Neo4j,融合丰富的教学内容与习题管理功能,构建了一个功能完善的课程学习及管理平台。通过集成智能问答接口及知识图谱查询,提升学习互动性与深度,满足了计算机组成原理课程教学与学习的新需求,具有较高的技术含量与实用价值。
1000

图片[1]-基于知识图谱的计算机组成原理课程学习系统
图片[2]-基于知识图谱的计算机组成原理课程学习系统
图片[3]-基于知识图谱的计算机组成原理课程学习系统
图片[4]-基于知识图谱的计算机组成原理课程学习系统
图片[5]-基于知识图谱的计算机组成原理课程学习系统
图片[6]-基于知识图谱的计算机组成原理课程学习系统
图片[7]-基于知识图谱的计算机组成原理课程学习系统
图片[8]-基于知识图谱的计算机组成原理课程学习系统
图片[9]-基于知识图谱的计算机组成原理课程学习系统
图片[10]-基于知识图谱的计算机组成原理课程学习系统
图片[11]-基于知识图谱的计算机组成原理课程学习系统
图片[12]-基于知识图谱的计算机组成原理课程学习系统
图片[13]-基于知识图谱的计算机组成原理课程学习系统
图片[14]-基于知识图谱的计算机组成原理课程学习系统
图片[15]-基于知识图谱的计算机组成原理课程学习系统
图片[16]-基于知识图谱的计算机组成原理课程学习系统
图片[17]-基于知识图谱的计算机组成原理课程学习系统
图片[18]-基于知识图谱的计算机组成原理课程学习系统
图片[19]-基于知识图谱的计算机组成原理课程学习系统
图片[20]-基于知识图谱的计算机组成原理课程学习系统
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享