智慧课堂项目解决方案说明书.docx
智慧课堂项目解决方案说明书XX科技股份有限公司编制目录一、项目存在问遨及需解决问应1.存在问SS2,需解决问题3二'解决方案51 .解决方案架构52 .关键技术6三、开发范困71.数据生产72 .数据采集/消费73 .数据分析94 .数据展示9一、项目存在问题及需解决问题1 .存在问题传统的教学模式是在一门课程中,使用同一套教案同一套练习题目对所有学生进行教学,这种千篇一律的教学无法实现因材施教,早巳成为教学方式的诟病。笔者提出过分层教学的教学理念,在同一门课程设计出两个不同难度系数的教案和练习题目。在一定程度上,分层教学的方式,可以解决基础较弱和基础知识比较强的同学的不同学习需求,以达到不同的学习目标。但仅仅用两套方案和两个难度系数的区分,仍然没法实现真正的面对学生个体的因材施教。随着大数据技术的快速发展,在整个教学过程中,跟踪获取学生行为数据并通过数据分析,准确获取每位学生的学习需求,并根据每位学生的学习情况个人定制不同教案和练习任务成为可能,以实现真正意义上的因材施教。因此,以实现提高学习效率为目的精准教学,设计基于大数据的智慧深堂显得极为迫切。2 .需解决问题第一,能对学生学习情况进行全面监控。为确保学生完整无遗漏地掌握课程知识,要能对学生学习的全过程进行数据采集。譬如,以单个学生为对象,实时、动态地采集学生学习行为,包括自动记录智慧课堂上和课堂外学习行为数据;课堂的举手次数,提问次数,正确率和答题速度等。此外,系统能对学生的学习结果进行跟踪,记录采集的行为数据和结果数据,并进行数据的清洗,以满足后续数据挖掘和分析的数据要求。第二,能满足教师对学生的学情多维度掌握的诉求。针对学生的课堂课外的行为数据和学习结果,系统能利用数据统计分析和数据挖规技术进行多维度的学情分析,分析班级、学习小组或学生个体的学业情况和学习活跃度。数据分析结果要直观,能以数据可视化方式呈现。譬如,用知识点分布图.成绩趋势分布图分析班级情况,用个人知识图谙、个人知识点分布图等来分析学生的学习情况。第三,能根据学情分析结果,系统自动诊断,并根据诊断结果进行相关推送,并能按班级、学习小组或学生个体进行精准调整。譬如,基于以班级或学习小组为对象的知识点分布图,根据群体成绩的发展趋势预测图,关注成绩波动幅度大的学生个体,并进一步进行分析。对于学生个体,系统自动诊断错题知识点,找到学生知识点漏洞,并根据关联规则推送有针对性的补充练习。同时,对补充练习继续跟踪、分析,自动诊断,再根据习题情况自动推送,直至学生个体知识点完全掌握。第四,智慧课堂的课程内容应当对知识模块标准化,为确保同一门课程的教学内容规范和统一标准,所有在智慧课堂进行授课的课程,雷预先录入课程所有知识模块。知识模块为所有采用智慧课堂授课的老师提供标准化的授课。二、解决方案1 .解决方案架构KafkaS*>rtW1.rmmmH处JT系统开发平台使用I1.adoop大数据开发平台。IIadoop是一个高度可扩展的存储平台,可以存储和分发横跨数百个并行操作的廉价的服务器数据集群。能扩展到处理大量的数据,能提供成百上千TB的数据节点上运行的应用程序。Hadoop能够有效的在几分钟内处理TB级的数据。相比关系型数据库管理系统更具有优势。它适用于任何规模的非结构化数据持续增长的企业,将帮助用户持续提高用户体脸。系统采用面向对象的软件设计方法,把整个系统看作是多个离散对象的组合。系统设计时,首先把业务流程分解成功能模块及其业务实体对象,然后根据业务流程分析对于这些业务实体时象的操作方法,形成业务处理对象,最后把各个功能模块关联起来,形成系统。软件设计是一个将需求转变为软件的过程,系统通过逐步求精使得设计陈述逐渐接近于源代码。系统程序采用MVC的设计思想,将展现逻辑、控制逻辑、业务处理逻辑分离。系统采用参数化的设计思想,定义和管理系统的实体及配置,调整实体以适应外部变化。系统采用J2EE技术保证程序逻辑实现的平台无关性,并便于安装部署。系统采用AJAX技术,提高客户操作的交互性,保证实际使用的易用性。系统采用echarts可视化框架实现数据展示。2 .关键技术分布式计算框架(MaPRedUCe)VaPRedUCe是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念-MaP(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。当前的软件实现是指定一个MaP(映射)函数,用来把一组键值对映射成一组新的键值时,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。分布式消息订阅(Kafka)Kafka是由Apache软件基金会开发的一个开源流处理平台,由SCaIa和JaVa编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像HadooP一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。分布式文件存储(HDFS)HDFS(HadoopDistributedFiIeSystem),作为GOOgIeFi1.eSystem(GFS)的实现,是Had。P项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它所具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集(1.argeDataSet)的应用处理带来了很多便利。三、开发范围1 .数据生产对于该模块的业务,即数据生产过程,一般并不会让你来进行操作,数据生产是一套完整且严密的体系,这样可以保证数据的安全性。但是如果涉及到项目的一体化方案的设计(数据的产生、存储、分析、展示),则必须清楚每一个环节是如何处理的,包括其中每个环境可能隐藏的问题;数据结构,数据内容可能出现的问题。2 .数据采集/消费数据采集模块(消费),在企业中你要清楚流式数据采集框架f1.ume和kafka的定位是什么。我们在此需要将实时数据通过f1.ume采集到kafka然后供给给hbase消费°f1.ume:C1.OUdera公司研发适合下游数据消费者不多的情况:适合数据安全性要求不高的操作:适合与Hadoop生态圈对接的操作。kafka:Iinkedin公司研发适合数据下游消费众多的情况;适合数据安全性要求较高的操作(支持rep1.ication);因此我们常用的一种模型是:线上数据一>f1.ume->kafka->f1.ume(根据情景增册该流程)>HDFS线上数据一>f1.ume>kafka>Sparkstreaming实时流式处理消费存储模块流程图:QFS3 .数据分析我们的数据已经完整的采集到了HRaSe集群中,这次我们需要对采集到的数据进行分析,统计出我们想要的结果。注意,在分析的过程中,我们不一定会采取一个业务指标对应一个mapreduce-job的方式,如果情景允许,我们会采取一个mapreduce分析多个业务指标的方式来进行任务。分析模块流程图:4 .数据展示数据展示模块流程图: