1  前言
1.1  大数据课程个性化推荐系统的开发背景及意义
近年来,高校教育改革成为了国家重点推进的重要工作之一,而高校的信息化建设又是教育改革的重要内容之一。当前,各类信息系统已经在高校大量普及,高校的运转几乎已经离不开信息系统。在高校中,利用网络开展教育成为了未来教育发展的重要趋势之一。尤其是2020年初新冠疫情爆发后,大量的学生和教师在家中利用网络平台进行授课和学习,更凸显出将互联网引入到教育的课堂环节的重要性。现阶段,大量的教育教学资源都是以数字化的形式存储在电子设备或互联网上,尤其在当前的大数据时代,各种大数据技术日趋成熟,如何利用大数据技术对这些网络资源进行合理归类,并根据学生的个性特点对其进行个性化推荐成为了一个亟待解决的问题。在此背景下,本文对大数据背景下课程个性化推荐系统的设计和实现开展研究,将先进的大数据技术和计算机技术引入到网络课程的推荐中来,将能够显著提高学生的学习效率和质量。
据调研,当前已经有少量课程个性化推荐系统得到了应用,但是随着学习资源的日趋复杂多样,现有系统仍存在功能不够完善、数据处理效率较低等问题,难以适应实际需求。为此,本文拟设计和实现一套大数据背景下课程个性化推荐系统。系统投入使用后,既能够将大量的学习资源进行高效利用,为学生提供便捷的学习途径,同时还能够在教师和学生之间建立起方便的交流沟通平台,提高教育教学质量。因此,设计和开发课程推荐系统具有重要的研究价值和现实意义。
1.2  大数据课程个性化推荐系统的研究内容
2  系统相关技术综述
2.1  可行性分析
(1)经济可行性
本文设计和实现的在线课堂系统使用的开发工具和软件均是开源或有免费版本的,开发成本较低。在后期用户增多时通常也仅需要增加相应的主机即可,需要投入的费用也较低。因此,在经济方面,开发大数据背景下课程个性化推荐系统是可行的。
(2)技术可行性
本文的大数据背景下课程个性化推荐系统基于python语言开发,且由于系统面对的用户规模也不十分庞大,同时,不管是软件运行还是后台的My SQL数据库管理,其在使用时占用的系统内存较少,一般配置的计算机和服务器即可满足系统部署和使用的基本需求。因此,在技术方面,开发大数据背景下课程个性化推荐系统是可行的。
(3)操作可行性
本文开发的课程个性化推荐系统界面简洁明了,系统关键功能操作起来十分方面,对一般的用户来说仅需要花费少量的时间即可掌握系统的操作方法。此外,不管是学生还是教师,通常都具备基本的计算机使用和操作能力,这些能力对操作课程个性化推荐系统来说已经足够。因此,在操作方面,开发课程个性化推荐系统是可行的。
2.2  需求分析
3  系统设计
3.1  系统目标
3.2  系统技术架构设计
3.3  系统运行架构设计
3.4  设计数据库
数据库表设计是对数据进行存储时的具体格式,包括数据存储时候的字段、每个字段的大小和最大长度以及该字段是否允许为空等。本文的课程推荐系统涉及到的主要表包括用户信息表、课程信息表、用户选课信息表、类目信息表、课程类目信息表、课程收藏信息表,表结构如表3-1至表3-6所示。
表3-1 用户信息表
  
    
      | 
       序号 
       | 
      
       字段 
       | 
      
       说明 
       | 
      
       数据类型 
       | 
      
       长度 
       | 
      
       默认值 
       | 
    
    
      | 
       1 
       | 
      
       ID 
       | 
      
       编号 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       主键非空 
       | 
    
    
      | 
       2 
       | 
      
       Username 
       | 
      
       用户名 
       | 
      
       varchar 
       | 
      
       20 
       | 
      
       0 
       | 
    
    
      | 
       3 
       | 
      
       Password 
       | 
      
       密码 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       0 
       | 
    
    
      | 
       4 
       | 
      
       Rname 
       | 
      
       用户姓名 
       | 
      
       varchar 
       | 
      
       20 
       | 
      
       Null 
       | 
    
    
      | 
       5 
       | 
      
       mail 
       | 
      
       邮箱 
       | 
      
       varchar 
       | 
      
       20 
       | 
      
       Null 
       | 
    
    
      | 
       6 
       | 
      
       Createtime 
       | 
      
       注册时间 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       Null 
       | 
    
    
      | 
       7 
       | 
      
       updatetime 
       | 
      
       修改时间 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       Null 
       | 
    
  
 
