基于 Android 的课堂辅助系统开题报告

 2022-01-14 11:01

全文总字数:8021字

1. 研究目的与意义、国内外研究现状(文献综述)

随着当今智能手机的普及以及移动互联网的发展,网络已成为人们不可或缺的一部分,各大高校的大学生几乎人手一部手机,然而手机的普及造成的弊端也逐渐显露,许多大学生在上课时偷玩手机的现象几乎无处不在,本课题提出的“基于android的课堂辅助系统”就是基于这一问题提出的。国内有诸如“掌上大学”,“今日校园”等app[1-4],这些app在校园互动性做的相对来说比较完善,比如可以发布动态,查课表,查成绩,甚至可以应用校园内部的接口做各种考核测评,但缺乏上文中所提到的对学生的监督以及针对课堂的一些互动功能。针对课上作业以及小测的上传及评分功能,课下作业提交及评分功能和课上的交流功能,现在虽然有问卷星等可以进行测评打分的系统,以及qq群这类的群交流系统,但这些系统相对来讲功能比较单一,而且分散在不同的应用系统中,不能形成一种有效的融合,不能作为一个单独的课堂辅助系统,本课题提出的课堂辅助系统可以有效的解决上述问题。

此外,针对课堂一直存在的上课签到问题,本系统提出了一个较为新颖的应用,传统的签到是通过拍照或扫描二维码实现的,但这些功能存在两个问题:1)通过微信扫描二维码有一定的局限性,因为微信扫描二维码的接口是由微信提供的,不能保证其服务的长期性,具有一定的局限性。2)通过单纯的扫码或拍照不能有效杜绝代签问题以及静态二维码作弊问题。高建良等[5]提出的防替代远程签到系统通过人脸识别的方式来解决签到问题中的替代问题,但每次进行识别需进行人脸识别的数据采集,应用成本过高,不能满足部分课堂的需求。耿申[6]提出的基于wlan室内定位技术的二维码签到技术,通过wlan定位于二维码签到相结合的方式,符合我校特色(我校在教学楼,主楼等教学点已全面部署wlan设备),虽能有效解决这一问题,但在实际应用中不能保证本系统能够获得学校的授权应用学校的wlan设备。本课题针对上述问题,相关文献的启发,提出了一种基于动态二维码以及位置的签到机制,通过动态二维码以及手机已有的位置服务可以避免代签、异地签到、多次签到的情况发生。

本课题提出的另一个新颖的功能是首页推送推荐功能,诸如上文提到的“掌上大学”,“今日校园”等app虽具备首页的功能,但都缺乏推送机制,而我们常用的微博,淘宝具备推荐系统这一机制,但他们的推荐机制有一定的局限性,其局限性包括对用户的个性化需求考虑的不充分,并且社交网络服务由于需要处理海量数据而难以保障服务的实时性[7],刘慧婷等人[7]提出的实时个性化微博推荐系统通过基于lda主题模型和kl散度相结合的rpmps微博推荐模型可以有效满足用户的实时个性化需求。

剩余内容已隐藏,您需要先支付后才能查看该篇文章全部内容!

2. 研究的基本内容和问题

一、 研究目标

本系统拟设计一个辅助全校师生的APP,该APP即可方便教师辅助教学,又可为学生提供教学和信息查询的遍历,同时方便师生和对相关学科知识及志同道合的同学间的学术和生活交流,既实用又方便师生。

二、 研究内容

1)功能模块简述

本程序拟实现的功能模块如下:

如图2.1,具体应具备的功能如下所述:

1.实现基本的登录、注册和注销功能。用户在打开本APP时,首先以游客的形式登录进本系统,只能浏览公开的信息,不能使用其他的服务,只有在登录本系统后,才能使用。

2.实现实时手机监控,防止学生偷完手机,这里可以通过Android相关的检测模块来实现,诸如应用“Forest”等已经可以通过检测手机是否切换应用来实现对手机是否做其他操作的监控。

3.签到功能根据上文所述,通过基于位置的服务和动态二维码实现,动态二维码首先要具备不可猜解性和不可复制性,防止签到作弊,基于位置的功能可以防止学生签到后早退。针对动态二维码的不可猜解性和不可复制性,可以通过随机数来实现防重放的目的。

