国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于微信小程序的在線練習(xí)系統(tǒng)

2021-03-15 07:01呂翔羅回彬陳蔓陳國俊丘柏俊宋家豪
電腦知識與技術(shù) 2021年3期
關(guān)鍵詞:微信小程序

呂翔 羅回彬 陳蔓 陳國俊 丘柏俊 宋家豪

摘要:針對在校學(xué)生進(jìn)行日常練習(xí)時(shí)只可在PC端的問題,提出了基于微信小程序的在線練習(xí)平臺——“題客”。與傳統(tǒng)學(xué)習(xí)方式不同,該平臺結(jié)合數(shù)據(jù)挖掘技術(shù)和微信小程序應(yīng)用,可以較好地滿足學(xué)生靈活做題需求以及方便教師及時(shí)掌控學(xué)生學(xué)習(xí)情況。

關(guān)鍵詞:分布式系統(tǒng);微信小程序;在線練習(xí)平臺

中圖分類號:TP311? ? ? 文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2021)03-0122-03

Abstract: In order to solve the problems that can only be solved on PC during daily practice, an online practice platform based on WeChat was proposed. Different from the traditional way of learning, this platform combines data mining technology and WeChat small program application, which can better meet students' demands for flexible problem solving and facilitate teachers to control students' learning situations in time.

Key words: distributed system; WeChat Mini Program; online practice platform

1 背景

在大數(shù)據(jù)時(shí)代下,教育這個(gè)傳統(tǒng)行業(yè)也開始越來越多地走向智能化,網(wǎng)絡(luò)課堂、線上問答學(xué)習(xí)模式的興起,使得手機(jī)教育系統(tǒng)應(yīng)運(yùn)而生,充分利用好手機(jī)能夠讓學(xué)生們更好地汲取知識。其中,手機(jī)在線練習(xí)系統(tǒng)在智能教育中扮演著不可或缺的角色,在高校學(xué)習(xí)知識的過程中,大學(xué)生也需要通過課程習(xí)題來鞏固知識以及檢驗(yàn)自己的水平,然而傳統(tǒng)的學(xué)習(xí)檢驗(yàn)方法都是通過筆試或是PC的web在線刷題,這種模式受限于時(shí)間和場地,不便于教師及時(shí)管理,不僅教師無法及時(shí)知道學(xué)生學(xué)習(xí)情況,而且也不便于學(xué)生學(xué)習(xí)。

如今,手機(jī)以它的便攜性與輕巧性成為每個(gè)大學(xué)生隨身攜帶的必需物,據(jù)調(diào)查,比起傳統(tǒng)模式,大學(xué)生更愿意通過手機(jī)刷題做練習(xí),但是,當(dāng)前手機(jī)應(yīng)用中并沒有很實(shí)用且面向?qū)ο鬄楦咝@蠋熀蛯W(xué)生的做題軟件,針對這些情形,高校可利用面向大學(xué)生且使用手機(jī)就可以操作的在線練習(xí)系統(tǒng)來管理學(xué)生學(xué)習(xí),以便提升管理質(zhì)量、促進(jìn)學(xué)生們的學(xué)習(xí)。

2 平臺設(shè)計(jì)方案

2.1 系統(tǒng)架構(gòu)

在此練習(xí)平臺研發(fā)的過程中,技術(shù)上突破了傳統(tǒng)的WEB后臺的架構(gòu)開發(fā)模式,采用了最新的分布式系統(tǒng)架構(gòu)模式替代,并且在前后端分離開發(fā)的基礎(chǔ)上,采用模塊化的微服務(wù)模式,具體架構(gòu)如圖1所示。學(xué)生將微信小程序作為入口,而老師端通過WEB瀏覽器可以登錄練習(xí)平臺的后臺。此外,以Spring Cloud Gateway作為API網(wǎng)關(guān)入口,應(yīng)用服務(wù)器進(jìn)行數(shù)據(jù)處理、存儲以及報(bào)表統(tǒng)計(jì)等等,普通數(shù)據(jù)存儲在關(guān)系型數(shù)據(jù)庫MySQL中,而需要進(jìn)行分析挖掘的數(shù)據(jù)放置Elastic Search非關(guān)系數(shù)據(jù)庫中。為了解決性能瓶頸問題,采用了RabbitMQ消息隊(duì)列以及Redis緩存等中間件,并采用Eureka負(fù)責(zé)服務(wù)的注冊與發(fā)現(xiàn),同時(shí)采用docker[1]來管理各個(gè)部件,以此保證各個(gè)模塊在自己的工作區(qū)順利完成任務(wù)。

