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

面向應用型本科的在線編程訓練系統的設計

2024-09-03 00:00:00陳義唐鄭熠劉劍濤
電腦知識與技術 2024年19期

摘要:編程技能是計算機類專業學生的核心能力,在線評測系統是該能力培養的一個重要載體。鑒于目前的大部分在線評測系統主要面向競賽或崗位招聘,文章設計了一款面向應用型本科的在線編程訓練系統,該系統集在線評測、趣味練習、智能推薦、數據分析等功能于一體,旨在逐步引導、激發學生的編程興趣,提高編程參與度與練習效果。系統采用微服務架構,具備高并發處理能力和直觀的數據可視化支持。

關鍵詞:在線評測;在線編程;挑戰模式;趣味闖關

中圖分類號:R197.323.1 文獻標識碼:A

文章編號:1009-3044(2024)19-0057-03

編程技能是計算機類專業學生的核心能力,直接體現其實踐能力和專業掌握程度。在線評測(OnlineJudge, OJ) 系統作為評判用戶代碼正確性的重要工具,廣泛應用于教學實驗、程序設計競賽、企業軟件類崗位招聘、培訓、計算機等級認證等場景中[1]。當前,知名的OJ系統包括北京大學的POJ、杭州電子科技大學的HDUOJ、牛客、頭歌、洛谷、AcWing等國內平臺,以及Codeforces、Topcoder、Leetcode 等國際平臺[2-4]。然而,這些平臺在提供服務時也存在局限性。部分商業系統功能繁多,對于聚焦編程教學的用戶并不友好,而其費用也阻礙在學校課堂的普及。另一部分主要面向程序設計競賽選手,功能以刷題訓練和在線競賽為主,缺乏對基礎薄弱學生的引導與支持,讓人望而卻步。同時,使用第三方平臺,數據管理權歸運營方所有,對于希望擴大學生訓練規模,進行精細化、個性化、多元化[5-6]教學引導的應用型本科院校而言,難以獲取特定反饋數據以優化教學。

因此作為應用型本科院校,有必要自主開發、部署一個更為靈活、開放、免費、面向不同層次的學生需求的在線編程訓練系統(為了區別傳統OJ,本系統稱為“在線編程訓練系統”) ,通過逐步引導,增加趣味性和挑戰性,激發學生的編程興趣,提高編程活動參與度與練習效果。

1 系統功能

本系統以C、C++、Python和Java代碼的在線評測為核心功能,并針對應用本科型院校的教學和學生自主編程練習需求進行了功能擴展。該系統整合了五項主要功能,功能結構如圖1所示。

1.1 綜合題庫

本系統支持編程題目由自建題庫和爬蟲題庫兩部分組成。自建題庫,該部分題目由專業教練出題,涵蓋題干、評測方式、評測樣例、評測數據等完整信息,系統根據出題者的要求設定評測機制;爬蟲題庫,通過爬蟲技術從第三方題庫網站收集公開題目,對于無法直接爬取的測XyhQw3TG9Wrc5A/fKg2uNQ==試樣例,系統將采用逆推輸入輸出樣例或人工補全的方式加以完善。此外,該模塊還包含題目知識點圖譜、題目解析以及題目推薦等功能。

1.2 在線練習

用戶可自由挑選練習模式和題目進行在線學習。提交解答后,系統將迅速反饋評測結果。完成題目后,系統將更新統計數據,包括難度系數和答題評價,以提供個性化學習參考。

在線練習模式包含專題模式、編程闖關模式與挑戰模式。其中,編程闖關模式仿照游戲關卡設計,由教師依據學生能力定制個性化解題路徑,旨在營造具有目標性、競技性和趣味性的學習環境。挑戰模式則基于多個知識點模塊及其內在關聯,允許用戶自主選擇學習路徑,通過逐步解鎖并達成條件以訪問后續模塊,該模式不僅增加了學習的探索性,還促進了分層學習的遞進實施。此外,系統可根據用戶畫像推薦優秀學長同期的學習路徑和學習成效比較,路徑指刷題順序、闖關主題等。

1.3 在線比賽

在線比賽系統涵蓋多人競賽、在線考試、雙人對抗及實時競賽榜單等功能。多人競賽支持練習、積分、趣味、自定義等多種模式,每種模式均設有獨特的計分與獎勵機制。其中,練習模式適用于課程實驗與日常訓練;積分模式作為高級別競賽隊伍選拔依據,促進學生競爭;趣味模式則提供特色獎品以增加吸引力。同時,該系統支持在線考試模式,允許教師設定用戶權限、答題時限及頁面切換限制,便于組織編程類考試等。雙人對抗功能則鼓勵學生間隨時進行在線對決,提升學習互動性與樂趣。

1.4 用戶互動

該社區集論壇討論、實時聊天室以及積分、達人、答題等多重榜單于一體,為用戶提供了全方位、多層次的交流與學習平臺。用戶可以在論壇中深入探討編程話題,借助實時聊天室即時分享心得,通過積分榜等展示個人成就。此外,本系統還引入了基于編程知識庫的智能問答機器人,用戶只需輕點圖標,即可獲得個性化的題目推薦、解析及概念講解,極大提升了學習體驗與效率。

1.5 達人養成

達人養成功能指系統通過活動與激勵提升用戶編程技能和知識水平,增強參與度與忠誠度。包括:等級與徽章制度,依據刷題表現晉升等級,達到特定等級后,將獲得相應的徽章并在社區中展示;積分商城,用戶通過參與活動、比賽和知識分享獲取積分,積分可在商城中兌換學習資料、徽章等獎勵;學習和成長記錄,指學習時長、成績等數據和技能雷達圖、刷題日歷圖、成長曲線等可視化圖表;用戶對比功能,支持用戶與達人進行可視化圖表疊加對比。

1.6 其他功能

系統全面記錄用戶答題數據,便于教師深入分析學生學習狀況,如系統能夠計算用戶群體或特定題目的AC率(即成功解答數與總提交數的比率),從而直觀揭示學生在答題及學習過程中所遭遇的問題和挑戰。

2 系統架構與技術路線

系統采用B/S(瀏覽器/服務器)架構,系統主要由前端層、代理層、服務層和數據存儲層4個主要部分組成,系統架構圖如圖3所示。

2.1 前端層

前端層即用戶接入層,由微信小程序端、學生Web端門戶和后臺管理Web端組成。微信小程序端面向學生,依托Uni-app框架,支持學習任務查看和技術討論。學生Web端門戶基于Vue.js構建,提供任務查看、代碼提交和成績查看功能。后臺管理Web端同樣基于Vue.js,專注于教學管理,涵蓋任務發布、題目管理、用戶管理以及數據統計。此外,闖關式任務和知識圖譜的編輯與展示,分別借助jsPlumb和D3.js庫進行研發,提供直觀且富有交互性的可視化支持,助力用戶更清晰地洞察數據間的關聯與脈絡。

2.2 代理層

代理層即前端代理服務器,它負責處理進出系統的網絡請求和響應。使用Nginx實現了負載均衡、數據攔截、反向代理等功能。

2.3 服務層

服務層構建于微服務架構之上,實現了面向業務和基礎支撐微服務單元的劃分。這些服務單元擁有獨立部署與監控的能力,支持故障平穩退化容錯、橫向擴展,且技術棧靈活多變。業務微服務包括在線評測、題目管理、題目爬取、在線練習、在線比賽、積分商城、用戶管理以及論壇管理等。其中基礎微服務主要包括:

網絡爬蟲服務:基于Scrapy框架開發,針對每個第三方評測平臺開發特定的爬蟲機器人。支持業務層配置多個并發執行的爬蟲實例,實現高效執行題目爬取、提交第三方評測(即遠程評測服務,指將代碼提交到對應題目源網站的評測系統,由其進行黑盒評測,本端則不關心評測過程,只需要獲取到評測結果,最后更新數據庫中的相關評測記錄的方式)等任務。

本地評測服務:為了應對傳統評測機在并發處理與任務穩定性方面的不足,引入一種基于沙箱技術的分布式評測方案。首先,每個評測機作為獨立的Linux進程,全權處理用戶代碼文件的輸入、編譯、運行、時空越界判定、答案比較及評測結果輸出。其次,評測機通過Docker容器化部署在服務器上并利用ku?bernetes的CoreDN算法協調用戶任務以實現負載均衡和增強容錯性。第三,采用RabbitMQ中間件,在評測業務層服務與評測機之間構建了二層任務隊列,有效實現任務的削峰填谷。這一方案顯著提升了在線評測并發量,為業務提供穩定支持。此外,此評測機實現了3種結果判定方式,即基于結果的完全匹配方法、基于不確定性結果的特判方法以及基于得分點的判定方法,支持對完整編程題型、函數式編程題型、交互式編程題型的評測。

全文檢索服務:依托Elasticsearch開源搜索引擎,構建了涵蓋編程題目、論壇消息等內容的倒排索引。該服務支持模糊查詢、范圍查詢,并配備豐富的搜索結果展示功能,為用戶提供便捷的搜索體驗。同時,通過其內容標識生成和文本相似度計算技術,為題目爬取服務提供了高效的題目查重能力,提升了題庫的質量和準確性。

內容推薦服務:通過分析用戶的學習歷史、題目完成情況、搜索記錄及評論數據,精準捕捉用戶的學習偏好與能力水平。為每個用戶量身打造詳盡的用戶畫像,涵蓋興趣點、學習風格及技能雷達(即知識點掌握情況)。利用協同過濾算法,結合用戶畫像與題目特征(難度、知識點、歷史點擊率等),可智能推薦與用戶高度匹配的題目、話題和訓練任務。

此外,還集成了第三方在線評測平臺和短信平臺等第三方服務。

2.4 微服務框架層

微服務框架層即微服務架構工具層,基于SpringCloud系列工具包構建,為服務層微服務架構提供管理和協調支撐。其中,Zuul是開源網關服務器,Kafka 是消息總線,Eureka是服務注冊與發現組件,Ribbon 客戶端負載均衡器,Hystrix 是延遲和容錯庫,Pro?metheus和Micrometer用于收集和分析性能指標數據,Zipkin用于跟蹤微服務之間的調用關系。容器編排工具使用Kubernetes(即k8s)。

2.5 存儲層

存儲層包括內存數據庫、關系數據庫、文檔數據庫、索引數據庫、日志數據庫等。本系統架構支持不同業務采用異構數據庫。其中主要業務數據存儲于關系型數據庫MySql,共52個表、7個視圖。數據緩存采用了Redis內存數據庫,主要保存用戶登錄狀態to?ken以及計算耗時較長的每日排行榜數據等。題目索引數據、系統日志數據等存儲在Elasticsearch中。

3 總結

本文介紹了面向應用型本科生的在線編程訓練系統,該系統集成了多源題庫、趣味練習、在線競賽、用戶互動及達人養成等功能,設計了富有趣味性和競技性的訓練模式,有效提升了學生的編程參與度和練習效果。系統基于微服務架構,采用協同過濾推薦、可伸縮評測機及數據可視化等技術,提供了一個靈活、開放、免費的編程學習和教學環境。

參考文獻:

[1] 李菊,傅向華,馬軍超.基于代碼編程規范的在線評測系統研究與實現[J].計算機時代,2023(1):62-65.

[2] 徐燕萍.基于OJ的程序設計類課程實驗混合教學模式研究[J].軟件導刊,2022,21(2):231-234.

[3] 金天成,竇亮,肖春蕓,等.記憶與認知融合的個性化OJ習題推薦方法[J].計算機學報,2023,46(1):103-124.

[4] 嚴小雨,王明軍,卓堯,等.基于開源技術的高校OJ系統部署運維與應用[J].現代信息科技,2024,8(3):89-93,98.

[5] 賈曉強,劉軍.地方高校面向新工科的計算機系統能力培養實踐與思考[J].微型電腦應用,2021,37(4):7-10.

[6] 馮偉,劉亞雙,田樹華.地方應用型本科院校計算機類一流本科專業實踐教學模式研究[J].山西青年,2023(23):97-99.

[7] 鐘明輝,李志軍.應用型本科計算機類專業“一核兩翼三融合” 人才培養模式的實踐探索[J].大學教育,2024,13(3):115-118.

[8] 金天成,竇亮,張偉,等.基于深度強化學習與程序分析的OJ習題推薦模型[J].計算機科學,2023,50(8):58-67.

[9] 林世明,宋長軍,李芳,等.賽教融合背景下基于OJ平臺的高級程序設計課程教學改革:以昌吉學院信息工程學院為例[J].創新創業理論研究與實踐,2024,7(10):42-46.

[10] 王金水,薛醒思,翁偉.基于句法分析的代碼摘要技術[J].計算機應用,2015,35(7):1999-2003.

【通聯編輯:李雅琪】

主站蜘蛛池模板: 在线欧美国产| 久久婷婷综合色一区二区| 538国产视频| 亚洲精品无码久久毛片波多野吉| 日韩免费毛片| 一个色综合久久| 一区二区欧美日韩高清免费| 亚洲免费福利视频| 中文字幕久久精品波多野结| 特黄日韩免费一区二区三区| 日韩精品一区二区三区免费在线观看| 大香网伊人久久综合网2020| 欧美日韩国产精品va| 欧美日韩国产综合视频在线观看| 大学生久久香蕉国产线观看| 精品亚洲国产成人AV| 99视频在线精品免费观看6| 88av在线看| 国产精品手机在线播放| 色婷婷在线影院| 免费人成视频在线观看网站| 国产一级一级毛片永久| 激情综合婷婷丁香五月尤物| 国产精品一区二区久久精品无码| 中文字幕在线不卡视频| 亚洲精品自拍区在线观看| 色综合天天综合| 亚洲国产精品久久久久秋霞影院| 亚洲欧美自拍一区| 久久国产毛片| 国产福利免费在线观看| 日本欧美成人免费| 日韩精品欧美国产在线| 99视频在线观看免费| 精品国产美女福到在线不卡f| 伊人久久大香线蕉影院| 青青青国产精品国产精品美女| 伊人激情综合网| 国产在线视频欧美亚综合| 毛片免费高清免费| 欧美精品v日韩精品v国产精品| 97在线碰| 欧美日韩亚洲综合在线观看| 亚洲AV无码乱码在线观看代蜜桃 | 伊人91视频| 精品国产91爱| 欧美在线黄| 呦视频在线一区二区三区| 亚洲欧美激情小说另类| 香蕉eeww99国产精选播放| 91青青草视频| 亚洲香蕉在线| 久久久久国产精品免费免费不卡| 大陆精大陆国产国语精品1024| 四虎精品黑人视频| 亚洲综合精品第一页| 欧美精品色视频| 青青草久久伊人| 午夜性爽视频男人的天堂| 国产福利影院在线观看| 亚洲一区二区三区中文字幕5566| 精品国产免费观看| 人妻丰满熟妇啪啪| 亚洲成aⅴ人在线观看| 久久伊人操| yjizz国产在线视频网| 国产激情在线视频| 亚洲欧美日韩视频一区| 亚洲AⅤ无码日韩AV无码网站| 中文成人在线视频| 中文字幕2区| 乱人伦99久久| 扒开粉嫩的小缝隙喷白浆视频| 国产jizzjizz视频| 午夜激情婷婷| 国产人成在线视频| 丁香五月激情图片| 国产精品久久国产精麻豆99网站| 亚洲视频四区| 亚洲精品色AV无码看| 国产性生大片免费观看性欧美| 青青操视频在线|