999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于HTML5和JavaScript的信息學(xué)學(xué)習(xí)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

2019-11-28 13:40:32楊嘉誠(chéng)柯海豐
計(jì)算機(jī)時(shí)代 2019年11期

楊嘉誠(chéng) 柯海豐

摘 ?要: 信息學(xué)奧賽的一大特色是涉及的知識(shí)量大而且面廣,為了使參賽者盡快地了解并掌握這些知識(shí),使用HTML5和JavaScript語(yǔ)言開發(fā)了一個(gè)信息學(xué)在線自主學(xué)習(xí)網(wǎng)站。網(wǎng)站提供在線評(píng)測(cè)功能,能根據(jù)用戶對(duì)每種題型解決數(shù)量的統(tǒng)計(jì)來評(píng)估學(xué)習(xí)進(jìn)度。

關(guān)鍵詞: HTML5; JavaScript; 信息學(xué); 自主學(xué)習(xí)網(wǎng)站; 在線評(píng)測(cè)

中圖分類號(hào):TP311 ? ? ? ? ?文獻(xiàn)標(biāo)志碼:A ? ? 文章編號(hào):1006-8228(2019)11-32-03

Abstract: One of the characteristics of International Olympiad in Informatics is that it involves a large amount of knowledge in a wide range. In order to make the participants understand and master the knowledge as soon as possible, an online self-learning website of informatics was developed using HTML5 and JavaScript language. The website also provides online evaluation function, which can evaluate the learning progress according to the statistics of the number of each type of problem solved by the user.

Key words: HTML5; JavaScript; Informatics; self-learning website; online evaluation

0 引言

隨著信息時(shí)代的到來,很多國(guó)家都開始重視計(jì)算機(jī)的應(yīng)用能力,為了普及計(jì)算機(jī)教育,青少年信息學(xué)競(jìng)賽應(yīng)運(yùn)而生,這項(xiàng)學(xué)科性競(jìng)賽活動(dòng)主要是為了推廣計(jì)算機(jī)應(yīng)用技術(shù)。國(guó)際信息學(xué)奧林匹克(IOI)是每年舉辦的六屆科學(xué)奧林匹克運(yùn)動(dòng)會(huì)之一。IOI最初于1989年在保加利亞進(jìn)行[1]。信息學(xué)奧賽是一個(gè)給學(xué)生展示自己的學(xué)科特長(zhǎng)技術(shù)或創(chuàng)新潛質(zhì)的大舞臺(tái),不論是通過信息學(xué)奧林匹克競(jìng)賽獲得獎(jiǎng)項(xiàng), 還是在科技比賽中獲得較好成績(jī),都激發(fā)了學(xué)生獨(dú)特潛質(zhì)的發(fā)揮[2]。如今,信息學(xué)競(jìng)賽不僅受到學(xué)生的喜歡,也受到了許多家長(zhǎng)的歡迎,相應(yīng)的信息學(xué)教學(xué)網(wǎng)站也如雨后春筍般出現(xiàn)。筆者作為信息學(xué)競(jìng)賽曾經(jīng)的參與者,希望能做出這樣一個(gè)信息學(xué)自學(xué)網(wǎng)站組,來幫助剛開始學(xué)習(xí)信息學(xué)的新人們了解并學(xué)習(xí)一些基礎(chǔ)算法。該網(wǎng)站組還為每種類型的算法提供了大量的題目進(jìn)行參考,這些題目都是筆者精心挑選出的具有代表性的經(jīng)典問題,也是希望各位學(xué)生能少走彎路,避免花費(fèi)不必要的時(shí)間在做重復(fù)題目上,同樣使得不同層次的學(xué)生都有不同程度的收獲,從而達(dá)到整體水平的提升[3]。

1 關(guān)鍵技術(shù)