2.2 平臺功能模塊

使用在線練習(xí)平臺的角色有兩個(gè),分別是學(xué)生和老師,學(xué)生端通過微信小程序進(jìn)入該平臺,該角色功能主要由三個(gè)模塊組成,分別是答題模塊、班級模塊以及論壇模塊。教師端通過瀏覽器進(jìn)入該平臺,該平臺由四個(gè)模塊組成,分別為題目導(dǎo)入模塊、班級初始化模塊、答題分析模塊以及報(bào)表服務(wù)模塊。具體功能點(diǎn)如圖2所示。

3 主要技術(shù)

3.1 MySql集群機(jī)制

為了保證數(shù)據(jù)庫的可靠性和應(yīng)用服務(wù)器的可靠性,作者采用了主從復(fù)制的MySQL集群技術(shù),部署了兩臺MySQL服務(wù)器,分別作為主服務(wù)器(master)和從服務(wù)器(slave),主服務(wù)器將更新寫入二進(jìn)制日志文件,并維護(hù)文件的一個(gè)索引以跟蹤日志循環(huán)。這些日志可以記錄發(fā)送到從服務(wù)器的更新。當(dāng)一個(gè)從服務(wù)器連接主服務(wù)器時(shí),它通知主服務(wù)器和從服務(wù)器在日志中讀取最后一次成功更新的位置。從服務(wù)器接收那時(shí)起發(fā)生的任何更新,然后封鎖并等待主服務(wù)器通知新的更新。具體如圖3所示。

3.2 Redis緩存技術(shù)

考慮到平臺有許多業(yè)務(wù)邏輯都有高并發(fā)的需求,比如在做題時(shí)需要獲取題目,查看排行榜等等業(yè)務(wù),數(shù)據(jù)庫的讀寫操作將成為平臺的瓶頸,作者使用Redis緩存技術(shù)并采用主從復(fù)制的Redis集群[2]技術(shù)來保證其可靠性和高效性,具體如圖4所示。這樣當(dāng)要從數(shù)據(jù)庫中讀取數(shù)據(jù)時(shí),首先都要先查詢Redis中是否存在緩存數(shù)據(jù),若有,則直接使用緩存數(shù)據(jù),若沒有,才去訪問數(shù)據(jù)庫,同時(shí)將讀取的數(shù)據(jù)存放到數(shù)據(jù)庫中。

3.3 RabbitMQ消息隊(duì)列

考慮到學(xué)生扎堆完成答題任務(wù),需要將數(shù)據(jù)保存到數(shù)據(jù)庫中,在應(yīng)用服務(wù)器邏輯處理過程中,如果是多個(gè)學(xué)生在同一時(shí)間提交,會出現(xiàn)超出應(yīng)用服務(wù)器的處理能力的問題,會導(dǎo)致用戶操作得不到反應(yīng),這將極大影響用戶體驗(yàn)。為此,作者采用了RabbitMQ[3]消息隊(duì)列技術(shù)中的異步Topic轉(zhuǎn)發(fā)模式,如圖5所示。學(xué)生只要提交請求,首先會將提交的做題數(shù)據(jù)保存起來放入消息隊(duì)列中,然后應(yīng)用服務(wù)器即可響應(yīng)用戶,而應(yīng)用服務(wù)器則可以慢慢地從消息隊(duì)列中取出數(shù)據(jù)進(jìn)行處理。

3.4 Elasticsearch檢索技術(shù)

在統(tǒng)計(jì)學(xué)生成績以及報(bào)表服務(wù)的時(shí)候,需要對答題結(jié)果這一張表進(jìn)行大量檢索,答題結(jié)果這張表的每條記錄作為一個(gè)學(xué)生一道題的做題結(jié)果,這意味著這張表中的記錄的增加速度十分迅速,若放在MySQL關(guān)系型數(shù)據(jù)庫中,一段時(shí)間之后的檢索速度會有所下降,所以作者采用專門做檢索的Elastic Search[4]來實(shí)現(xiàn)這一部分。同時(shí),在MySQL數(shù)據(jù)庫中的該表用于保存數(shù)據(jù),這樣可以保證學(xué)生答題情況得到保存的可靠性。所有數(shù)據(jù)先插入到MySQL數(shù)據(jù)庫中,在應(yīng)用服務(wù)器中開啟了一個(gè)定時(shí)任務(wù),每隔一分鐘就會從MySQL數(shù)據(jù)庫中的答題結(jié)果表數(shù)據(jù)傳輸?shù)紼lastic Search中并做好記錄。