表3-2 课程信息表
  
    
      | 
       序号 
       | 
      
       字段 
       | 
      
       说明 
       | 
      
       数据类型 
       | 
      
       长度 
       | 
      
       默认值 
       | 
    
    
      | 
       1 
       | 
      
       ID 
       | 
      
       课程编号 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       主键非空 
       | 
    
    
      | 
       2 
       | 
      
       name 
       | 
      
       课程名称 
       | 
      
       varchar 
       | 
      
       20 
       | 
      
       null 
       | 
    
    
      | 
       3 
       | 
      
       title 
       | 
      
       课程题目 
       | 
      
       varchar 
       | 
      
       20 
       | 
      
       null 
       | 
    
    
      | 
       4 
       | 
      
       briefintro 
       | 
      
       课程简介 
       | 
      
       varchar 
       | 
      
       225 
       | 
      
       null 
       | 
    
    
      | 
       5 
       | 
      
       teacherid 
       | 
      
       老师id 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       null 
       | 
    
    
      | 
       6 
       | 
      
       useto 
       | 
      
       适用人群 
       | 
      
       varchar 
       | 
      
       50 
       | 
      
       null 
       | 
    
    
      | 
       7 
       | 
      
       createtime 
       | 
      
       创建时间 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       null 
       | 
    
    
      | 
       8 
       | 
      
       updatetime 
       | 
      
       更新时间 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       null 
       | 
    
    
      | 
       9 
       | 
      
       categoryid 
       | 
      
       所属类目id 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       null 
       | 
    
  
 
表3-3 用户选课信息表
  
    
      | 
       序号 
       | 
      
       字段 
       | 
      
       说明 
       | 
      
       数据类型 
       | 
      
       长度 
       | 
      
       默认值 
       | 
    
    
      | 
       1 
       | 
      
       ID 
       | 
      
       选课记录 ID 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       主键,非空 
       | 
    
    
      | 
       2 
       | 
      
       courseid 
       | 
      
       课程 id 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       外键,非空 
       | 
    
    
      | 
       3 
       | 
      
       userid 
       | 
      
       用户 id 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       外键,非空 
       | 
    
    
      | 
       4 
       | 
      
       createtime 
       | 
      
       选课时间 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       null 
       | 
    
    
      | 
       5 
       | 
      
       updatetime 
       | 
      
       记录修改时间 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       null 
       | 
    
    
      | 
       6 
       | 
      
       used 
       | 
      
       记录是否有效: 1 有效, 0 无效 
       | 
      
       int 
       | 
      
       1 
       | 
      
       1 
       | 
    
  
 
表3-4 类目信息表
  
    
      | 
       序号 
       | 
      
       字段 
       | 
      
       说明 
       | 
      
       数据类型 
       | 
      
       长度 
       | 
      
       默认值 
       | 
    
    
      | 
       1 
       | 
      
       id 
       | 
      
       选课记录 ID 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       主键,非空 
       | 
    
    
      | 
       2 
       | 
      
       name 
       | 
      
       课程分类名 
       | 
      
       varchar 
       | 
      
       20 
       | 
      
       null 
       | 
    
    
      | 
       3 
       | 
      
       parentid 
       | 
      
       课程分类父类 id 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       0 
       | 
    
    
      | 
       4 
       | 
      
       createtime 
       | 
      
       创建分类时间 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       null 
       | 
    
    
      | 
       5 
       | 
      
       updatetime 
       | 
      
       修改时间 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       null 
       | 
    
    
      | 
       6 
       | 
      
       weight 
       | 
      
       权重 
       | 
      
       int 
       | 
      
       10 
       | 
      
       0 
       | 
    
  
 
表3-5 课程类目信息表
  
    
      | 
       序号 
       | 
      
       字段 
       | 
      
       说明 
       | 
      
       数据类型 
       | 
      
       长度 
       | 
      
       默认值 
       | 
    
    
      | 
       1 
       | 
      
       id 
       | 
      
       选课记录 ID 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       主键,非空 
       | 
    
    
      | 
       2 
       | 
      
       courseid 
       | 
      
       课程分类名 
       | 
      
       varchar 
       | 
      
       20 
       | 
      
       外键,非空 
       | 
    
    
      | 
       3 
       | 
      
       categoryid 
       | 
      
       课程分类父类 id 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       外键,非空 
       | 
    
    
      | 
       4 
       | 
      
       createtime 
       | 
      
       创建分类时间 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       null 
       | 
    
    
      | 
       5 
       | 
      
       updatetime 
       | 
      
       修改时间 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       null 
       | 
    
    
      | 
       6 
       | 
      
       useable 
       | 
      
       是否可用 
       | 
      
       int 
       | 
      
       10 
       | 
      
       0 
       | 
    
  
 