隨著網(wǎng)絡(luò)的不斷發(fā)展,遠(yuǎn)程教育實(shí)際上已經(jīng)等同于網(wǎng)絡(luò)教育,開發(fā)適用于網(wǎng)絡(luò)教育的高質(zhì)量課程勢(shì)必會(huì)成為發(fā)展網(wǎng)絡(luò)教育的迫切而重要的課題[4]本次設(shè)計(jì)的Web網(wǎng)站開發(fā),前端使用HTML5+CSS3設(shè)計(jì)基礎(chǔ)頁(yè)面,響應(yīng)式網(wǎng)站開發(fā)采用Bootstrap前端框架。它為大多數(shù)標(biāo)準(zhǔn)的UI界面設(shè)計(jì)提供了用戶友好、跨瀏覽器的解決方案,極大地提高了Web前端的開發(fā)效率[5]。響應(yīng)式設(shè)計(jì)的關(guān)鍵技術(shù)主要包含媒體查詢、彈性盒布局及百分比布局等[6]。毫無(wú)疑問, 通過技術(shù)優(yōu)化,響應(yīng)式布局賦予用戶舒適的整體美感和良好的閱讀體驗(yàn)[7]。使用JavaScript來實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)的設(shè)計(jì)以及與后端的信息交互。后端使用的Node.js的Express應(yīng)用框架來處理前端發(fā)來的請(qǐng)求。在數(shù)據(jù)庫(kù)的選擇上選擇了Mysql數(shù)據(jù)庫(kù),來進(jìn)行對(duì)數(shù)據(jù)的存儲(chǔ)。

Node的主要作用就是其能夠?qū)⑶岸撕头?wù)器端巧妙結(jié)合起來,通過這種手段, 就能夠以一種簡(jiǎn)潔的方式彌補(bǔ)JavaScript技術(shù)存在的一系列不足, 使其能夠更好發(fā)展[8]。

Express是新興的一個(gè)Node.Js Web應(yīng)用框架, 它擁有很多強(qiáng)大的特性,使得開發(fā)者創(chuàng)建各種Web應(yīng)用時(shí)可以事半功倍。Express作為后端服務(wù)器,其特點(diǎn)是利用路由的方式來接受前端發(fā)來的請(qǐng)求。

2 基本框架

系統(tǒng)主要由以下模塊組成,分別為用戶模塊、題目模塊、評(píng)測(cè)模塊以及統(tǒng)計(jì)模塊,形成一個(gè)基本的業(yè)務(wù)框架。用戶模塊支持登陸注冊(cè)以及注銷。題目模塊支持題目的添加修改。評(píng)測(cè)模塊負(fù)責(zé)對(duì)用戶上交代碼在后端進(jìn)行評(píng)測(cè),并實(shí)時(shí)返回結(jié)果。統(tǒng)計(jì)模塊會(huì)統(tǒng)計(jì)用戶每種不同類型算法題目的通過數(shù)量,以便用戶對(duì)自己學(xué)習(xí)進(jìn)度進(jìn)行評(píng)估。

3 部分功能實(shí)現(xiàn)

3.1 題目列表加載與界面展示

題目列表界面如圖1所示。題目列表的分頁(yè)功能是在后端實(shí)現(xiàn)的,每頁(yè)最多顯示10題。因?yàn)镴avaScript異步通信的原因,如果使用單純的循環(huán),則會(huì)因?yàn)榉?wù)器響應(yīng)的快慢,最終顯示的順序可能會(huì)被打亂,而在設(shè)計(jì)中要求題目是按照題目標(biāo)號(hào)從小到大排列的。為了防止這種情況的發(fā)生,前端在向服務(wù)器發(fā)起請(qǐng)求的時(shí)候使用了遞歸的方式,成功解決了這個(gè)問題。

在題目名稱的右側(cè)有一個(gè)推薦標(biāo)志,這個(gè)標(biāo)志出現(xiàn)與否與用戶當(dāng)前的算法能力相關(guān)。只有在用戶擁有學(xué)習(xí)當(dāng)前題目所屬算法能力的時(shí)候才會(huì)出現(xiàn)這個(gè)標(biāo)志,如果某道題需要的算法用戶目前沒有掌握,則不會(huì)出現(xiàn)這個(gè)標(biāo)志。所有基礎(chǔ)算法(貪心,搜索等)會(huì)全部設(shè)置為默認(rèn)推薦。

3.2 學(xué)習(xí)園界面展示

圖2為學(xué)習(xí)園界面推薦學(xué)習(xí)算法拓?fù)鋱D。

學(xué)習(xí)園的上半部分界面展示了本網(wǎng)站目前支持學(xué)習(xí)的幾種算法,并根據(jù)其難度和學(xué)習(xí)的遞進(jìn)程度繪制了學(xué)習(xí)拓?fù)鋱D。用戶在學(xué)習(xí)完基礎(chǔ)算法之后系統(tǒng)才會(huì)推薦高階算法相關(guān)的習(xí)題,提供給了用戶一條循序漸進(jìn)的學(xué)習(xí)路線。

