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

?

基于ACM-ICPC模式的算法分析與設計課程的建設

2018-04-14 17:59張文達
經(jīng)濟技術協(xié)作信息 2018年36期
關鍵詞:程序設計競賽題目

◎張文達

針對算法分析與設計課程的教學實際,文章分析了該課程教學模式的局限性和傳統(tǒng)的實踐教學中存在的問題,提出將ACM-ICPC競賽模式引入該課程教學的觀點,開發(fā)了一個基于ACM-ICPC模式的程序測評系統(tǒng),并應用在算法分析與設計課程的實踐教學中,取得了良好的教學效果。

一、引言

算法分析與設計是面向設計的計算機專業(yè)核心課程,主要通過對經(jīng)典算法的學習和研究,使學生掌握算法的設計策略和算法復雜度的分析方法,培養(yǎng)學生分析和解決實際問題的能力。該課程教學內(nèi)容繁多,涉及的知識面很廣,主要內(nèi)容包括算法分析方法、遞歸算法、分治算法、貪心算法、動態(tài)規(guī)劃、回溯算法、分支限界、近似算法、概率算法等經(jīng)典的算法,覆蓋了多項式、數(shù)論、矩陣、集合、圖論、幾何、模式匹配等數(shù)值和非數(shù)值計算問題。

目前,各高校該課程分配的課時普遍較少,教學方法也都是以講解為主,即使設置了實驗課,在實踐環(huán)節(jié)通常也只是一味地對算法進行驗證,很少考慮到算法的運行效率分析、測試數(shù)據(jù)的規(guī)模以及實際的應用場景。而且,在傳統(tǒng)實踐教學中,學生抄襲代碼的情況嚴重,不能有效提高學生的實踐能力,無法體現(xiàn)實踐教學的真正作用。在這種教學模式下,學生缺乏對實際問題進行抽象和分析的能力,思維創(chuàng)新和實踐能力難以得到有效提高。本文結合我校實際教學情況,將ACM-ICPC競賽模式與算法分析與設計課程的建設相結合,達到了良好的教學效果。

二、課程現(xiàn)狀

該課程的開設是面向計算機科學與技術專業(yè)大三的學生,學生在學習該課程之前,已經(jīng)學習了C/C++程序設計、數(shù)據(jù)結構、Java程序設計、高等數(shù)學和離散數(shù)學等課程,但是由于學生欠缺良好的計算思維,邏輯分析能力相對不足,編程實踐能力仍然比較弱,學生在學習該課程時倍感吃力。目前我校在算法分析與設計課程信息化建設方面有許多不足,主要體現(xiàn)在以下幾點:

1.課程之間的聯(lián)系不夠緊密。算法分析與設計課程與其他課程的關系是很密切的,如數(shù)據(jù)結構,它們之間相互作用,從而提高計算機專業(yè)學生的實踐能力,為學院培養(yǎng)高素質(zhì)的應用型人才。

2.教學資源不足。當前課程并沒有信息化系統(tǒng)的支持。學生只能通過網(wǎng)絡搜索所需的資源,獲取教師的P跗也只能通過教師,教學資源沒有實現(xiàn)整合和共享。

3.編程競賽平臺不多。在參加或舉辦程序設計類競賽方面,學生只參與了國內(nèi)的"藍橋杯"這一個程序設計類競賽,學院內(nèi)部并沒有開展此類競賽活動。

三、ACM-lCPC模式下的課程建設

1.ACM-ICPC在課程中的作用。

ACM國際大學生程序設計競賽(ACM-ICPC)是由國計算機協(xié)會(ACM)主辦的,是一項旨在展示大學生創(chuàng)新能力、團隊精神和在壓力下編寫程序、分析和解決問題能力的年度競賽。經(jīng)過40多年的發(fā)展,ACM-ICPC已經(jīng)發(fā)展成為最具影響力的大學生計算機競賽。競賽時間為5個小時,重點考察選手的算法和程序設計能力。選手通過網(wǎng)絡提交程序,評委負責將結果(正確或出錯的類型)通過網(wǎng)絡盡快返回給選手。

將ACM-ICPC競賽模式引入算法分析與設計的教學中,可以激發(fā)學生的主動學習積極性,鼓勵學生勤思考、多實踐。相對于傳統(tǒng)的實踐教學具有以下幾方面的優(yōu)勢:(1)在網(wǎng)上進行實踐教學,沒有時間和空間的局限性。教師可以在測評系統(tǒng)中對同一個實驗項目布置多個難度各異的題目,學生可以根據(jù)自己的掌握情況。從易到難選擇合適的時間完成訓練題目。(2)對創(chuàng)造校園的學術交流氛圍有良好的促進作用。學生在課余時間通過在網(wǎng)上提交自己編寫的程序源代碼,自主進行算法和程序的交流,有利于培養(yǎng)學生的學術修養(yǎng)。實現(xiàn)學生與教師、學生與學生之間的交流和互動。(3)減輕教師實踐教學時的指導負擔。傳統(tǒng)的實踐教學在機房進行,教師需要在整個機房進行巡視,為有疑問的同學進行解答。而ACM-ICPC競賽模式的在線測評系統(tǒng)可以對學生提交的作業(yè)進行評測,大大減輕了教師的負擔。

2.測評系統(tǒng)的設計與開發(fā)。