@Scheduled(cron = "0 * * * * MON-SAT")

@Override

public void helloScheduled(){

Object data = getDataFromMySQL(); //將數(shù)據(jù)從數(shù)據(jù)庫中取出

data = ESService.refreshData(data); //重新編排數(shù)據(jù),以適用es

ESService.addResult(data); //將數(shù)據(jù)保存到es

}

3.5 學(xué)生成績數(shù)據(jù)分析設(shè)計(jì)

該功能是根據(jù)學(xué)生平均做題時(shí)間與和老師布置任務(wù)所答題的正確率來進(jìn)行劃分,分為四個(gè)部分。根據(jù)所有答題學(xué)生的做題情況計(jì)算得出平均做題正確率 [accuracy]和 平均做題時(shí)長 [time],同時(shí)通過公式 [i=1n(accuracyi-accuracy)2] 和 [i=1n(timei-time)2] 分別計(jì)算答題正確率標(biāo)準(zhǔn)差 [σ1] 和答題時(shí)長標(biāo)準(zhǔn)差[σ2],由正態(tài)分布[5]曲線的面積概率可知 [μ+2σ] 為95.45%([μ]為平均值,[σ]為標(biāo)準(zhǔn)差),我們認(rèn)為如果某個(gè)學(xué)生的做題正確率或平均答題時(shí)間不在[μ+2σ]的范圍內(nèi),則認(rèn)為該學(xué)生做題異常,有掛科的可能。如圖6所示。

4 結(jié)束語

基于微信小程序的在線練習(xí)系統(tǒng),是利用微信的普及程度,制作一個(gè)無須下載,就可方便使用的在線練習(xí)系統(tǒng),具體實(shí)現(xiàn)效果如圖7、圖8所示。與傳統(tǒng)教學(xué)管理相比較,教師可以利用該系統(tǒng)上傳題庫、創(chuàng)建班級,這不僅減少了教師批改作業(yè)的時(shí)間,而且教師通過學(xué)生們做題情況及答題質(zhì)量,利用大數(shù)據(jù)分析,總結(jié)學(xué)生的問題所在,促使老師可及時(shí)了解學(xué)生的學(xué)習(xí)動向與問題,并在課堂做出相應(yīng)調(diào)整,以此來達(dá)到高質(zhì)量教學(xué)以及提高學(xué)生學(xué)習(xí)質(zhì)量。而學(xué)生可以隨時(shí)隨地刷題、查看解析以及提問討論,不再受限于時(shí)間和地點(diǎn),此外,排名榜功能也會有助于學(xué)生學(xué)習(xí)興趣的提高,此系統(tǒng)旨在解決在智能時(shí)代下如何利用好科技實(shí)現(xiàn)課堂、線下一體化。

參考文獻(xiàn):

[1] 劉鑫的博客.docker容器技術(shù)[EB/OL].(2019-05-30)[2019-12-17].https://blog.csdn.net/liuxe1990/article/details/90641973.

[2] Java架構(gòu)技術(shù)分享.Redis.集群管理[EB/OL].(2019-04-19) [2019-12-17].https://blog.csdn.net/weixin_44861409/article/details/89406795.DOI.

[3] 王磊. RabbitMQ系列[EB/OL].(2018-07-06)[2019-12-16].https://www.cnblogs.com/vipstone/p/9275256.html.

[4] zkycaesar.ElasticSearch底層原理淺析[EB/OL].(2018-04-18)[2019-12-15].https://blog.csdn.net/zkyfcx/article/details/79998197.

[5] ClintonZero.正態(tài)分布[EB/OL].(2019-01-26)[2019-12-15].https://blog.csdn.net/Dulpee/article/details/86662035.

【通聯(lián)編輯:謝媛媛】

猜你喜歡
微信小程序
微信小程序在高校英語教學(xué)中的應(yīng)用
當(dāng)圖書館遇上微信小程序
灵宝市| 德安县| 周口市| 定安县| 资溪县| 潢川县| 伊金霍洛旗| 邢台县| 陆丰市| 古浪县| 通化市| 分宜县| 宁远县| 类乌齐县| 永康市| 武穴市| 丰顺县| 安乡县| 宜章县| 明光市| 永康市| 鹤壁市| 洛宁县| 肥东县| 保亭| 蓝山县| 梅河口市| 望奎县| 福海县| 秦安县| 海宁市| 八宿县| 蒙自县| 通河县| 新兴县| 房产| 枣强县| 磐安县| 苍山县| 宣恩县| 政和县|