基于个性化推荐算法的多终端微型课程平台设计与实现
2018-02-27肖祥林周春容
肖祥林 周春容 万 铮
(四川交通职业技术学院信息工程系 四川 成都 611130)
0 引 言
随着移动终端的迅速发展,预计2017年移动用户将赶超PC用户,智能手机App已经成为移动互联网的重要入口之一[6]。由于移动终端设备智能化、便捷化、多样化和4G移动通信技术的移动化、宽带化、IP化、融合化以及移动通信资费的下调,越来越多的人喜欢通过手机、Pad等移动终端利用零碎的时间随时随地聊天、玩游戏、购物、看视频、收发邮件等,而不再是单一地通过PC端访问Internet资源进行工作、学习、娱乐[20]。目前我国移动App在交友、购物、娱乐等方面取得了很大的突破,积攒了大量的用户,比如看荐App,一个基于用户个性化推荐的阅读平台,上线不到1个月就拥有了10多万的下载量。购物App中通过记录浏览的商品和商品的关联规则进行个性化推荐,促进商品销售。而教育App的应用面却相对较窄,主要集中在幼教、中小学教育、语言学习类,比如:天天练App、小勾学习圈App等主要是针对中小学学生的个性特点,以学科分类,采用游戏、视频、打擂台的形式提高孩子们的学习兴趣[5]。
微型课程简称微课,它有别于传统课程按照章节来组织课程内容,它是由一个学科所包含独立的主题(知识点)组成,主题之间相对独立,没有很强的连贯性[5]。学生在学习微课时可以根据学生的兴趣爱好以及自身对知识点的掌握程度,个性化地选择对哪个主题的学习。目前微型课程的展示平台大多都是通过课程网站展示,比如学堂在线等,而根据学生兴趣爱好的个性化推荐学习平台目前的研究较少。本文结合微型课程的特点设计并开发一款适用于多终端的微型课程平台,以满足用户可以通过PC端、智能手机、Pad等多种设备随时随地地自主学习。
1 系统分析
该系统主要解决师生可以利用手机、Pad、PC等多种终端设备随时随地访问该系统实现以下功能:
(1) 对感兴趣的课程知识点的学习。
(2) 学习效果的评估测试。
(3) 和其他实践共同体相互交流。
(4) 实现个性化推荐学习。
通过在师生中做网络问卷调查、会谈、专家论证分析等多种形式充分了解系统需求,得出系统的逻辑模型。经过需求分析得知,系统分为4类用户:管理员、教师、学生和匿名用户,各类用户的功能需求如表1所示。
表1 系统用户功能表
续表1
2 系统设计
2.1 系统架构设计
为了增强系统的可扩展性、达到高内聚低耦合的系统设计目标,系统按照Web层、服务层和持久层设计。持久层通过封装DAO操作实现和数据库的交互,服务层通过调用持久层的DAO方法来实现业务逻辑,Web层通过调用服务层的服务来完成各模块的功能。系统架构如图1所示。
图1 系统体系结构图
2.2 系统功能设计
微型课程平台分为服务器端和客户端,服务器端主要由完成用户管理、课程管理、专业管理、作业管理、进度管理等功能。客户端主要包括课程搜索、课程学习、完成作业、完成测试、推荐学习、提问等功能,系统详细功能模块划分如图2所示。
图2 多终端微型课程系统功能模块划分
2.3 数据库设计
根据需求分析,微型课程平台涉及到用户、用户状态、用户角色、课程、课程分类、知识点、作业、问题、分数、日志等10多个实体。用户表包括用户ID、帐号、密码、真实姓名、电话号码、邮箱、性别、创建时间、最后登录时间等信息;用户角色表包括用户角色ID、角色名、创建时间等信息;用户状态表包括用户状态ID、状态名称等信息;课程表包括课程ID、课程名称、课程描述、封面图、创建时间、课程分类ID等信息;课程分类表包括课程分类ID、分类名称等信息;知识点表包括知识点ID、主题、内容、章节ID、视频文件地址、创建时间、修改时间等信息;问题表包括问题ID、标题、详细信息、答案、知识点ID、用户ID、知识点ID、创建时间、回复时间等信息。该系统主要实体之间的关系如图3所示。
图3 微型课程平台主要实体关系图
3 系统实现
3.1 系统实现的关键技术
目前开发移动App有三种选择:一是运用移动操作系统支持的开发工具和开发语言调用移动操作系统原生API编写移动App,这种方式具有界面美观、程序运行性能高,不足之处:开发工作量大,需要为每个操作系统开发对应的App,对开发者的要求较高。第二种方式是采用HTML5+CSS3+JavaScript编写HTML5应用程序,这种方式可以实现“一次编写,到处运行”,不足之处是在离线储存的安全性、对原生设备的访问欠佳。第三种方式是利用混合式开发框架实现跨平台开发,这种方式具有原生开发和HTML 5开发的优点,其中IONIC、Mobile Angular UI、Intel XDK、Appcelerator Titanium、Sencha Touch、Kendo UI和PhoneGap是目前主流的混合式开发平台[3]。
多终端微型课程学习平台构建分两步:第一步是开发微型课程平台Web服务器端,第二步是开发移动App实现通过智能手机、Pad等手持设备访问微型课程平台。Web服务器端采用:Spring框架和MySQL数据库,运用目前最成熟的PhoneGap混合开发框架开发移动App端。
3.1.1 Spring框架
Spring框架是分层的JavaEE应用一站式开发的轻量级开源框架,以IOC和AOP为内核,提供了表现层的SpringMVC和持久层Spring JDBC以及业务层事务管理等众多企业及应用技术,目前已成为应用最广泛的Java EE企业应用开源框架[13]。
3.1.2 PhoneGap框架
PhoneGap框架是一个基于HTML5、CSS3和JavaScript的快速开发平台[12],能做到一次开发适用于多个平台,该技术几乎覆盖了市场上主流的智能终端操作系统[10]。该框架是目前混合开发中应用最广泛的,该框架最大的优点是:内置的WebView浏览器可以方便地用HTML5和CSS3页面布局,WebView提供Web和设备本地API双向通信的能力。其跨平台的特性主要是PhoneGap为不同平台的WebView做了封装和扩展,屏蔽了不同平台的差异,使得开发人员可以在该框架中运用JavaScript访问本地设备的API[11]。
3.1.3 个性化推荐算法
微课个性化推荐主要目的是引导用户选择最需要的学习内容,以便达到更好的学习效果。而在个性化推荐算法中,常用协同过滤(CF)推荐算法、基于内容的推荐算法以及情景感知推荐算法等。这些算法在相应的知识领域都有不错的效果,而对于微课程的推荐除了包括评分、内容相关度、用户推荐度,还有更多的是关联在于用户模型、知识特点、知识模型等方面。所以,把几种推荐系统算法做成一个集合,为微型课程用户提供个性化的推荐,模型结构如图4所示。
图4 个性化推荐算法集合模型
假设目前有n个用户对m微课进行评分。为区分用户和微课程,用户以u、υ表示,i、j、k表示课程,用户υ对微课程i的推荐结果记为res(v,i),而影响res(v,i)的条件有以下因素:n之间的相似度;用户n对课程m的评分个数;评分重叠数;用户υ对课程k的评分ru,k等。由CF方法演变为:
(1)
式中:Pv,u为n之间的相似度,Bu,i为用户评分向量,hyv,u为权重因子,由wf1和wf2构成。
hyv,u=wf1+wf2
(2)
(3)
(4)
(5)
式中:cov代表是基于内容的推荐度,公式为:
(6)
式中:A为常量值。
式(1)中Bu,i为:
(7)
用户u对课程i已做评分,则评分向量Bu,i的值为ru,k,若未评分,则采用其他推荐算法结果cu,k作为评分向量。
3.2 个性化课程管理功能方法实现
3.2.1 推荐结果计算
结合上述公式,取推荐排名前3的作为推荐结果,Res(v,i)为输出值。
for i=1: size (Bu,i,1)
C=0;
for j=1:size(Bu,i,2)
C=C+1;
Rec (i , j)=C
end
end
for k=1:size(Bu,i,1)
//*取用户数
for m=1:size (Bu,i,2)
//*取项目数
for n=1:[size Bu,i,2)-1]
if Bu,i(k,n) temp=Bu,i(k,n); Bu,i(k,n)=Bu,i[k,(n+1)]; Bu,i[k,(n+1)]=temp; temp=Rec(k,n); Bu,i(k,n)=Bu,i[k,(n+1)]; Bu,i[k,(n+1)]=temp; end end end end RANK=3; Res(v,i)=Rec; Res(v,i) [ : , (RANK+1):n]=[]; 3.2.2 微课管理页面实现 课程管理包括课程添加课程信息、编辑课程信息、查看课程信息和审核课程信息等功能。实现该功能用到的主要接口、类和页面有:Web层用到:microcourse.controller包下的uIniServlet类、CourseController类;服务层用到:microcourse.service包下的接口:ICourseService和microcourse.service包下的CourseServiceImpl类;持久层用到:microcourse.pojo包下的Course类、CourseCategory类、CourseState类和microcourse.dao包下的CourseDao类、CourseCategoryDao类和CourseStateDao类;页面主要有:course-add.jsp、course-edit.jsp、course-list.jsp等。 核心代码如下: /** * @Title: addCourse * @Description: TODO 添加课程 * @param course 课程信息 * @param userId 用户Id * @return * @throws Exception */ @Override Public boolean addCourse(Course course,Integer userId) throws Exception { if(course!=null&&course.getName()!=null && !course.getName().equals("") && userId!=null){ course.setUserId(userId); course.setUpdateTime(System.currentTimeMillis()); course.setCreateTime(System.currentTimeMillis()); course.setStateId(DatabaseConstant.COURSE_STATE_ID_VERIFY); //上传图片 if(course.getUploadFile()!=null){ String fileName = FileUtils.saveFile(course.getUploadFile(), ProjectConstant.FOLDER_COURSE_PICFILE,null); course.setPicFile(fileName); } return mCourseMapper.addCourse(course)>0?true:false; } return false; } 其中添加课程信息的界面如图5所示。 图5 添加课程信息界面 用户管理功能包括查看所有用户列表、修改用户信息、搜索用户、删除用户信息和批量删除用户、设置用户状态等功能。为了简化权限的管理,系统采用基于角色的访问控制(RBAC)[11]。实现该功能用到的主要接口、类和页面有:Web层用到:microcourse.controller包下的UserController类;服务层用到:microcourse.service包下的接口:IUserService和microcourse.service.impl包下的UserImpl类;持久层用到:microcourse.pojo包下的User类、UserRole类、UserState类和microcourse.dao包下的UserDao类、UserRoleDao类和UserStateDao;页面主要有:user-info.jsp、user-login.jsp、user-password.jsp等。 本文运用HTML5、Java Web、Css3和PhoneGap框架应用混合编程的方式设计一款多终端的微型课程学习平台。该系统既可以在PC端通过浏览器访问系统,也可以通过手机、PAD等移动终端访问系统,师生利用碎片时间随时、随地通过微型课程平台完成学习,该系统的投入使用受到了广大师生的一致好评。 [1] Deng Y,Cheng X H.System design of mobile cross-domain single sign-on[J].Computer Engineering & Design,2010,31(8):1667-1672. [2] 李顺忠.基于SOA架构的多认证方式统一认证平台[D].解放军信息工程大学,2011. [3] 刁仁宏,陈运,郑丰华.基于SAML的WEB单点登录系统安全模型设计[J].微计算机信息,2009,25(21):75-77. [4] 田辉,胡静,张平.基于多终端协同的业务流控制[J].中兴通讯技术,2016,18(23):16-19,27. [5] 王超超.学前教育专业微型课程学习平台设计初探[J].河南广播电视大学学报,2015,28(1):109-112. [6] 马玉慧,赵乐,李南南,等.新型移动学习资源——教育APP发展模式探究[J].中国电化教育,2016(4):64-70. [7] 张永诺,孙华,孙子恒.移动APP的应用与发展[J].电脑知识与技术,2016,12(2):86-87. [8] 黄景修,刘清堂,吴林静.一种面向多终端服务的学术会议管理系统设计与实现[J].计算机应用与软件,2016,33(7):68-71,101. [9] 孟青春,吴颖川,刘志勤,等.基于移动终端的多终端单点登录研究与设计[J].计算机工程与设计,2014,35(5):1537-1541. [10] 杜帅,鄂海红,许可.混合移动应用开发模式的新策略[J].软件,2015,36(6):12-17. [11] 徐隆龙,李莹,白静.移动混合开发框架[J].计算机系统应用,2014,23(12):54-59. [12] 陈星,杨春花,吴文峰.基于PhoneGap的移动OA办公系统[J].齐鲁工业大学学报,2015,29(1):60-65. [13] 周春容,肖祥林,杨桦.Java Web通用用户权限管理框架设计与实现[J].计算机与现代化,2014(3):177-179,196. [14] 齐利利.基于手持终端的微学习活动设计研究[D].武汉:华中师范大学,2012. [15] 郑世珏,陶立秋,鲁岳,等.微型课件在IOS移动学习平台上的设计与应用[J].微型机与应用,2014,33(20):4-6. [16] 柯清超,姜淑杰,尤欢欢.企业微型学习设计与评价研究现代远程教育研[J].现代远程教育研究,2010(5):65-70. [17] 李舒愫.微型学习资源的设计与共建及其系统原型[D].上海:华东师范大学,2010. [18] 李玲,胡卫星,蒋梅梅.教育型移动APP的教学应用模式研究[J].中国信息技术教育,2015(12):34-35. [19] 吕冬梅.4G环境下的移动APP在图书馆中的应用[J].科技视界,2015(8):121-122. [20] 李青,王涛.基于平板电脑的学习资源设计框架和要点分析[J].远程教育杂志,2012(5):35-41.3.3 用户管理功能实现
4 结 语