表3-6 课程收藏信息表
  
    
      | 
       序号 
       | 
      
       字段 
       | 
      
       说明 
       | 
      
       数据类型 
       | 
      
       长度 
       | 
      
       默认值 
       | 
    
    
      | 
       1 
       | 
      
       id 
       | 
      
       课程收藏记录 ID 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       主键,非空 
       | 
    
    
      | 
       2 
       | 
      
       userid 
       | 
      
       用户 id 
       | 
      
       varchar 
       | 
      
       20 
       | 
      
       外键,非空 
       | 
    
    
      | 
       3 
       | 
      
       coursid 
       | 
      
       课程 id 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       外键,非空 
       | 
    
    
      | 
       4 
       | 
      
       createtime 
       | 
      
       收藏时间 
       | 
      
       bigint 
       | 
      
       20 
       | 
      
       null 
       | 
    
  
 
4  系统实现
4.1  系统的运行环境
4.2  系统的功能实现
5  系统测试
5.1  系统测试目标和原则
5.2  系统测试方法
5.3  系统测试结果及分析
5.3.1 添加用户测试
在添加新用户时,需要输入两次一致的密码才可添加成功。
添加测试用例如表5.1所示。
表5.1添加测试用例
  
    
      | 
       测试模块 
       | 
      
       用户添加功能测试 
       | 
    
    
      | 
       测试目的 
       | 
      
       测试当添加信息输入不符合要求时,系统是否能进行相应处理并给出提示。 
       | 
    
    
      | 
       测试数据 
       | 
      
       1、不输入用户名和密码,直接点击添加。 
      2、输入未添加过的用户名。 
      3、输入正确用户名,两次密码不一样。 
       | 
    
    
      | 
       预期结果 
       | 
      
       1、界面不跳转,弹出对话框,提示用户输入必填项。 
      2、界面跳转,弹出对话框,提示用户添加成功。 
      3、界面不跳转,弹出对话框,提示两次密码不一致。 
       | 
    
    
      | 
       实际结果 
       | 
      
       与预期一致。 
       | 
    
    
      | 
       结论 
       | 
      
       用户添加功能能够应对基本的异常输入。 
       | 
    
  
 
5.3.2 登录测试
登录测试用例如下表5.2所示。
表4.2登录测试用例
  
    
      | 
       测试模块 
       | 
      
       用户登录功能测试 
       | 
    
    
      | 
       测试目的 
       | 
      
       测试当登陆信息输入不符合要求时,系统是否能进行相应处理并给出提示。 
       | 
    
    
      | 
       测试方法 
       | 
      
       黑盒测试 
       | 
    
    
      | 
       测试数据 
       | 
      
       1、不输入用户名和密码,直接点击登陆。 
      2、输入未注册过的用户名。 
      3、输入正确用户名,错误密码。 
      4、输入正确用户名,正确匹配密码。 
       | 
    
    
      | 
       预期结果 
       | 
      
       1、界面不跳转,弹出对话框,提示用户输入必填项。 
      2、界面不跳转,弹出对话框,提示用户当前用户名尚未注册。 
      3、界面不跳转,弹出对话框,提示用户密码错误。 
      4、界面实现跳转,登陆功能正常进行。 
       | 
    
    
      | 
       实际结果 
       | 
      
       与预想一致。 
       | 
    
    
      | 
       结论 
       | 
      
       登陆功能能够应对基本的异常输入。 
       | 
    
  
 
6  结论
个性化课程推荐系统能够将大量的学习资源进行高效利用,为学生提供便捷的学习途径,同时还能够在教师和学生之间建立起方便的交流沟通平台,提高教育教学质量。目前已经投入使用的相关系统存在功能不够完善、数据处理效率较低等问题,难以适应高校实际需求。为此,本文开展了大数据背景下个性化课程推荐系统研究。在对系统进行详细的功能需求分析、设计后,利用python语言,采用B/S模式实现了该系统。系统投入使用后,提高对相关数据的管理效率,能够让学生更为方便的获得课程资源,在教师和学生之间建立起便捷的交流平台,同时保证数据的准确性。
 
致  谢
在指导老师和同学的帮助下,经过几个月的学习和编程,我终于完成了在线课堂系统的设计和实现工作。在本次设计中,我熟练掌握了系统开发相关技术,对系统开发及运行环境安装进行了学习和了解。通过设计和开发个性化课程推荐系统,我掌握了开发系统的基本流程,具备了一定的编程技能,这对我今后的工作将能够提供极大的帮助。在此,我要特别感谢X老师。他不仅给我提供大量的参考资料和学习经验,指导我毕业设计的基本思路,还教会了我系统开发的基本流程以及开展课题研究的基本方法。此外,我还要感谢和我朝夕相处的同学,谢谢他们的关系和帮助。同时,我还要感谢我的家人,他们的理解和鼓励一直是我前进的动力,谢谢你们。