4.答题功能,学生可以在本应用答选择题,主观题,也可以拍照发图片给教师,学生在做题时,为了防止有同学剽窃他人答案,可以使用本APP的特色服务——花卷功能,本应用可以把选项顺序甚至题目顺序打乱,防止学生剽他人的答案。

5.教师发布作业以及判作业,在后台浏览旷课学生的信息。教师可以在群里发布作业也可以在课堂上发布课堂小测,学生将作业或小测的结果通过本APP提交给教师,教师在后台审阅然后将结果发给其他同学。

6.教师和学生可以发布学科相关动态,可以为学科设置浏览权限,并根据自己发布的动态内容来添加标签以标识动态的主题,同时为后续的推荐系统做铺垫。

7.学科聊天交流功能,群聊功能可以满足师生之间进行课程相关的学术问题的讨论,修同一门课程的同学可以在聊天群内与老师同学交流问题;老师也可以在群内发布相关的通知(如上课,停课或活动的情况)以告知群内的成员。

8.学科动态以及推荐,根据用户浏览的习惯来进行动态内容的推荐,也就是推荐系统功能的实现。用户在登录本应用时,即可浏览本应用用户发布的公开的动态信息,但当推送信息过多时,用户必须找到自己感兴趣的,也就是用户经常浏览的或者和本专业相关的动态信息,所以本应用通过设计动态推荐功能来自动为用户推荐用户感兴趣的话题。

9.实现学生课表、成绩的查询。本应用将设置一个独立的版面用于同学浏览查询自己在校的课程表和成绩。其相关的实现需要学校教务系统的接口(但其不给开放),本应用在之前已实现了针对教务系统的爬虫。可用于爬取学校的课程表和成绩。

10.用户发布的学科动态点赞、评论和转发功能。用户在浏览学科动态时,可以为自己喜欢的动态点赞,也可以在动态上留下自己的评论,也可以转发他人公开的动态。

11.用户交友交流功能。本系统设置专门的用户交友交流功能,同学可以通过学科群或公开动态的人发出交友申请,待他人同意后,即可与他人进行在线聊天。

2)数据库设计

本系统大致对用户分成三类:管理员,教师,学生和游客

图3.1 学生的实体-属性图

图3.2 教师的实体-属性图

图3.3 管理员的实体-属性图

如图3.1,3.2,3.3所示,为了针对满足教师上课的需求,我们还将设置课程表,以满足不同教师上课的需求:

图3.4 课程表的实体-属性图

在图3.4中,我们将课程id设置为主码以对课程表进行实体完整性约束,教师id设置外码并将其参照成员表(或教师表),以设置参照完整性约束。

为了满足课堂的辅助功能,我们专门设计上课表,如图:

图3.5 上课表的实体-属性图

在图3.5中我们设置上课id为主码,课程id,教师id为外码,而上课教室和二维码是本表最具特色的两项内容,二维码是上文中提到的动态二维码,可以为实现签到功能而服务,上课教室是为了方便定位功能而设计的,以便后续对学生进行定位,以便判断学生是否早退。学生成员信息是用来存储该门课的学生信息,可以存储学生的学生id。本表的设计是整个APP的核心,该表的每一项用来标识学校正在上的课程,当下课后,对应的课程项目也会自动销毁。本表的设计可以根据学校的课表来进行修改。

动态发布也是本应用的一大特色,老师和学生可以通过发布动态来进行学习上的心得交流,对于动态发布,我们专门设计动态发布表,如图所示:

图3.6 动态发布表实体-属性图

如图3.6所示,在该表中,动态id是该表的主码,发布人id是外码,其参照了成员表的成员id,其中每条动态可以设置动态权限,来限制哪些人可以浏览,其中本表中最具特色的是动态标签功能,动态发布者可以根据动态内容来编辑标签内容(如发布的是计算机相关的动态,那么可以加一个名为“计算机”的标签),并且这一标签也可以为后面的推荐功能打下基础。

为了方便管理群聊,我们专门设计了群聊表,如图所示:

图3.7 群聊表实体-属性图

如图3.7所示,在该表中,群id作为每个群的主码,群主id作为外码,聊天内容作为每个群的聊天记录,其内容以json格式作为组织形式。

为了保证教师能够及时发布课堂小测和作业,本应用专门设计了作业表,如图3.8:

图3.8 作业表实体-联系图

