王?!±钊A 張宇昕 丁巖 袁芳菲 趙建平
摘要:該文以實際教學與學生程序設計競賽平臺建設為導向,深入挖掘依托平臺建設的教學活動結合的創(chuàng)新思路,結合大學生程序設計、算法設計等相關課程的特點及問題,對“基于大學生程序設計競賽平臺的教學模式”展開深入的研究與實踐,提出基于競賽平臺的課程模式設計(目標、內(nèi)容、結構、考核)方案、優(yōu)化相關的課程考核評價方案、變革相關的實踐教學實施模式,以提高學生的編程水平并培養(yǎng)學生的計算思維。
關鍵詞:大學生程序設計競賽;計算思維;教學實踐
中圖分類號:G642? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)01-0190-03
大學生程序設計競賽被譽為程序設計屆的奧林匹克之稱,得到了社會、高校和企業(yè)的廣泛認可,目前相關賽事主要有ICPC國際大學生程序設計競賽和中國大學生程序設競賽,參賽學生通過在線判題系統(tǒng)(OJ)進行賽事相關題目的訓練,在訓練過程中發(fā)現(xiàn)OJ題庫水平參差不齊,分類不夠明確,無法根據(jù)同學自身特點進行針對性訓練,且功能單一,無法進行訓練外學習擴展,且大部分平臺僅為學生提供題庫及在線訓練,競賽題目從廣度和深度上都對實踐和理論教學有著指導意義,大部分平臺未將課程體系建設及相關教學與平臺進行融合[1]。
1 程序設計類課程問題分析
程序設計類課程在計算機信息類專業(yè)課程體系中有著十分重要的地位,經(jīng)過多年的實踐教學觀察,程序設計類課程大度注重語法和簡單程序的實現(xiàn),根據(jù)調(diào)查大部分高校開課學期在1-4學期,大多在忽視算法設計、邏輯推理、數(shù)學建模等深層次理論知識[2],另一方面由于入學學生的教育背景不同,導致基礎參差不齊,部分學生基礎較差,出現(xiàn)提前放棄學習的現(xiàn)象,同時課堂實踐分離,以教師為中心的教學方式比較普遍,學生動手和獨立思考的機會少,學生對程序設計的本質(zhì)和實踐能力沒有得到提高,考核方式仍然由傳統(tǒng)的考勤平時成績和期末考試構成,忽略學生反饋及學習過程,并沒有提升學生的自我學習能力,導致課程結束就是學習的結束,所在課程學期過后沒有長期堅持,臨近畢業(yè)學生已經(jīng)沒有了基本的編程能力,教學效果一般。
2 程序設計類課程教學改革
大學生程序設計競賽以程序設計、數(shù)據(jù)結構與算法、算法分析與設計等課程為基礎,同時競賽題目在廣度和深度上要超出課堂教學內(nèi)容,在競賽過程中學生以三人組隊,各司其責在5小時內(nèi)共同完成程序的編寫和調(diào)試,能夠鍛煉學生的邏輯分析、臨場應變及團隊協(xié)作能力,程序設計類課程在講授基本語法和算法的同時應更加注重實踐,實踐證明編程主要在于“編字”,在培養(yǎng)方案中適當增加實驗實踐環(huán)節(jié)學時,基礎知識講授進度加快,在實驗和實踐中掌握基礎知識,無論在競賽和將來的工作中,都是團隊共同解決問題,將實驗和實踐環(huán)節(jié)分為基礎知識和協(xié)作應用兩部分,分模塊鍛煉學生獨立思考的基礎能力和面對難題及大型項目時的團隊協(xié)作能力。
在實際教學中發(fā)現(xiàn),學生學習過程中對計算思維了理解和掌握程度不同,競賽中成績突出的同學只占少數(shù),由于參加大學生程序設計競賽需要一定的門檻和興趣,且需要長年訓練才有可能獲獎,大部分同學無法堅持,由于門檻過高而放棄訓練,通過問卷調(diào)查對學生的學習基本資料進行調(diào)查,針對不同的學生層次制定符合不同層次學生的多套方案,方案制定過程由不同層次的同學、教師及企業(yè)共同參與制定,構建以學生為中心的課堂環(huán)境,根據(jù)學習情況劃分好隊員,隊員應各盡其職,達到互相學習、共同進步再到自我學習的目的,在理論學習的同時,重點加強學生的算法思維培養(yǎng)與應用能力,通過加入大數(shù)據(jù)與人工智能的相關實習實訓內(nèi)容,引入創(chuàng)新實驗題目,將課程的相關實踐環(huán)節(jié)以大學生程序競賽的形式進行不斷的練習與考核,及時跟蹤學生學習進度與問題,使大部分學生能夠真正意義上去寫程序,體會計算思維、算法的奧妙,能夠寫出好的、優(yōu)秀的程序,將理論知識與實踐知識相結合,解決實際問題,同時教師根據(jù)學生學習反饋進行課程的持續(xù)改進,制定以學生為中心的課程形式和內(nèi)容。
3 大學生程序設計競賽平臺建設與實現(xiàn)
技術上,傳統(tǒng)大學生程序員設計競賽平臺采用B/S(Browser/Serve)架構的三層體系結構,后端SQL數(shù)據(jù)庫,Redis、異步隊列、判題服務器、測試用例、同步模塊組成,為了將平臺擴展到實際程序設計類課程中去,學校程序設計競賽平臺增加了若干模塊,并采用Docker進行部署,有效地降低了部署難度[3]。
程序設計競賽選手根據(jù)競賽題目質(zhì)量選擇合適的競賽訓練平臺進行訓練,國際大學學生程序設計競賽平臺是以題目判別程序為核心,能夠為多語言環(huán)境提供在線程序輸出及運行時間效率評測,系統(tǒng)利用海量的算法設計題目和用戶提交數(shù)據(jù),可以分析題目難度,為開拓學生使用環(huán)境增加了論壇溝通區(qū)域,平臺首先服務于程序設計競賽,可以將競賽與實習實踐相結合,由于競賽環(huán)境本身無人為因素參與,能夠客觀地反映出學生的算法和程序設計水平,輔助教師進行教學的持續(xù)改進。程序設計、數(shù)據(jù)結構與算法等相關課程是對算法思維及動手能力要求很高的課程,要求學生在掌握各種基本語法、算法、數(shù)據(jù)結構的基礎上,必須進行反復練習,以達到將計算思維融入算法設計、數(shù)據(jù)結構設計、程序設計中。
平臺具有在線判題、學習交流、自建競賽等模塊,平臺中大量的競賽題目為學生練習提供了良好的學習環(huán)境,傳統(tǒng)的實踐教學以學生上機、教師查看學生代碼、學生書寫實驗報告為主,由于工作量大、學生認為實驗報告過于形式等問題效果不理想,將相關課程實踐環(huán)節(jié)全部基于競賽平臺,學生通過平臺進行練習,利用論壇、群等模塊交流學習心得,教師通過競賽模塊對實踐環(huán)節(jié)進行考核,同時平臺可以對學生的訓練情況進行跟蹤,形成數(shù)據(jù)分析報告,方便教師督促學生作業(yè)與訓練任務的完成。大學程序設計競賽平臺系統(tǒng)體系結構如圖1所示。
平臺同時對大學生程序設計競賽隊員的成長進行跟蹤,設置了隊員之家,與競賽隊隊員保持聯(lián)系實時更新隊員的就業(yè)、繼續(xù)學習等信息,通過隊員之家獲取真正研究、企業(yè)需求,不斷進行信息反饋,形成了良好的院校、優(yōu)秀企業(yè)溝通橋梁,為程序設計人才培養(yǎng)提供改進的方向。
4 基于競賽平臺的考核方法改革
傳統(tǒng)的考試方式已經(jīng)進行了轉變,大部分程序設計及算法類課程已經(jīng)以上機考試為主,雖為上機考試,僅是將紙質(zhì)試卷進行了無紙化,競賽平臺采用實時程序判定,判定反饋有以下7種:
1)Accepted(AC).提交成功,通過判別程序
2)Wrong Answer(WA).輸出樣例錯誤
3)Runtime Error(RE).程序運行出錯,意外終止等
4)Time Limit Exceeded(TLE).程序超出運行時間
5)Presentation Error(PE).程序輸出格式錯誤
6)Memory Limit Exceeded(MLE).程序運行超出規(guī)定內(nèi)存范圍
7)Compile Error(CE).程序編譯錯誤
能夠做到反饋及時成績公正,同時傳統(tǒng)考試為一次性直接判定成績,而高校教學重點在于提升學生的計算思維及分析和解決問題的能力,教會學生如何學習才是根本,將學生的學習過程及結果進行結合,并將考核轉化為學生動力的一部分才是考核的真正意義,所以將基于競賽平臺的相關課程考核進行改革,最終考核結果由課堂表現(xiàn)、在線判題結果、標程分析報告構成,傳統(tǒng)教學中往往不考慮學生課堂參與度,教師講授考勤預留作業(yè),課堂表現(xiàn)分數(shù)由此構成,學生只在乎最后考試并保證出勤和作業(yè)的提交[4],本次課程改革將以學生為中心,將課堂活躍度,學生講題作為考核過程,并提高課堂表現(xiàn)比例將成績占比由20%提高至30%,在在線判題結果是對課堂效果的直接呈現(xiàn),因此將在線結果設置為成績占比40%,標程分析報告30%,考核不是目的,總結考核過程,將所有題目和課堂內(nèi)容全部掌握才是課堂的真正意義所在,考核結束后學生需對課堂內(nèi)容進行回顧總結,并對考核內(nèi)容進行分析并編寫解題報告,使學生能夠清楚總結分析問題的重要性,真正學會課程內(nèi)容,提升實踐能力[5]。
5 教學改革實施
學校依據(jù)國家、地方經(jīng)濟社會發(fā)展和國防現(xiàn)代化建設需要,為實現(xiàn)以競賽平臺為基礎,持續(xù)進行狀態(tài)監(jiān)測和質(zhì)量改進、及時發(fā)現(xiàn)問題、提高教學質(zhì)量,構建了科學、完善的教學質(zhì)量控制體系和有效的運行機制。提出了教學改革方案的實施方案如圖2所示。
6 結束語
經(jīng)過大學生程序設計競賽平臺的建設及相關教學活動的改革與實踐,有效地激發(fā)了更多學生學習計算機的熱情,我校大學生程序設計競賽的成績得到了顯著提高,從對我校畢業(yè)生企業(yè)回訪及問卷調(diào)查結果顯示,我校畢業(yè)生踏實肯干,具有團隊協(xié)作精神,編程能力較為突出,說明教學改革有效地提升了學生全方位分析和解決工程問題的能力,在之后的教學工作中將對其他課程進行相關教學實踐。
參考文獻:
[1] 林金珠,倪天偉.基于ACM-ICPC競賽的C語言課程教學實踐[J].安慶師范大學學報(自然科學版),2017,23(1):102-104,119.
[2] 楊玉軍,楊夷梅.計算機程序設計競賽思想融入“數(shù)據(jù)結構”課程教學的探索與實踐[J].科教文匯(上旬刊),2016(2):50-52.
[3] 李力東.計算機程序設計競賽輔導系統(tǒng)[J].中外企業(yè)家,2018(13):182.
[4] 陳軍.“計算機程序設計”課程教學實踐與探討[J].中國電力教育,2012(25):67-68.
[5] 彭立宏,肖曉強,周麗濤.“計算機程序設計”課程教學研究與實踐[J].計算機工程與科學,2014,36(S1):39-42.
【通聯(lián)編輯:謝媛媛】