算法總覽如圖3所示。

現(xiàn)在的學(xué)習(xí)園提供了多種基礎(chǔ)算法的學(xué)習(xí),有搜索算法,貪心算法,字符串算法,數(shù)據(jù)結(jié)構(gòu)相關(guān),動(dòng)態(tài)規(guī)劃算法,以及數(shù)學(xué)相關(guān)等。這些算法在信息學(xué)中是最基礎(chǔ)和最實(shí)用的算法,該模塊主要是幫助用戶熟悉并掌握這些算法。在這個(gè)界面中,用戶可以查看每種算法的簡(jiǎn)介,以及自己通過測(cè)試的題目和目前該類型題目在題庫(kù)中的總數(shù),可以對(duì)自己的學(xué)習(xí)進(jìn)度有一個(gè)直觀的感受。

3.3 能力測(cè)試界面

用戶進(jìn)入個(gè)人界面,點(diǎn)擊能力測(cè)試,會(huì)彈出模態(tài)框,如圖4所示。

用戶可以在這里對(duì)自己的算法能力做一個(gè)簡(jiǎn)單的評(píng)估,每道題都會(huì)對(duì)應(yīng)高階算法的一些基礎(chǔ)概念,如果用戶答對(duì)了大部分相關(guān)的題目,我們會(huì)認(rèn)為用戶已經(jīng)掌握了該算法的概念,從而推薦用戶該類算法。

3.4 后臺(tái)評(píng)測(cè)功能的實(shí)現(xiàn)

前端發(fā)送評(píng)測(cè)請(qǐng)求后,后端會(huì)接受到用戶提交的代碼和題目編號(hào)。然后進(jìn)入評(píng)測(cè)過程,整個(gè)過程分為以下幾步。

⑴ 將用戶上傳的代碼存放在本地評(píng)測(cè)文件夾。

⑵ 進(jìn)行超時(shí)處理,如果整個(gè)運(yùn)行過程超過了時(shí)間限制,就會(huì)返回給客戶端超時(shí)信息,并結(jié)束評(píng)測(cè)過程。

⑶ 將標(biāo)準(zhǔn)輸入輸出數(shù)據(jù)拷貝到評(píng)測(cè)文件夾。

⑷ 編譯運(yùn)行用戶上傳的代碼。

⑸ 運(yùn)行結(jié)束后比較選手程序輸出與標(biāo)準(zhǔn)輸出中的內(nèi)容,來判斷最終結(jié)果是否正確,如果此時(shí)尚未運(yùn)行超時(shí),返回給客戶端相應(yīng)的結(jié)果,否則在到達(dá)題目時(shí)限的同時(shí)停止進(jìn)程并返回超時(shí)信息。

另外,為了提高服務(wù)器端并行評(píng)測(cè)的效率,最大限度利用多核優(yōu)勢(shì),特此在服務(wù)器端開設(shè)了多個(gè)“評(píng)測(cè)機(jī)”,這些評(píng)測(cè)機(jī)提供了多個(gè)相同的評(píng)測(cè)環(huán)境,評(píng)測(cè)機(jī)的當(dāng)前狀態(tài)使用信號(hào)量來控制。當(dāng)接受到一個(gè)評(píng)測(cè)請(qǐng)求時(shí),服務(wù)器會(huì)先遍歷所有評(píng)測(cè)機(jī),找到空閑評(píng)測(cè)機(jī)進(jìn)行評(píng)測(cè),并將其信號(hào)量改變,當(dāng)評(píng)測(cè)完成之后再將信號(hào)量還原。這種方法可以最大限度地利用服務(wù)器的資源,減少了用戶等待返回結(jié)果的時(shí)間,優(yōu)化了用戶體驗(yàn)。

4 結(jié)束語(yǔ)

基于HTML5和JavaScript,完成了信息學(xué)自學(xué)的網(wǎng)站組。提供了算法學(xué)習(xí)拓?fù)鋱D,讓學(xué)生的學(xué)習(xí)有一個(gè)循序漸進(jìn)的過程,算法的掌握程度可以通過題數(shù)統(tǒng)計(jì)來進(jìn)行直觀評(píng)估,一定程度上解決了編程“入門難”的問題,有效提高了學(xué)生的自我學(xué)習(xí)效率的同時(shí)也減輕了教師的教學(xué)監(jiān)管壓力。

參考文獻(xiàn)(References):

[1] Mukund M.International Olympiad in Informatics[J]. Resonance,2002.7(1):102-107

[2] 苗春,魯琦.新高考政策下的信息學(xué)奧賽培養(yǎng)策略[J].中國(guó)信息技術(shù)教育,2018.17:82-83

[3] 趙明陽(yáng).在線評(píng)測(cè)平臺(tái)在信息學(xué)奧賽輔導(dǎo)中的應(yīng)用[J].中國(guó)信息技術(shù)教育,2018.10:26-28

[4] 金志峰.提高初中學(xué)生編程水平的三個(gè)著力點(diǎn)[J].科教導(dǎo)刊(下旬),2017.4:93-94

[5] 徐曉.基于Bootstrap技術(shù)的移動(dòng)端Web開發(fā)研究[J].微型電腦應(yīng)用,2018.34(9):4-6,43

[6] 戴維.基于Bootstrap的響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)[J].電腦編程技巧與維護(hù),2018(11):132-133,166

[7] 葉潮流,馬林山.基于HTML 5+CSS3+jQuery的響應(yīng)式布局網(wǎng)頁(yè)設(shè)計(jì)[J].梧州學(xué)院學(xué)報(bào),2018.28(3):22-35

[8] 張博,于海洋.服務(wù)器端JavaScript技術(shù)分析[J].信息與電腦(理論版),2018.4:19-20

主站蜘蛛池模板: 亚洲中文精品久久久久久不卡| 国产农村精品一级毛片视频| 欧美在线观看不卡| 无码AV日韩一二三区| 欧美国产成人在线| 国产第一页屁屁影院| 日本五区在线不卡精品| 国产精品第一区在线观看| 国产精品综合久久久| 久久久国产精品无码专区| 欧美成人一级| 亚洲综合色在线| 国产日韩欧美在线播放| 亚洲美女一区| 欧美一区福利| 2020国产精品视频| 一级一级一片免费| 国产特一级毛片| 一级爱做片免费观看久久| 免费精品一区二区h| 草逼视频国产| 丁香五月婷婷激情基地| 国产国语一级毛片| 尤物亚洲最大AV无码网站| 国产成人无码AV在线播放动漫| 色首页AV在线| 国产精品青青| a级毛片在线免费观看| 岛国精品一区免费视频在线观看| 91精品国产无线乱码在线| 欧美日韩国产在线播放| 亚洲国产欧洲精品路线久久| 国产美女在线观看| 欧美成人aⅴ| 亚洲小视频网站| 亚洲成人福利网站| 国产精品密蕾丝视频| AV无码无在线观看免费| 色妞www精品视频一级下载| 日韩欧美国产三级| 国产日本欧美亚洲精品视| 日本亚洲欧美在线| 欧美另类图片视频无弹跳第一页| 91小视频在线观看| 久草国产在线观看| 激情网址在线观看| 999精品色在线观看| 中文字幕无码中文字幕有码在线| 女人天堂av免费| 色综合天天综合| 国产区在线看| 狠狠色丁香婷婷综合| 国产浮力第一页永久地址| 99久久婷婷国产综合精| 最近最新中文字幕免费的一页| 国产不卡网| 国产91av在线| 天天婬欲婬香婬色婬视频播放| 欧美五月婷婷| 国产黄网永久免费| 欧美亚洲国产视频| 久热99这里只有精品视频6| 九九久久精品免费观看| 四虎亚洲国产成人久久精品| 欧美激情综合| 国产综合在线观看视频| 日本91在线| 极品尤物av美乳在线观看| 亚洲第一成人在线| 在线观看91精品国产剧情免费| 久久毛片网| 欧美激情,国产精品| 日韩视频福利| 91九色最新地址| 99伊人精品| 毛片免费在线视频| 亚洲色无码专线精品观看| 欧美日本在线播放| 亚洲国内精品自在自线官| 18黑白丝水手服自慰喷水网站| AV天堂资源福利在线观看| 中文字幕永久在线看|