一、摘 要
在线教育平台现在是教育体系的重要组成部分,在当前大数据时代的背景下,促进教育机构建立统一平台、统一资源管理的数字化教学系统。如何评估系统平台的健康程度、学生的学习体验和在线课程的质量对于课程的教师和学校的管理人员都是非常重要的,这是进行数据分析的主要目的。可视化是一个重要的途径,它能够帮助大数据获得完整的数据图表并挖掘数据的价值,大数据分析离不开可视化这一工具的推动。
基于hadoop和echarts的教育大数据可视化系统,以B/S模式开发。通过Hadoop中Sqoop进行数据导入转换。以MapReduce构建数据分析,数据分析维度包括每日登录人数分析、平均学习时长分析、学习行为次数分析、每日活跃情况分析和分时段学习人数分析。最终使用ECharts可视化工具来对在线教育平台在学习过程中产生的数据进行可视化大屏展现,让更多人感受到可视化大数据的魅力。
关键词:教育大数据;可视化;ECharts;MapReduce
完整的代码+数据集;
https://download.csdn.net/download/qq_38735017/87380630
二、Abstract
Theonlineeducationplatformisanimportantpartoftheeducationsystem.Inthecontextofthecurrenteraofbigdata,theeducationalinstitutionsareencouragedtoestablishaunifiedplatformandaunifieddigitalmanagementsystemforresourcemanagement.Howtoassessthehealthofthesystemplatform,thelearningexperienceofstudentsandthequalityofonlinecoursesareveryimportantfortheteachersofthecourseandthemanagementoftheschool.Thisisthemainpurposeofdataanalysis.Visualizationisanimportantwaytohelpbigdatagetcompletedatachartsandminethevalueofdata.Bigdataanalysisisinseparablefromthetoolofvisualization.Educationalbigdatavisualizationsystembasedonhadoopandecharts,developedinB/Smode.DataimportandconversionthroughSqoopinHadoop.DataanalysisisconstructedbyMapReduce.Thedataanalysisdimensionsincludedailyloginnumberanalysis,averagelearningdurationanalysis,learningbehavioranalysis,dailyactivityanalysisandtime-scorelearninganalysis.Finally,theEChartsvisualizationtoolisusedtovisualizethelarge-screendisplayofthedatageneratedbytheonlineeducationplatformduringthelearningprocess,sothatmorepeoplecanfeelthecharmofvisualbigdata.Keywords:Educationbigdata;visualization;ECharts;MapReduce
三、绪 论
3.1 课题研究背景
大数据技术改变了网络教育思想,从“用经验说话”到“用数据驱动决策、管理与创新”,提供给学生不同于传统教育的“教”与“学”[1]。随着更多数字化校园或是其他教育机构提供服务的更新和平台中数据的积累,如何利用平台中沉淀出的数据,促进教学效果优化和提供个性化学习服务[1]。以中国大学MOOC(慕课)为例,MOOC的学习者贡献了海量的学况数据,对这些数据进行整理、分析和挖掘等探究,将会有助于教育工作者对学习者学习特点和行为规律的发现与总结,从而为教学设计的改进和学生的自适应学习提供指导[3]。
目前,有能力的教育企业需要构建自有数据采集、数据分析、数据展示平台的教育大数据一体化平台,用数据驱动增长已得到大家共同的认识,利用平台中静态数据和学习者在平台中学习产生的动态数据,这些数据采集自不同形式,将收集的数据借助平台中集成的数据分析工具数据挖掘模型进行解释和分析,以跟进和评估学习者的学习状态和进度,进而反哺平台提升课程质量,满足学习者突破时间和空间多方位学习。
MOOC平台本身会同步记录学习者的学习行为数据[4],对于非结构化数据的管理可以通过大数据技术集成到教育数据分析平台中,难点在于提供有价值的数据分析和根据合适的可视化分析呈现分析后的结果[5]。前者帮助进行数据处理,以发现学生,教师和学习过程之间的联系,目的是创建改善整体教育过程的建议。后者使用可视化界面来说明从分析推理中获得的结果,有助于理解新知识并帮助用户发现新的关系或可能的不规范[6]。
3.2 课题研究内容
在线教育正为现代教育体系带来巨大变革,在线教育学习平台一般是学生用来进行校内或校外拓展课程学习的平台,平台需要具备在线视频观看,作业提交,形成性考核等功能。在学生学习的过程中,学校的管理者或负责教师需要了解学生的学习情况和学习状态,因此必须要通过学生的学习行为数据进行数据分析,将学生的学习情况直观的展现给用户,方便教师进行学生管理和评测。
一个完整的教育平台系统中,应具备三个阶段:数据采集和存储,数据分析和结果可视化。本文侧重在于数据分析和结果可视化的实现。
教育大数据可视化系统,通过使用Hadoop生态圈中的组件进行数据归一化及存储,解决数据分析过程,使用ECharts可视化工具来对学习行为分析后的抽象结果进行展现,数据分析的维度有平台健康度,每日登录人数分析、平均学习时长分析、学习行为次数分析、每日活跃情况分析和分时段学习人数分析等。同时,可视化不存在简单的对应关系,应该根据需可视化呈现对象的特征进行具体设计[7]。
3.3 课题发展方向
本系统采用某数据分析平台中的部分时间段学生学习数据,而非杂乱不关联的数据做数据分析,首先将学习平台中关系型数据表导入Hadoop中做分析与存储,通过这样的分析,老师去了解当前的学生和学习情况是什么样的,以及这个课程平台的这个健康程度和通过这个来反哺过来提升课程质量。通过页面可视化技术,将分析结果呈现,便于老师直观对学生的教学行为、爱好行为等非结构化数据特征进行深度了解。
目前信息化技术的扩散,“互联网+”战略和5G技术的来临,高校的数字化校园建设充满机遇与挑战。高校缺乏专业人才自建数据分析平台,且对数据的分析处理技术与挖掘模型的集成整合难度较大,更多是外包给有能力的企业来做。但北京语言大学网络教育学院的在线教育大数据分析平台的成功也证实了机遇一直都在,该项目通过教育数据分析系统建设,汇聚分散在不同平台中的数据信息,最大程度满足学生个性化需求,根据课程关联性、学生学习过程中习题测验完成情况等相关数据,为学生推荐相关课程,提供个性化的课程服务。在节省了人力成本的基础之上,面向整个平台的数据可视化和面向系统优化的统计分析,为学习者提供了个性化、针对性的指导和全面、综合的评价,同时为监督提高教师的教学水平,该平台也支持根据教师的备课情况、参与论坛情况和学生评教的结果等。
当然,对大数据的探索和可视化还更多停留在数据的批处理时代,对于流数据的处理需要新的算法的注入,也需要设计创新的交互方式来对大数据进行可视化交互和辅助决策[8]。
本系统运用Java开发,采用MVC设计模式,系统分为两部分:一是利用MapReduce完成数据准备工作,数据处理使用批处理形式并存储于HBase中,二是使用Java Web项目访问数据库表,Servlet通过JSON数据格式加载到基于HTML的ECharts中,进行数据展示,其中有使用Spring Security和CAS做登录拦截和单点登录。
四、相关理论和技术介绍
4.1 大数据可视化研究
大数据可视化是关于数据视觉表现形式的科学技术研究[9],将数据转换为图形或图像在屏幕上显示出来,并进行各种交互处理的理论、方法和技术。将数据直观地展现出来,以帮助人们理解数据,同时找出包含在海量数据中的规律或者信息,更多的为态势监控和综合决策服务。数据可视化是大数据生态链的最后一公里,也是用户最直接感知数据的环节。
数据可视化系统并不是为了展示用户的已知的数据之间的规律,而是为了帮助用户通过认知数据,有新的发现,发现这些数据所反映的实质。
大数据可视化的实施是一系列数据的转换过程。通过对原始数据进行标准化、结构化的处理,把它们整理成数据表。将这些数值转换成视觉结构,通过视觉的方式把它表现出来。例如将高中低的风险转换成红黄蓝等色彩,数值转换成大小。将视觉结构进行组合,把它转换成图形传递给用户,用户通过人机交互的方式进行反向转换,去更好地了解数据背后有什么问题和规律。
传统的显示技术已很难达到可以完美展示出大规模、高纬度、非结构化数据层出不穷数据的需求,随着人们对大数据技术的不断应用和机器学习的不断深入,数据可视化越来越受到人们的欢迎和认可[9]。那么,应运而生的有哪些新的展示方式呢?首先,不得不提到的一定的是大屏了。高清大屏幕具有超大画面、纯真彩色、高亮度、高分辨率等显示优势, 结合数据实时渲染技术、GIS空间数据可视化技术,实现数据实时图形可视化、场景化以及实时交互,让使用者更加方便地进行数据的理解和空间知识的呈现[10],可应用于指挥监控、视景仿真及三维交互等众多领域.另外VR、AR、MR[11]、全息投影…这些当下最火热的技术也已经被应用到游戏、房地产、教育等各行各业,可以预见的是数据可视化也能与这些技术擦出有趣的火花,比如带来更真实的感官体验和更接近现实的交互方式,使用户可以完全“沉浸”到数据之中。而在不远的未来,触觉、嗅觉甚至味觉,都可能成为我们接受数据和信息的感知方式[12]。
4.2 Java语言
Java语言是一种半动态的支持多平台的面向对象高级语言,其有着悠久的历史却还在换发生机。Java语法严谨,面向对象的思想更是划时代的标志,简单易用,高并发稳定,适合大型系统的开发[13]。
4.3 Idea开发环境
IDEA是一款Java的IDE,它集成了J2EE开发的常用插件,能够快速提高团队的合作和开发效率,该软件实成自动编译,检查错误,尤其在代码智能助手、自动代码提示等方面功能强大。
4.4 Hadoop生态圈技术
HDFS
一种分布式文件系统,提供对应用程序数据的高吞吐量访问,HDFS以流式数据访问模式来存储超大文件,运行于商用硬件集群上[14]。
MapReduce
基于YARN的系统,是一种可用于数据处理的编程模型,用于并行处理大型数据集,MapReduce任务过程分为两个处理阶段:Map阶段和Reduce阶段。每个阶段都是以键值对作为输入和输出,其类型是由程序员来选择[14]。
HBase
HBase是一个在HDFS上开发的面向列的分数式数据库,该技术是Google论文“Bigtable:一个结构化数据的分布式存储系统”的开源实现,它自底向上地进行构建,能够简单地通过增加节点来达到线性扩展[14],解决了RDBMS的可伸缩性问题。
Sqoop
Sqoop允许用户将数据从结构化存储器抽取到Hadoop中[14],用以关系型数据和Hadoop之间数据迁移,抽取的数据数据可以被MapReduce程序使用[14]。
4.5 Echarts
ECharts是由百度开发的交互式可视化图表控件,兼容主流浏览器,并提供丰富的中文API接口和文档,提供直观、交互、个性化的数据图表[15],该技术也是免费,其高可用性和易用性也是深受国人喜爱。
4.6 开发环境
硬件环境
-7300CPU 16g内存 1T硬盘
软件环境
IntelliJ IDEA 2018.1.5 x64、Eclipse4.5.2开发工具
Windows7/Windows10 64位系统
Google Chrome 73.0.3683.103浏览器
Hadoop 2.7.3、HBase 1.3.1
五、系统调研
5.1 需求分析
本系统是对在现教育平台的数据分析和可视化,其数据分析维度包含平台健康度、用户习惯分析和课程质量评估等,掌握通过数据库进行怎样数据分析以及数据分析常用方法,将结果能正确地展示给平台管理人员或是老师,以达到反哺课程的目的。
本系统提供给用户查看平台中数据,首先要求用户简单注册以登录系统查看页面数据,注册过程中需要提供手机号进行短信验证。用户成功登录后通过点击导航栏中不同的按钮,可以查看不同数据维度的图表展示。
上述流程如下图3.1所示:
![](https://i-blog.csdnimg.cn/blog_migrate/76cd3adc07f7455b06566822cc7548ab.png)
图3.1 用户操作流程图
5.2 可行性分析
经济可行性分析
教育大数据可视化系统的目标是以时间短成本低的前提下,开发出基于在线平台数据的数据分析及数据展示,侧重点在于数据的可视化,但这种可视化平台已经有丰富的商业产品实现众多酷炫的图表展示,此系统可以自定义定制要实现的功能点和数据分析维度,而且系统使用大数据组件开源技术,搭建单节点Hadoop集群使用MapReduce数据分析,考虑到市面上大屏可视化系统需要收费,所以用ECharts技术完成数据图表展现,减少了经济成本。
技术可行性分析
该教育大数据可视化系统分为两部分:数据分析和数据展示。
数据分析步骤是通过Eclipse工具开发MapReduce程序,使用Maven管理项目所需Hadoop相关依赖,将处理好的数据写入HBase数据库中或是以JSON形式写入JSON文件中。
数据展示步骤是通过IDEA工具开发Java WEB项目,dao持久化层从HBase读取数据,service层处理业务逻辑,controller层接受向前端发送请求和返回响应,通过servlet和json进行数据交互[16],前台接受数据传送到ECharts进行数据展示,以及CAS做单点登录和注销,调整好系统结构,可以很好实现页面数据传输和展示的功能。
系统性能可行性分析
系统有使用Hadoop中HBase、MapReduce等Linux中大数据组件,这些组件本身具备分布式高并发的特点,此处通过设置虚拟机内存等手段,保证正确运行。而WEB项目的B/S系统确保Tomcat服务器运行项目即可,用户通过浏览器就可以访问该系统,并且系统简洁、操作简单。
六、概要设计
6.1 功能设计
6.1.1 登陆注册功能
用户进入登录页,没有注册的用户可以进行注册,已有账号的用户经过Spring Security框架的登录拦截,登陆后系统显示已登录用户名,点击注销可以实现用户退出登录。
6.1.2 数据预处理功能
将数据通过Sqoop导入Hadoop中的HDFS,使用MapReduce进行数据处理,并将处理好的数据保存到HBase中。
6.1.3 每日登陆人数分析
读取HBase中登录数据,页面显示不同月份的登录人数比,并可以显示每月登录人数,可以切换不同的月份。
6.1.4 平均学习时长和学习行为次数分析
读取HBase中相关数据,页面显示不同日期对应的学习时长和学习次数。
6.1.5 每日活跃情况分析
柱状图显示每日活跃学生人数的统计分析,这里设定每日至少进行3次学习行为的用户为活跃用户。
6.1.6 分时段学习人数分析
热力图展示学生在什么时间段爱学习,横坐标为小时,纵坐标为星期。
柱状图展示在不同时间段中用户登录人数。
6.2 数据库设计
6.2.1 用户登录信息表
tb_user表保存用户登陆基本信息,包含用户名、密码、手机号等基本信息[17]。
字段名 | 字段中文名 | 数据类型 | 取值定义 | 备注 |
字段名 | 字段中文名 | 数据类型 | 取值定义 | 备注 |
id | 用户ID | bigint(10) | ||
username | 用户名 | VARCHAR(50) | ||
password | 密码 | VARCHAR(32) | 以md5加密 | |
phone | 手机号 | VARCHAR(20) |
6.2.2 学生学习活跃情况表
zt_stu_study_schedule学生学习活跃情况(mysql中原始数据表),原有在线教育平台中保存学生学习情况,包含学生的id、班级id、学习方式、学习日期等学生在在线教育平台的学习情况。
字段名 | 字段中文名 | 数据类型 | 取值定义 | 备注 |
字段名 | 字段中文名 | 数据类型 | 取值定义 | 备注 |
user_id | 用户ID | bigint(13) | ||
class_id | 班级id | bigint(13) | ||
content_type | 学习类型 | VARCHAR(8) | Page:浏览网页 ;Video:看视频 ;Topic:讨论话题;Coursewa:看课件;Assignme:做作业 | |
updated_date | 学习日期 | CHAR(8) |
6.2.3 学生注册表
zt_student_num学生注册信息(mysql中原始数据表),原有在线教育平台中用以保存的学生注册信息。
字段名 | 字段中文名 | 数据类型 | 取值定义 | 备注 |
字段名 | 字段中文名 | 数据类型 | 取值定义 | 备注 |
user_id | 用户id | bigint(22) | ||
created_at | 注册日期 | datetime |
6.2.4 学生登录信息表
zt_login学生登录信息(mysql中原始数据表),原有在线教育平台中用以保存学生登录信息。
字段名 | 字段中文名 | 数据类型 | 取值定义 | 备注 |
字段名 | 字段中文名 | 数据类型 | 取值定义 | 备注 |
user_id | 用户ID | int(22) | ||
login_date | 登录日期 | VARCHAR(8) | ||
date_time | 登录时间 | Vdate_time |
6.2.5 班级表
zt_class班级信息(mysql中原始数据表),原有在线教育平台中用以保存班级id和班级名称。
字段名 | 字段中文名 | 数据类型 | 取值定义 | 备注 |
字段名 | 字段中文名 | 数据类型 | 取值定义 | 备注 |
class_id | 班级ID | bigint(23) | ||
class_name | 班级名称 | VARCHAR(8) |
6.2.6 当日人均登录时长表
zt_stu_study_time_beihang当日人均登录时长表(mysql中原始数据表),原有在线教育平台中用以保存每个学生的id、开始学习时间、结束学习时间。
字段名 | 字段中文名 | 数据类型 | 取值定义 | 备注 |
字段名 | 字段中文名 | 数据类型 | 取值定义 | 备注 |
user_id | 用户ID | bigint (22) | ||
visit_time | 用户开始学习时间 | datetime | ||
last_visit_time | 用户结束学习时间 | datetime |
6.2.7 HBase中数据展示相关表
zt教育可视化系统数据展示表(HBase中处理后数据表),保存可视化系统展示所需数据,即从原有在线教育平台的mysql数据库中通过Sqoop导入HDFS中的平台数据,使用MapReduce进行数据的处理并存储到HBase中,用以在教育可视化系统中调用,包括每日登陆人数、平均学习时长和学习行为次数、每日活跃学生人数等。
列族名 | 列名 | 字段中文名 | 取值定义 | 备注 |
列族名 | 列名 | 字段中文名 | 取值定义 | 备注 |
DailyActivity | count | 每日活跃学生人数 | ||
DailyLogin | count | 每日登陆人数 | ||
LearningNumber | count | 学习行为次数 | ||
LearningStuday | avg_studay_time | 平均学习时长 |
6.2.8 HBase中首页数据相关表
zt_index教育可视化系统首页数据表(HBase中处理后数据表),保存教育可视化系统首页相关数据,用以保存教育可视化首页所需相关数据,包括学生数和课程数,周活跃学生和周活跃健康度。
列族名 | 列名 | 字段中文名 | 取值定义 | 备注 |
列族名 | 列名 | 字段中文名 | 取值定义 | 备注 |
info | num | 不同行键对应不同的数量 |
6.3 系统结构设计
在系统实现时,分为两部分:数据处理和数据展示。
6.3.1 数据处理
![](https://i-blog.csdnimg.cn/blog_migrate/7081bd0d3b43257de657b6f1b730d5cb.png)
数据处理部分是开发MapReduce程序,用户只需继承自Mapper类和Reducer类封装自己的Map和Reduce函数,由客户端调用,即可实现分布式计算。
![](https://i-blog.csdnimg.cn/blog_migrate/a75548eb458b004ccb30e3f99b8e8cf4.png)
代码分析:以平台学生登录
Map端:
publicclassLoginNumMapperextendsMapper<LongWritable,Text,Text,IntWritable>{@Overrideprotectedvoidmap(LongWritablekey,Textvalue,Contextcontext){// 26575679,20170401,2017-04-01 00:01:34.0
//获取一行数据
Stringline=value.toString();//分片
String[]words=line.split(",");//数据清洗
if(words.length!=3)return;//group by login_date
try{context.write(newText(words[1]),newIntWritable(1));}catch(Exceptione){printStackTrace();}}}
Reduce端:
Driver主函数端:
publicclassLoginNumReducerextendsReducer<Text,IntWritable,Text,NullWritable>{privateHBaseDAObHBaseDAO=newHBaseDAOImp();@Overrideprotectedvoidreduce(Textkey,Iterable<IntWritable>value,Reducer<Text,IntWritable,Text,NullWritable>.Contextcontext)throwsIOException,InterruptedException{//20170401 <1,1,1>
intcount=0;for(IntWritablev:value){count+=v.get();}// disable '表名'
// alter '表明', NAME => '列名'
// enable '表名'
//插入HBase中
bHBaseDAO.insert("zt",key.toString(),"DailyLogin","count",String.valueOf(count));//login_date,count
context.write(newText(key+","+String.valueOf(count)),NullWritable.get());}}
6.3.2 数据展示
![](https://i-blog.csdnimg.cn/blog_migrate/56ba764780067d820f664a5e5e0ca794.png)
数据展示部分是用IDEA+Maven开发Java Web程序,主要使用MVC模式将代码分层,其中使用Spring Security、CAS、阿里大鱼等技术。
MVC
![](https://i-blog.csdnimg.cn/blog_migrate/9606eb330b8b7a1fa755d874d304327f.jpeg)
mvc:model-view-controller的简称,模型-视图-控制器。
Model是业务逻辑层,View是视图层,Controller是控制层。view层发起一个请求到达controller,controller调用业务逻辑,调用完毕再跳转到视图,从而完成一个请求响应。
SpringSecurity
一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方式的安全框架,应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分,常在企业级Web项目中。它提供一组可以在Spring配置文件中配置的Bean,利用Spring IoC,DI和AOP功能,对底层大量重复代码重新封装。
CAS
CAS 是企业级单点登录开源解决方案。在分布式系统中,用户只需登录一次就能访问相互信任的所有系统。CAS 包含CAS Server 和 CAS Client。
![](https://i-blog.csdnimg.cn/blog_migrate/635c97174a3ea42d3f195919ee49681e.png)
阿里大鱼
阿里大于是阿里云旗下产品,是阿里云为用户提供的收发短信的服务。
6.4 前台UI设计
前端JS使用AngularJS和ECharts,其双向数据绑定方便的操作,配合可视化工具可以动态展示更多有用的信息,和直观的图形效果显示。
七、系统各模块的实现
7.1 注册界面
![](https://i-blog.csdnimg.cn/blog_migrate/d41d5e0ae8bdf3e1bfe5cab279220e4b.png)
当新用户没有账号登录时徐注册账号,注册时输入用户名昵称和密码,获取手机短信验证码验证功能。
![](https://i-blog.csdnimg.cn/blog_migrate/170ff91393ce3ee3d41fa6a0a1b9087d.png)
功能上进行输入检查和验证,密码二次输入一致性检查,短信验证码是否正确,密码以md5加密的密文形式存储数据库中。
7.2 登录界面
![](https://i-blog.csdnimg.cn/blog_migrate/45c8c3de5b6d8e2629585dd1bfc285fe.png)
图5.3 登录界面
在浏览器中输入系统地址时,系统会验证cas中是否有用户已登录,如果没有则跳转登录页面 ,有则直接跳转首页。
登录页面的动画效果是手写的echarts图标效果,功能上同样有用户名和密码的验证并提示信息。
7.3 首页界面
![](https://i-blog.csdnimg.cn/blog_migrate/f601491611a23eb55b605901c71c6baf.png)
图5.4 首页界面
用户登录成功后,系统将用户名并存储在用户浏览器的COOKIE中,在导航栏的右上角显示:欢迎,xxx!,当鼠标悬停在用户名上,下方会显示退出登录,点击退出登录,系统重新跳转到登录界面。
首页页面读取HBase中处理好的数据,展示平台中课程数、学生数,以及课程上课受欢迎度降序排序,下方采用仪表盘开发[18],反映平台每周的活跃人数和周活跃平台健康度。在仪表盘的右上方有工具配置项,可供下载和装换数据视图。
总结:院校的在线教育平台中一般有学习周期,寒暑假学习人数比平时学习学生人数锐减,一般这个时间段里人数不做参考,有的学生喜欢在期末考试之前突击学习完成,所以在那个时间段里会有活跃的峰值,所以在这里面会有一个每日的登录人数和用户的活跃度的这个维度的分析。
7.4 每日登陆人数分析界面
![](https://i-blog.csdnimg.cn/blog_migrate/528668b230e7f99ded513f079c4cf3c1.png)
图5.5 每日登陆人数分析界面
此页面左侧饼图显示每月登录人数比,数据库中只有四月和五月相关数据。右侧默认显示四月每日登陆人数信息。当点击下拉按钮后,系统展示所选月份相关数据。
![](https://i-blog.csdnimg.cn/blog_migrate/71fa1f8277f664d4d7e54bd562885f10.png)
图5.6 选择按钮切换数据界面
总结:一般每日的登录人数一般能在保持在这个整个课程的50%左右,基本上就是可以的,就比如说一门课,一共有50个学生,每天由25个学生去登录,平均的这个量基本就可以在期末的峰值时候,一般会保持在80%到90%以上,很常见的一个情况。
7.5 每日活跃情况分析界面
![](https://i-blog.csdnimg.cn/blog_migrate/9910a7c089c3c0b208660d0db4af2a22.png)
这里设定每日至少进行3次学习行为的用户为活跃用户。
该页面通过柱状图显示每天的活跃学生情况,第一层以月份形式展示。当点击201705所对应的柱状图时,进行数据下钻,第二层以当月的每天形式展示,点击放回按钮,又返回第一层数据。
![](https://i-blog.csdnimg.cn/blog_migrate/fb35918625897c085a18a374e21d82b9.png)
总结:一般每日的活跃度一般在10%左右,在期末的情况也是活跃度会上升到80%到90%,这些都是我们能够预见到的,或者允许的,这是针对平台健康度的一个监测信息。
7.6 平均学习时长和学习行为次数分析界面
![](https://i-blog.csdnimg.cn/blog_migrate/d3d52de280abbd5e37b8e7b5084109b9.png)
此页面展示了平台中每条学生的平均学习时长和行为次数,可以从图中看出这二者关系正相关,当学习行为次数增加时,平台中学习时长就增加。
总结:了解到学生一般习惯看这门课的时候,一般每次学生聚精会神学习20分钟左右,建议单次学习视频不要拉长到20分钟以上,保持在15到20分钟,方便学生一次看完学习还了解到一个知识点。所以根据这个我们可以反过来帮助去调整在线这个视频,它的每个段视频的时长以及知识点的切割。
其次,就比如说有一个人学了这么课程更活跃,他会跟他同学一起去说,听着很有意思,很多人就会一起过来的,所以用户活跃度相对肯定会高,学生学习行为次数肯定次数也会多那一次看课的视频的时长肯定相对会比较长。所以通过这个就可以评估出来这门课程的质量怎么样?那如果质量不好,我们可以去这这这样根据这个情况,我就更换课程或者去重新拍摄的课程。
7.7 分时段学习人数分析界面
![](https://i-blog.csdnimg.cn/blog_migrate/8290de8546b9010cb3d9eb544218d5ef.png)
该页面左侧以热力图的图标展示学生们在什么时间段中学习,可以从图表中纵坐标看出在一星期中的星期一、星期六、星期日学习人数最多,从横坐标可以看出,在每天的0-8点学习人数比白天人数少很多,这符合人们的学习作息时间。
页面右侧细化分一天中每个时间段学习人数在下午的2点-6点,这个时间段中学习人数最多,晚上和早上人数次之,1点-7点人数最少。图表的右上角同样实现柱状图与折线图的转换。
总结:我们可以通过这个监测的一般学生喜欢在下午的2点到4点进行在线课程的学习,那么这样就可以把很多比如说老师的在线答疑的时间,还有随堂测验的时间,我们可以安排在这个时间段里。
7.8 大屏可视化界面
![](https://i-blog.csdnimg.cn/blog_migrate/666a2a89d20a69c86edb17b9217058ec.png)
该页面使用阿里云DataV数据可视化平台,同样实现相同的功能,点击每日,每周,每月按钮,对应折线图,柱状图图表会联动显示数据。学生分布处使用地图显示学生的地区分布人数,以南通市学生人数为榜首。在时间段学习人数处使用气泡图展示,图中恰好展示学习人数在不同时间段中的分布。
使用DataV数据可视化平台,可以看出数据展示效果更加紧凑和大屏数据的显示,看到数据可视化的魅力,可以帮助非专业的工程师通过图形化的界面轻松搭建专业水准的可视化应用多种业务的展示需求。
八、系统测试
软件测试的目的
系统测试是为了更早的发现错误并完善系统,没有任何系统及软件做到0错误。想成为一个优秀的开发者,开发和测试不分家,应把“尽早地不断地进行软件测试”立于心中,并且在开发中做好最坏的打算,写一步测一步。一个完整的系统的开发流程中,开发和测试都是一一对应,编码完成后就要及时完成单元测试,详细设计时就要写好测试用例供功能测试时测试等。测试方式常见与黑盒测试和白盒测试。
前者不考虑程序内部结构和逻辑结构,以准备好的测试用例测试模块的输入和输出,是否满足预期结果和实际结果一致。
后者主要应用在单元测试阶段,开发者自己对方法中代码的自我测试,主要是对代码级的测试,针对程序内部逻辑是否异常,增加程序的健壮性。
系统测试是在经过以上各阶段测试确认之后,把系统完整地模拟客户环境来进行的测试。使其开发的软件产品符合客户的需求。
测试方法及结果
在此系统中,用户主要通过系统点击按钮查看不同的图表。大部分功能在代码功能的实现时对代码进行单元测试和集成测试。在系统正式完成后,需要进行系统测试、模拟用户访问系统的各种操作。
此次测试主要针对登录注册阶段,用户输入账号和密码正确以及注册时手机验证码一致等。
功能描述 | 测试系统用户注册页面输入功能 | 测试系统用户注册页面输入功能 | 测试系统用户注册页面输入功能 |
前提条件 | |||
测试内容 | 预期结果 | 实际结果 | 测试结论 |
输入已存在用户名 | 提示用户名已存在 | 提示增加成功 | 不满足条件,后期修改 |
登录密码和确认密码不一致 | 提示两次密码不一致,请重新输入 | 提示两次密码不一致,请重新输入 | 满足条件 |
输入手机号格式错误 | 提示手机号格式不正确 | 提示手机号格式不正确 | 满足条件 |
输入错误短信验证码 | 验证码输入错误 | 验证码输入错误 | 满足条件 |
输入正确内容 | 提示增加成功,跳转登录页面 | 提示增加成功,跳转登录页面 | 满足条件 |
功能描述 | 测试系统用户登录正确登录系统功能 | 测试系统用户登录正确登录系统功能 | 测试系统用户登录正确登录系统功能 |
前提条件 | 用户注册已完成注册模块 | 用户注册已完成注册模块 | 用户注册已完成注册模块 |
测试内容 | 预期结果 | 实际结果 | 测试结论 |
输入空字符登录系统 | 提示用户名不存在 | 提示用户名不存在 | 满足条件 |
输入错误的用户名 | 提示用户名不存在 | 提示用户名不存在 | 满足条件 |
输入正确的用户名,错误的密码 | 提示密码错误 | 提示密码错误 | 满足条件 |
输入正确的用户名和密码 | 进入教育可视化系统 | 进入教育可视化系统 | 满足条件 |
九、总结与展望
教育大数据可视化系统是对在在线教育平台中学生上课,做作业,提问等多方面多层次的数据沉淀进行数据分析和数据展示[19],通过数据的丰富直观的展示出在这个平台中,比如说学生当前有多少人?整个这个里面有多少老师?当前活跃的学生有多少?以及登陆的学生有多少?那个比如说还有是每周每个月的什么时候学习,学生在哪个时间段来学习,在周几来进行学习,一般他的习惯是什么?通过这种数据分析,我们都可以得到相关的数据,有了这些数据,可以帮助我们管理者和老师来去进行这个相应的调整,这是整个毕业设计系统的实现初衷。
在这次系统的制作过程中,本人将大学四年来所学到的理论知识应用到了实践当中,也是对自己的编程能力的一次考验,从系统的初步架构架构,到开发环境的搭建、数据库中数据的迁移、编码和测试等。期间自学ECharts,通过老师的帮助和自己不断看别人写的代码,涉足自己不擅长的领域,跳出自己舒适圈。在之后的编程中,需求分析远远比代码编写重要的多,而且代码中不能出现硬代码,要考虑代码的耦合性和可扩展性,能够参与这个系统的设计是一件很幸运的事情。
本系统作为毕业设计由我来开发,系统本身还有很多的不足之处,例如我是将数据的处理和展示步骤分开实现,未能实现用Tableau等BI工具做数据处理与数据结果的展示集成在一起,在数据分析中也缺乏数据挖掘技术实现为学生个性化学习提供帮助,页面上的功能点不够丰富,代码的规范也是需要注意的,以上这些不足也是未来可以去添加实现和改进的地方,我坚信在不断的充实下,系统的功能会变得越来越强大,稳定性也会越来越稳定。