基于Python的个性化在线学习系统的设计与实现
2023-11-25陈俊
陈俊
(合肥师范学院数学与统计学院,安徽合肥 230601)
0 引言
个性化学习的概念早在20世纪初就已经出现,它是根据学习者的个性特点和发展潜能,采取灵活、适合的方式充分满足学习者个体需求的学习[1]。随着互联网技术的迅速发展,国内教育信息化水平的不断提高,知识获取与知识传播的方式发生了根本变化,在线学习的热度不断升高,逐渐被师生和家长所认可,不仅是因为在线学习能够实现终身学习、宽生学习和深生学习,从时空维度和内容维度描绘出立体化的学习情景,学生可以获取到更多丰富优质的学习资源,而且通过在线学习可以深入挖掘学习者学习习惯、学习状态和学习水平等信息,在线学习可以帮助学生轻松实现个性化学习,可以有效提高学生学习主动性[2]。在线学习系统不但突破了传统课堂教学的时空限制,而且为学习者提供了丰富的网络资源,学习者只需要一部手机或电脑就可以实现在线网络学习。随着在线学习系统中学习资源的不断增加,学生往往会花费很多时间和精力去查找所需要的学习资源,这就导致出现了学习资源过载的现象[3]。将基于协同过滤的个性化资源推荐算法应用于在线学习系统,可以有效解决此问题,从而提高学生的学习效率和系统体验效果。本系统采用基于Python 的经典Web 框架Django来设计开发,用MySQL数据库来存储系统数据。
1 相关技术简介
1.1 Python简介
Python 由吉多范罗·苏姆于1989 年底发明,被广泛应用于处理系统管理任务和科学计算,是最受欢迎的程序设计语言之一。在TIOBE 最近公布的2022 年6月编程语言指数排行榜中,Python排第一位。Python语言简单易学易用,拥有许多标准库,在Windows 或Unix 等平台上具有很好的兼容性。Python 完全支持面向对象程序设计,并拥有丰富的成熟扩展库支持各种领域的应用开发。在Web 系统开发和科学计算等领域,Python具有很好的应用。
1.2 Django框架
Django 是一个免费开源的Web 框架,可以用于快速搭建网站。Django 借鉴了经典的MVC 模式,它也将交互的过程分为了3个层次,也就是MTV 设计模式;其采用模型(Model) ,视图(View) 和模板(Template)。模型处理与数据相关的事务,以及各数据之间的关系[4]。模板处理与表现层相关的事务,视图负责捕获URL、存取模型、调取恰当模板、处理相关业务逻辑,视图层是模型层与模板层的桥梁。通过配置较少的功能代码即可实现复杂的功能。Django MTV 设计模式如图1所示。
图1 Django MTV设计模式
1.3 MySQL数据库
MySQL 是一个开源的小型关系型数据库管理系统,由瑞典MySQL AB 公司开发。由于MySQL是开源软件,软件安装使用完全免费,安装使用较为简单,同时支持多个平台(Windows、Unix和Macintosh),是最流行的关系型数据库管理系统之一。由于MySQL 数据库运行速度快和安装使用简单等优点,一般都选择MySQL 作为网站开发的首选数据库。
1.4 Apache服务器
作为世界使用排名第一的Web 服务器软件,Apache 支持多个平台,包括Windows、Unix 和Macintosh,由于Apache 支持跨平台和安全性等特点,因此被互联网公司广泛使用,也是最流行的Web服务器端软件之一。Apache服务器具有运行速度快、安全稳定等特点。通过简单的API 扩展,就可以将Python/Perl等解释器编译到服务器中。
2 系统功能设计
2.1 系统总体功能
本系统采用基于Web 的B/S 三层体系结构,Web服务器采用Apache,数据库采用MySQL,采用Python的Django 框架进行设计开发。
系统整体上采用模块化方式进行,系统分为教师模块、学生模块和管理员模块。教师模块主要供教师使用,教师用账号和密码登录系统后可以先上传优质的课程章节视频和多媒体课件等学习资料,然后给学生布置一定的课程学习任务,学生只要每完成一个课程单元学习任务后就进行知识单元测试,教师也可以对学生的答题和作业进行批改。
学生模块主要是供学生用户使用的子系统,学生用户登录系统后可以在线观看课程视频和课件,课程学习结束后可以进行在线考试,在课程学习过程中遇到疑难问题,可以随时在系统中向老师提问或者跟其他同学讨论交流,可以有效提高学生自主学习的主动性。
管理员模块主要是供系统管理员登录的后台系统,系统管理员拥有系统最高权限,系统管理员不仅可以有效管理师生的系统登录账号密码等信息,而且可以设置教师用户的系统访问权限,还可以对系统的所有功能进行定制。
系统总体功能框架图如图2所示。
图2 在线学习系统框架图
2.2 数据库设计
数据库设计是开发数据库应用系统的基础,在设计数据库时,应当要充分考虑每个模块之间的关系,要创建大小合适、冗余度低和数据读取效率高的数据模型。本系统数据库包括学生信息表、教师信息表、章节信息表、视频信息表、课程信息表、评论信息表、试题信息表等。
表1 学生信息表
表2 课程信息表
表4 视频信息表
表5 试题信息表
表6 评论信息表
2.3 基于协同过滤技术的学习资源推荐算法
1)根据学习者对学习资源的显式评分,可以建立学习者-学习资源评分矩阵,如表8所示。其中第i行第j列Xij表示第i个学习者对第j个资源的评分[5]。
2)先给矩阵稀疏性设定阈值µ,再计算学习者-学习资源评分矩阵的稀疏性。矩阵稀疏性计算公式如下所示:
3)采用余弦相似度方法计算学习者相似度,通过计算两个向量间的夹角余弦来度量学习者间的相似度,计算公式如下:
通过学习者相似度计算,可以得到与学习者相似度最邻近n个用户的邻居集:Z={stu_1,stu_2,stu_3,stu_4,...,stu_n}。
4)根据最近邻数据集中的学习者对学习资源的评分,就可以预测目标学习者对该学习资源的评分,产生最终的推荐结果,将学习资源推送给目标学习者。
3 系统功能实现
3.1 系统登录功能实现
本系统首页提供了教师和学生或者系统管理员登录系统的登录界面,系统登录模块会检查用户输入的账号和密码是否正确,只有输入正确的账号密码,才可以进入在线学习系统。如果输入错误的账号密码,系统则提示用户登录失败,需要重新输入账号密码。在线学习系统登录界面如图3所示。
图3 C语言在线学习系统登录界面
3.2 教学资源管理功能实现
本系统运行需要大量的课程视频数据和资料,教师需要定期对课程视频资料进行管理和维护,系统实现了教师可以上传C语言程序设计课件、视频等学习资源,可供学生下载和在线观看。
3.3 在线测试功能实现
学生用户登录系统后可以进行在线测试,只要点击学生页面的在线测试按钮,即可打开在线测试的页面,在线测试时间为45分钟,页面显示剩余答题时间,只要在线测试结束,系统会自动提交试题,等待教师批阅试题后,学生可以查询本次测试成绩。
4 总结
在线学习已经成为目前主流的学习手段,在线学习系统为人们在网络上进行在线学习和交流提供了平台,基于协同过滤推荐算法设计了在线学习系统的个性化推荐模型,可以根据每位学生的学习行为和习惯差异,系统可以推荐个性化的学习资源供其学习,从而实现了C语言程序设计课程的个性化在线学习,也提高了学生的学习效率。本系统主要面向开设C语言程序设计课程的理工科专业,为学生提供一个可以C语言在线学习和在线测试的网络教学平台,满足学生利用课外时间自主学习C语言,系统可以满足师生在线交流讨论的需要,以提高学生自主探究能力。