<ol id="ebnk9"></ol>
    1. 以ACM/ICPC競賽促進計算機專業實踐教學研究

      發布時間:2025-06-16 03:00:22   來源:作文大全    點擊:   
      字號:

      摘 要: ACM/ICPC程序設計競賽是世界上最具影響力的計算機類學科競賽之一,能夠最直接體現學生對專業知識的掌握以及實踐能力。ACM/ICPC集訓在選手日常訓練方面都有一套行之有效的機制,對學生的學習興趣、分析解決問題能力、創新能力等方面的培養都起著推動作用,ACM競賽是對學生實踐能力最直接的考核。因此整合在線判題系統建設實踐平臺,將ACM/ICPC模式引入計算機專業實踐教學,是提高計算機專業學生實踐能力的途徑之一。

      關鍵詞: ACM/ICPC; 程序設計競賽; 實踐教學; 在線測評

      中圖分類號:G420 文獻標志碼:A 文章編號:1006-8228(2018)07-94-03

      Abstract: The ACM/ICPC programming contest is one of the most influential discipline competitions of computer science in the world, which can most directly reflect the students" mastery of professional knowledge and the ability to practice. ACM/ICPC training has an effective mechanism for the daily training of player, which plays an important role in the cultivation of students" interest in learning, their ability to analyze and solve problems, and the ability of innovation. Therefore, it is one of the ways to improve the practical ability of computer majored student to integrate the online judgment system, build the practice platform and introduce the ACM/ICPC model into the practice teaching of computer specialty.

      Key words: ACM/ICPC; programming contest; practical teaching; online judge

      0 引言

      國際大學生程序設計競賽ACM/ICPC(Association for Computing Machinery/International Collegiate Programming Contest)是世界上最大、歷史最長、影響最廣泛的計算機類學科競賽[1]。程序設計競賽對參賽學生的思維能力、腦力體力、協同編程能力等方面有極高要求,是各個國家計算機高等教育成果最直接的體現。程序設計競賽從能夠幫助學生全面掌握專業領域的基礎知識、促進學生提高學習積極性、全面激發學生潛能、培養學生的團隊寫作能力和加強學生對解決實際問題等創新能力的培養[2-3]。

      1 ACM/ICPC競賽訓練機制

      科學的訓練機制能更好地提升競賽成績,高效的程序設計訓練方法可以引導和增強學生的程序設計能力,比賽過程中好的組隊策略、良好的團隊合作和答題抉擇等競賽戰術,也是取得競賽成績的必要因素。

      程序設計競賽命題涉及計算機科學、軟件領域、信息學、數學和英語能力,通過以賽代練的方式,加強學生的思維能力。但是,由于程序設計競賽題目的特殊性,每次比賽都是以實際問題或科研項目中關鍵問題為原型的,考核目標點均不相同的9-12道題目,且以往期題目不重復[4-5]。程序設計競賽題目以現實問題為出發點,其解題方法并不唯一且并無現成算法可以借用,只有全面培養學生的創造能力,才是最好的辦法,同時,高強度的訓練,長時間壓力的比賽,都對學生的智力和毅力等品質提出了更高的要求。由于競賽題目的難易程度差別懸殊,大量做題無法客觀的評價一個學生真實的計算機編程水平。創新平臺中新引入的題目考慮增加難度系數,比賽結束進入訓練題庫,學生日常訓練成績,將以加權分值的方式客觀反映學生的訓練刻苦程度。

      ACM集訓隊日常訓練主從知識范疇、訓練方法和競賽策略等幾個方面展開。每年秋季學期開設新生訓練營,培訓主要圍繞基礎數據結構、概率論、組合數學、圖論、計算幾何等知識點展開。由于ICPC只作為培養學生編程興趣的一種手段,在有限時間里要全面學習和掌握這些知識點是非常困難的,因此,組隊應考慮隊員之間的能力及擅長相互補充。例如,隊員1側重學習計算幾何,隊員2和隊員3偏重學習數學知識和數據結構,這使得組隊在短時間內獲得更好的比賽成績,從長遠來看,要想成為一名優秀的參賽隊員,須具備“一專多能”的素質,“一?!笔蔷ㄖ辽僖环N類型的不同難度的題目,“多能”是指能解決其他類型的一般題目。這樣組成的參賽隊伍往往會有1+1+1>3的比賽效果。ACM集訓隊通過個人實時排名、競賽成績、解題數量統計等來量化隊員的成績??梢园l現,通過團隊之間的協作以及適當的競爭可以增加學生的學習熱情,激發其學習潛力。

      2 基于在線判題系統的實踐平臺建設

      ACM/ICPC程序設計競賽一般專門的訓練平臺在線判題系統OnlineJudge,簡稱OJ,將其引入到程序設計能力的教學及訓練中,建立了在線實踐平臺,將教學和實踐緊密結合,鼓勵學生在網絡平臺中開展練習、討論、測試等自主學習活動,同時競賽、實踐教學和學生上機考試的要求。

      本系統平臺的目標是集成在線程序判定系統、實踐教學在線練習系統和上機考試系統為一體的Web應用系統。

      在線程序判定系統,客戶端電腦先調試自己的解題程序,然后將代碼提交給系統,隨后系統將產生一條數據庫記錄保存本次提交,同時保存用戶提交的代碼,接著調用用戶提交時選擇的編譯器對用戶的代碼進行編譯,在啟動編譯好的程序,并將測試數據輸入該程序,通過輸入輸出流的重定向,獲取用戶程序的輸出結果,與標準答案比較,最后將比較結果寫入數據庫同時反饋給用戶本次判定的結果。

      實踐教學在線練習系統和上機考試系統以在線程序判定系統為基礎,根據不同的應用場景,來設計不同的web應用管理系統。

      根據現有程序設計競賽和學生上機考試的需求,系統平臺包括三類用戶:管理員、教師和學生。

      ⑴ 管理員:進行系統日常的維護,能保證系統正常無異常的運行。

      ⑵ 教師/教練:進行系統數據維護,如添加試題、新增考試、手動判斷題目等等。

      ⑶ 學生/選手:未注冊之前,可以查看題目,查看題目提交的狀態,但不能提交代碼。在注冊并登之后,學生就可以提交代碼,查看自己提交代碼的情況,以及歷史情況,個人的成績等等。

      平臺的主要功能模塊如下:題庫管理、競賽管理、考試管理、訓練管理、用戶管理和系統管理。它負責啟動運行編譯好的用戶程序,需要完成的工作流包括:啟動程序,設置安全,重定向輸入/輸出流,寫入測試數據,獲取輸出答案,比較答案,以文件形式返回。

      實踐教學在線練習系統和上機考試系統采用JavaWeb+BootSrtap開源前端框架進行項目開發,并同時部署在校內校外兩臺服務器上,校內服務器主要用于在線上機考試,為了防止連接互聯網進行作弊,而校外服務器主要用于學生的日常聯系,可以不受訪問地點約束。

      3 利用實踐平臺促進實踐教學途徑

      按照ACM程序設計競賽的集訓隊選手訓練方式,以點帶面地提升計算機專業的實踐教學質量。將ACM/ICPC競賽引入到程序設計能力的教學及訓練中,將教學和實踐緊密結合,并鼓勵學生在網絡平臺中開展練習、討論、測試等自主學習活動。由于ACM/ICPC競賽題目絕大多數來自于計算機實踐的抽象,要想很好地解決這些問題,要求學生必須掌握相關知識,擁有數量的編程調試技術,并且具備一定的創新實踐能力。

      對于計算機類專業學生而言,最基本實踐能力就是具備良好的編程能力。由于ACM/ICPC競賽題目絕大多數來自于計算機實踐的抽象,引入到程序設計能力的教學及實驗中,與“程序設計基礎”、“數據結構”等課程的理論授課相合,要想很好地解決這些問題,需要根據不同的學生水平,題庫實驗項目有一定的區分度,分別面向C/C++的授課學生,程序設計愛好者,ACM集訓隊員。題庫中涵蓋數學、計算方法、數據結構、數值分析等方面的專題題目。以分值標定題目難度,題庫實驗項目來源于實際的項目或標準應用,且有一定的創新性,根據理論知識的內容進行改造和提煉,方便學生通過創新實踐平臺中開展練習、討論、測試等自主學習活動。

      自從2015年開始,為了進一步提高學生在“程序設計基礎C”課程中的學習效果及實際動手能力,在考核的形式和內容上做了改進。計算機學院面向所有專業設置了程序設計基礎通關考試。實施在線實踐與判題打分,學生在線做題,系統實時判題,這就要求學生能夠靈活應用所學知識解決實際問題。2015-2017年,共有1458名學生參加了通關考試,其中1344名學生通過了測試。每學年平均通過率約為92.34%。2017年開始,在線判題系統的實踐平臺成為“程序設計基礎C”的期中考試平臺,學生在該平臺中考試的成績,作為大類招生改革實施后考核學生課程學習情況以及專業潛能測試的一個主要依據,用于電氣通訊與計算機大類2017級學生的專業分流。

      自2016年起,教育部高等學校計算機類教學專業指導委員會、教育部高等學校軟件工程類教學專業指導委員會等主辦了中國高校計算機大賽-團體程序設計天梯賽,旨在檢驗并提高高校程序設計實踐教學的總體水平。比賽由北京大學、浙江大學等來自29個省級行政區的200余所高校參加。我校在2016年、2017年連續兩年獲得了全國高校一等獎基礎上,2018年獲得全國高校特等獎,反映出我校ACM/ICPC程序設計競賽對計算機專業整體實踐教學的促進作用。

      4 結束語

      綜上所述,將ACM/ICPC集訓隊員的培養機制引入到計算機專業的實踐教學過程中,可以彌補現有計算機教學對學生編程能力、調試能力等動手缺少有效評估的不足,通過整合在線判題系統建立教學實踐平臺,將教學、實踐、訓練三者緊密結合,并鼓勵學生在網絡平臺中開展練習、討論、調試、測試等主要計算機實踐教學環節,對提高計算機專業實踐教學水平,繼而提升計算機專業整體教育質量有著重要的參考價值。

      參考文獻(References):

      [1] 鄺祝芳,余紹軍,楊衛民.ACM/ICPC對培養信息學科創新型人才的作用[J].計算機教育,2013.3:8-10

      [2] 劉海霞,冉宇瑤.基于ACM競賽模式的程序設計類課程實踐教學改革的探討[J].工業控制計算機,2016.29(3):39-40

      [3] 李環.基于ACM競賽的程序設計類課程教學改革研究[J].計算機教育,2016.255(3):115-118

      [4] 王春平,王衛紅,韓姍姍等.ACM-ICPC訓練方法與競賽策略[J].計算機教育,2014.6:91-94

      [5] 吳海波,夏新軍.基于ACM/ICPC的計算機實踐教學研究[J].當代教育理論與實踐,2014.5:125-126

      国产另类无码专区|日本教师强伦姧在线观|看纯日姘一级毛片|91久久夜色精品国产按摩|337p日本欧洲亚洲大胆精

      <ol id="ebnk9"></ol>