該系統(tǒng)基于Java EE,是一個程序在線評判、程序設計競賽和交流的平臺??刹粩鄶U展題庫供學生進行程序設計練習,系統(tǒng)自動對提交的程序源代碼進行編譯、運行并評判程序的正確性。系統(tǒng)可供課程日常訓練和網(wǎng)上實時競賽使用,也具備站內(nèi)交流和站內(nèi)全文檢索功能。系統(tǒng)有兩個版本的評判模塊,一個基于純Java,另一個基于C++,兩者均可在Windows平臺下運行。學生在系統(tǒng)提交程序后,系統(tǒng)先將程序保存至數(shù)據(jù)庫,再寫入評判隊列,由系統(tǒng)評判內(nèi)核進行編譯、運行并返回結果。返回的結果類型有AC、WA、Rr砸、TLE、PE、MLE、CE。每個題目可能有多個測試數(shù)據(jù),內(nèi)核在讀取主系統(tǒng)傳遞給它的參數(shù)后,編譯程序,生成可執(zhí)行文件,之后對于每個測試數(shù)據(jù)運行一次"驗證測試數(shù)據(jù)"的操作。

系統(tǒng)用戶分為四種:普通用戶、高級用戶、論壇版主及系統(tǒng)管理員。任何學生都可注冊成為普通用戶。普通用戶可以做練習題,提交程序并得到系統(tǒng)的評判和結果反饋;可以根據(jù)程序提交情況參與用戶排名:擁有并可使用自己的站內(nèi)信箱;可以查看、保存和管理自己提交的源代碼;可以在論壇發(fā)帖,參與問題討論;可以參加程序設計競賽,并查看比賽結果和統(tǒng)計數(shù)據(jù)。任何解答題目超過20道的普通用戶。可自動升級為高級用戶。高級用戶擁有普通用戶的所有權限。還可以上傳題目和測試數(shù)據(jù),并可對自己上傳的題目進行管理、修改等。高級用戶上傳的題目,經(jīng)管理員確認后,便可加入系統(tǒng)的正式題庫。系統(tǒng)在題目信息中記錄上傳題目者的相關信息。論壇版主為系統(tǒng)管理員授予,擁有普通用戶的所有權限,同時對相應的論壇板塊擁有管理權。系統(tǒng)管理員管理系統(tǒng)的日常運行,擁有所有的管理權限,需要對題目和測試數(shù)據(jù)進行篩選,檢查系統(tǒng)運行情況,組織程序設計競賽。

3.課程設置。結合我校實際情況,我們在算法分析與設計課程的實踐教學內(nèi)容上設計了遞歸算法、分治算法、動態(tài)規(guī)劃算法、貪心算法、回溯算法、分支界限算法共6個經(jīng)典算法的實驗項目。由于實踐教學課時有限,傳統(tǒng)的教學方式每個實驗項目只能設計2-3道題目。引入ACM-ICPC模式之后,學生可以利用課余時間通過網(wǎng)絡完成程序設計,每個實驗項目題量增加到6-8個,題目難度各異,學生可以根據(jù)自己的知識掌握程度和能力選擇合適的時間完成。較容易的題目可以先完成,具有一定的綜合性、難度較大的題目,可以在有相當?shù)挠柧毩恐笸瓿?。這種循序漸進的訓練方式,更有利于學生對算法原理的理解和掌握,也更有利于形成由淺入深的思維模式,有效提高學生的分析問題、解決問題的能力。

四、課程建設實踐成果

實施ACM-ICPC競賽模式的程序在線測評系統(tǒng)以后,學生的學習積極性得到了較大的提高。學生對經(jīng)典算法的掌握程度和實踐能力也大大提高了。學生在各種全國性考試和比賽中取得了較好的成績。學生的自主學習能力有所提高,教師在實驗課上的空閑率由原來的0.4%增長33.3%,學生對教師的依賴程度大大降低。

結語:基于ACM-ICPC模式的算法分析與設計課程將理論學習與實際操作相結合,注重培養(yǎng)和提高學生分析和解決實際問題的能力,以公平、公正、公開的競爭形式帶動學生的自主學習,調(diào)動學生交流和研究的積極性,為課程的開展提供了良好的氛圍。在后續(xù)的研究和開發(fā)中,我們將把基于ACM-ICPC模式的程序測評系統(tǒng)擴展到全系范圍內(nèi)的更多的程序設計類課程。

猜你喜歡
程序設計競賽題目
2020絲綢之路數(shù)學競賽
唐朝“高考”的詩歌題目
基于Visual Studio Code的C語言程序設計實踐教學探索
關于題目的要求
本期練習類題目參考答案及提示
從細節(jié)入手,談PLC程序設計技巧
我看競賽
創(chuàng)新思維競賽(3)
高職高專院校C語言程序設計教學改革探索
追根求源
乌兰县| 南溪县| 昌江| 遂川县| 游戏| 江达县| 安乡县| 濮阳县| 明星| 永顺县| 元氏县| 上犹县| 罗甸县| 兴城市| 德化县| 尼木县| 志丹县| 包头市| 临沭县| 万山特区| 曲水县| 同仁县| 新民市| 明水县| 福建省| 额济纳旗| 四平市| 德令哈市| 九龙城区| 大港区| 故城县| 武山县| 临泽县| 柘荣县| 调兵山市| 九寨沟县| 涪陵区| 拜泉县| 宜兰市| 浮山县| 平顶山市|