3)课堂辅助流程

课堂辅助是本应用的核心功能之一,学生在每次上课前需扫描教师提供的一个二维码,来确认学生是否来到教室。二维码其实代表的是字符串,其字符串代表的是一个随机的字符串,通过随机的字符串来保证二维码的不可猜解性,并且每次上课前都使用不同的二维码,这样可以保证其不可重放性,在学生扫描成功之后,应用会进入手机后台监视状态,期间学生不能切换至其他应用,如果学生切换至其他应用则会给学生提醒,并将该学生上报给后台数据库,并将该学生信息供给老师查阅。如果老师在上课期间发布课堂小测,应用会接收到老师发布的课堂学生将进入答题状态,整个流程如图3.9所示:

图 3.9 课堂辅助流程图

但在实际应用中,学生可能由于各种各样的原因导致掉线,而不能正常使用本应用,在该种情况下,要分两个情况处理:

① 学生手机在掉线后仍可使用本APP

学生在掉线后,可以扫描上课时老师提供的二维码即可登录,进入监视状态。

② 学生不能继续使用本APP

这种情况可能是学生手机没电或手机损坏再或是手机没带,针对这种情况,应由学生向老师主动说明。

4)群聊功能是本应用的另一个核心功能,其实现拟采用多线程模式来实现,首先服务器与每个客户端的关系如图3.10所示:

图3.10 群聊通讯模式

采用如图3.10所示的通讯模式,每个用户在聊天时并不是将消息直接转发给群内所有用户,而是将消息由服务器分发给每个用户。

三、拟解决的关键问题

1.实时监控

在学生扫码上课后,要保证学生不偷玩手机,这需要保证应用的实时监控,另外还要保证服务器与客户端保持畅通的连接。

2.多人聊天

群聊功能实现的一个难点是保证群内不同用户都能实时收到群聊消息,这是在实现群聊功能的一个关键问题。

3.动态推荐功能

本功能在实现时会遇到两个问题,一个是如何将用户感兴趣的问题推送给他,另一个就是能够保证推送的实时性,也就是效率问题,这是在设计动态推荐功能的两个重要问题。针对这个问题首先要做好有关功能的设计工作,包括数据库表的建立,相关信息的收集(如本应用设计了标签功能,用于对发布的每个动态进行标识),还有合理的模型和算法。

4.信息的获取功能

因为学校并不将教务系统的接口开放给个人使用,故在信息的获取上,本人拟采用爬虫的方法将每个人的课表信息和成绩爬取下来。

3. 研究的方法与方案

1.研究方法

本课题在设计时采用模块化的设计方法,将不同的功能抽象成一个个独立的模块拉进行独立测试,对每个模块的测试采用先单元测试,再联调的方法来实现。

针对每个模块的实现简述:

1)本应用基于Android平台开发,数据库拟采用MySQL,服务器拟采用Centos7,综合来讲这样的搭配会使得服务端的工作效率更高。开发的语言拟采用Kotlin。

2)针对二维码的生成,在实现时采用google包内部的QRCodeWriter方法来实现的。

3)群聊功能

群聊功能可通过Socket的编程来实现,初步构想如下:

采用如图所示的通讯模式,每个用户在聊天时并不是将消息直接转发给群内所有用户,而是将消息由由服务器分发给每个用户。但这里会产生一个问题,用户如何得知消息需要接收,这里实现有两种方法:①查询模式②多线程模式。

所谓的查询模式就是用户不断的向服务器发出请求,在服务器接收到请求后,告知用户是否需要接收消息,显然这种方式效率过低,会直接导致服务器过载过大。而多线程模式是指用户开出两个线程,一个线程用于向服务端发出聊天请求和聊天内容,另一个线程用于接收聊天内容,首先由聊天请求发送线程发出聊天请求和内容,在服务端接收后,修改群聊表中的聊天内容信息(也就是将发出聊天的那个用户的聊天内容加入到json中),然后向群聊表中的每个用户的另一个线程发出聊天发送请求,在每个用户的接收聊天请求的线程收到来自服务端的请求后,下载发出聊天请求用户的聊天内容,然后将该内容显示出来即可,个人在设计该功能模块时,比较倾向于第二种方法。这里需要解决的一个问题是当客户端同时接收到多个聊天请求时,如何将这些请求进行同步以及客户端如何同步服务端发出的多个请求。整个群聊的多线程模式如图4.1所示:

图4.1 基于服务端的多线程群聊实现

针对发出的用户的群聊内容,本系统拟采用json的形式发出,具体如下:

{

“Qunid”:“群id”,

“time”:”发出时间”,

“Userid”:”用户id”,

“content”:“聊天内容”

}

之所以这样组织是为了便于对每个发出群聊请求的用户进行同步,服务器设置了一个消息接收缓冲区,用于存储消息请求队列,服务端在进行处理时,会根据缓冲区内的消息请求队列进行依次处理,客户端也应设置一个消息接收缓冲区,用于接收的同步。

4)首页动态推送功能

在实现首页推送上,本应用拟采用基于LDA主题模型和KL散度相结合的RPMPS微博推荐模型,该模型既可以获得用户信息与待推荐动态的内容相似性,还可以在数据处理过程中对动态内容进行过滤以缩短系统的响应时间,以满足用户实时个性化的需要。该模型最早用于微博的推荐系统上,如下图所示:

图 4.5 基于RPMPS模型的微博推荐系统的基本架构

如图4.5所示,该算法从用户的个人兴趣标签、个人简介与微博的重要性(转发数,评论数)两方面作为参考依据,对用户进行个性化的推荐。根据该算法,整个模型可分为四个模块:数据源模块,数据处理模块,推荐引擎模块和推荐结果处理模块,其中推荐引擎模块是整个推荐系统的核心,其通过RPMPS模型计算用户和推荐动态的相似度,然后经过排序得到推荐列表返回给用户。我们假定数据库内所有公开的动态的集合为D={d1,d2…,dM},M是数据库中已知的所有动态的数量,K是是主题数量(这里我们以数据库中的标签数作为K),N是所有动态下的词的数目,α表示文档-主题矩阵,β表示主题-词矩阵,U代表用户兴趣集(可以在用户刚刚注册的时候,让用户自选标签来实现),C代表推荐动态的信息,ST代表U与C的主题相似度,SC代表U与C的内容相似度,similar代表U与C的总体相似度,其中similar=(1-λ)SC λST,λ是一个参数,用来调和主题相似度与内容相似度的权值。注意本算法是根据LDA算法进行改进的,它是在LDA的基础上引入了KL散度模型来提高LDA的准确率。在算法实施上,首先用吉布斯采样获得用户与待推荐动态的主题的分布矩阵α,通过RPMPS模型相对熵计算SC,然后RPMPS根据向量α计算ST,最后计算出similar的值,根据每个抽样得到的similar值进行排序,将小于某个阈值的similar的动态从中排除,余下的加入到用户推荐列表中,最终得到用户所需的推荐内容。而该技术的难点在于如何去得到α矩阵,如何计算SC的值以及根据α矩阵计算ST值,λ参数的选取。

其中α矩阵是通过吉布斯抽样来实现,SC根据U和C来计算,λ参数可以根据不断的试验来获取适当的λ的值。

5)信息查询

信息查询拟采用基于Python的request库来实现,通过模拟浏览器的http请求,向教务系统的指定域发送请求,从而获取学生的课表成绩等信息。

2. 技术路线

图 4.6技术开发路线图

3. 实验方案

本程序通过采用模块化的程序设计,逐模块测试,在单元测试完毕后,再进行模块联调,从而实现整个系统的调试。在软件测试数据上,拟采用微博的数据,该数据通拟采用爬虫的形式爬取下来,再将爬取到的微博信息组织成json信息存储到数据库中。

4. 可行性分析

本课题所采用的技术都是基本的软件开发技术,可操作性强,综合性高,整体可行性强。

4. 研究创新点

1) 设计了一款针对教师课堂辅助的app,可用于对学生上课玩手机的监视。

2) 独特的签到机制,避免了早期在学生签到后会早退的现象。

3) 实现了由学生沉迷于手机向让手机监督学生的转变。

剩余内容已隐藏,您需要先支付后才能查看该篇文章全部内容!

5. 研究计划与进展

2018年12月25日-2019年1月9日 完成开题准备

2019年1月10日-2019年2月15日 完成有关知识的学习

2019年2月16日-2019年2月23日 完成基本功能(如简单的界面设计,数据库设计与实现,登录功能的实现)

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。