韓建民,王麗俠,葉榮華
(1.浙江師范大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)系,浙江 金華 321004;2.浙江師范大學(xué) 行知學(xué)院,浙江 金華 321004)
“教學(xué)—訓(xùn)練—競(jìng)賽一體化”程序設(shè)計(jì)能力培養(yǎng)體系的構(gòu)建
韓建民1,王麗俠2,葉榮華1
(1.浙江師范大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)系,浙江 金華 321004;2.浙江師范大學(xué) 行知學(xué)院,浙江 金華 321004)
分析當(dāng)前大學(xué)生程序設(shè)計(jì)能力培養(yǎng)存在的問(wèn)題,提出“教學(xué)—訓(xùn)練—競(jìng)賽一體化”程序設(shè)計(jì)能力培養(yǎng)體系,闡述該培養(yǎng)體系的總體框架及模塊間的關(guān)系,并說(shuō)明該培養(yǎng)方案的優(yōu)勢(shì)。
程序設(shè)計(jì)能力;教學(xué)—訓(xùn)練—競(jìng)賽一體化;在線自動(dòng)評(píng)測(cè)
程序設(shè)計(jì)能力就是利用計(jì)算機(jī)解決實(shí)際問(wèn)題的能力,是計(jì)算機(jī)相關(guān)專業(yè)學(xué)生需要具備的最為重要的能力。程序設(shè)計(jì)能力的培養(yǎng)也是高校實(shí)現(xiàn)計(jì)算機(jī)專業(yè)培養(yǎng)目標(biāo)的重要組成部分,因此,計(jì)算機(jī)專業(yè)的教師在大學(xué)生程序設(shè)計(jì)能力培養(yǎng)方面做了大量的研究工作。文獻(xiàn)[1—3]探索將ACM競(jìng)賽模式引入程序設(shè)計(jì)能力培養(yǎng)的實(shí)踐教學(xué)中,以提升學(xué)生的實(shí)踐能力和學(xué)習(xí)興趣,取得了較好的成效;文獻(xiàn)[4]將大學(xué)生程序設(shè)計(jì)能力的培養(yǎng)分為4個(gè)層次,提出了大學(xué)生程序設(shè)計(jì)能力的層次化培養(yǎng)模式;文獻(xiàn)[5]提出了大學(xué)生程序設(shè)計(jì)能力立體化培養(yǎng)模式。
盡管在大學(xué)生程序設(shè)計(jì)能力培養(yǎng)方面高校和教師做出了很多探索,也取得了一定的成效,但目前多數(shù)高校的教學(xué)方式以課堂教學(xué)為中心,以實(shí)驗(yàn)和課后作業(yè)為支撐,這種培養(yǎng)模式存在以下不足。
(1)課堂教學(xué)偏向理論內(nèi)容,而實(shí)驗(yàn)實(shí)踐教學(xué)受學(xué)時(shí)和空間的限制,學(xué)生的實(shí)踐能力無(wú)法得到充分的鍛煉和提升。
(2)固定的課堂教學(xué)和實(shí)驗(yàn)教學(xué)使教學(xué)內(nèi)容統(tǒng)一化,難以實(shí)現(xiàn)因材施教和個(gè)性化培養(yǎng)。
(3)教學(xué)體系不完善,以課程教學(xué)大綱為依據(jù)的課程教學(xué),使學(xué)生的解題能力和思維方式難以得到系統(tǒng)化的鍛煉和提升。
為了更好地提升教學(xué)質(zhì)量,實(shí)現(xiàn)創(chuàng)新型人才培養(yǎng)目標(biāo),我們將ACM競(jìng)賽實(shí)訓(xùn)模式引入大學(xué)生程序設(shè)計(jì)相關(guān)課程的教學(xué)中,建立“教學(xué)—訓(xùn)練—競(jìng)賽一體化”程序設(shè)計(jì)能力培養(yǎng)模式,并在計(jì)算機(jī)專業(yè)、軟件工程專業(yè)、網(wǎng)絡(luò)工程專業(yè)學(xué)生的程序設(shè)計(jì)能力培養(yǎng)中實(shí)施,有效提高大學(xué)生的程序設(shè)計(jì)實(shí)踐能力和創(chuàng)新能力,為社會(huì)培養(yǎng)高素質(zhì)的人才。
針對(duì)目前創(chuàng)新型人才培養(yǎng)的需要,我們認(rèn)真研究和探索大學(xué)生程序設(shè)計(jì)能力培養(yǎng)的模式,提出一套“教學(xué)—訓(xùn)練—競(jìng)賽一體化”人才培養(yǎng)方案。該方案將ACM競(jìng)賽模式引入程序設(shè)計(jì)能力的教學(xué)及訓(xùn)練過(guò)程中,面向程序設(shè)計(jì)能力培養(yǎng)的主要課程高級(jí)程序設(shè)計(jì)語(yǔ)言與數(shù)據(jù)結(jié)構(gòu)分別建立了配套的實(shí)訓(xùn)系統(tǒng)。該實(shí)訓(xùn)系統(tǒng)將教學(xué)和實(shí)訓(xùn)緊密集合,構(gòu)架講練結(jié)合、“教學(xué)—實(shí)訓(xùn)一體化”第一個(gè)層次的程序設(shè)計(jì)能力培養(yǎng)模式。在這個(gè)層次的基礎(chǔ)上,以算法綜合訓(xùn)練為基礎(chǔ),以程序設(shè)計(jì)競(jìng)賽為目標(biāo)驅(qū)動(dòng),構(gòu)建“訓(xùn)練—競(jìng)賽一體化”的教學(xué)模式,進(jìn)而構(gòu)建“教學(xué)—訓(xùn)練—競(jìng)賽一體化”多層次的培養(yǎng)體系。該培養(yǎng)體系在學(xué)校人才培養(yǎng)中發(fā)揮重要的作用,具體體系結(jié)構(gòu)見(jiàn)圖1。
圖1 “教學(xué)—訓(xùn)練—競(jìng)賽一體化”的人才培養(yǎng)方案
為實(shí)現(xiàn)“教學(xué)—訓(xùn)練—競(jìng)賽一體化”的人才培養(yǎng)方案,需要建立5套題庫(kù)及相應(yīng)的程序設(shè)計(jì)實(shí)訓(xùn)系統(tǒng)。實(shí)訓(xùn)系統(tǒng)的基本功能類似,只是面向不同訓(xùn)練的題庫(kù)不同。實(shí)訓(xùn)系統(tǒng)的用戶角色可分為非注冊(cè)用戶、學(xué)生、教師和管理員。管理員的功能包括登錄、管理題庫(kù)、管理競(jìng)賽、管理評(píng)測(cè)、查看源碼、查看排名等;非注冊(cè)用戶的功能包括登錄、查看題目、查看排名等;注冊(cè)學(xué)生的功能包括登錄、查看代碼、提交代碼、參加比賽、查看排名等;教師的功能包括登錄、查看代碼、查看排名等。系統(tǒng)的用例圖見(jiàn)圖2。
圖2 系統(tǒng)用例圖
圖3 程序在線評(píng)測(cè)流程圖
實(shí)訓(xùn)系統(tǒng)的實(shí)現(xiàn)核心是程序設(shè)計(jì)在線評(píng)測(cè)。程序的自動(dòng)評(píng)測(cè)流程見(jiàn)圖3,學(xué)生向評(píng)測(cè)系統(tǒng)提交程序源代碼,系統(tǒng)依據(jù)提交的先后順序?qū)⒋u(píng)測(cè)的源代碼插入待評(píng)測(cè)隊(duì)列,評(píng)測(cè)內(nèi)核程序從評(píng)測(cè)隊(duì)列中依次獲取評(píng)測(cè)源代碼,對(duì)其進(jìn)行編譯、運(yùn)行、結(jié)果比較等操作,并根據(jù)操作結(jié)果返回相應(yīng)的信息。具體的出錯(cuò)信息有:如果源碼編譯錯(cuò)誤,直接返回編譯錯(cuò)誤(CE, Compile Error);如果運(yùn)行超時(shí),直接返回超時(shí)錯(cuò)誤(TLE, Time Limit Error);評(píng)測(cè)程序?qū)⒃摮绦虻倪\(yùn)行結(jié)果與測(cè)試數(shù)據(jù)進(jìn)行比較,如果完全一致則返回程序運(yùn)行正確信息(AC, Accept),否則返回運(yùn)行不正確信息(WA, Wrong Answer)。
在基于“教學(xué)—訓(xùn)練—競(jìng)賽一體化”的大學(xué)生程序設(shè)計(jì)能力培養(yǎng)的實(shí)踐中,我們建立了C語(yǔ)言層次化實(shí)訓(xùn)系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)實(shí)訓(xùn)系統(tǒng)、程序設(shè)計(jì)綜合訓(xùn)練實(shí)訓(xùn)題庫(kù)、算法實(shí)訓(xùn)題庫(kù)等。
通過(guò)實(shí)踐,“教學(xué)—訓(xùn)練—競(jìng)賽一體化”培養(yǎng)方案具有以下優(yōu)勢(shì)。
(1) 將程序設(shè)計(jì)能力的培養(yǎng)構(gòu)建在一個(gè)統(tǒng)一的框架下,使學(xué)生的程序設(shè)計(jì)能力得到系統(tǒng)化、全方位的培養(yǎng)。
(2) 實(shí)訓(xùn)系統(tǒng)的建立基于ACM競(jìng)賽實(shí)訓(xùn)模式,針對(duì)不同層次的學(xué)生分層次地組織實(shí)訓(xùn)內(nèi)容,有利于實(shí)現(xiàn)因材施教。
(3) 實(shí)訓(xùn)的訓(xùn)練內(nèi)容在有限的實(shí)驗(yàn)教學(xué)中是無(wú)法完成的,而實(shí)訓(xùn)系統(tǒng)24小時(shí)對(duì)外提供服務(wù),學(xué)生可以在任何時(shí)候、任何地點(diǎn)查看訓(xùn)練內(nèi)容、提交代碼,系統(tǒng)實(shí)時(shí)給予評(píng)測(cè)。
(4) 實(shí)訓(xùn)內(nèi)容和實(shí)訓(xùn)模式遵循ACM競(jìng)賽快樂(lè)學(xué)習(xí)的理念,通過(guò)排名機(jī)制,極大地激發(fā)了學(xué)生的刷題熱情。
(5) 實(shí)訓(xùn)代碼的提交,完全實(shí)現(xiàn)了計(jì)算機(jī)自動(dòng)實(shí)時(shí)的評(píng)測(cè)和反饋,極大地減輕了教師評(píng)閱程序的負(fù)擔(dān)。
實(shí)踐表明,該培養(yǎng)方案使學(xué)生的程序設(shè)計(jì)能力、解體思路得到了有效的訓(xùn)練,教學(xué)效果明顯提高。
當(dāng)然,程序設(shè)計(jì)能力是計(jì)算機(jī)專業(yè)學(xué)生的基本能力,而優(yōu)秀的計(jì)算機(jī)人才只具有程序設(shè)計(jì)能力是不夠的。如何將程序設(shè)計(jì)能力的培養(yǎng)與后續(xù)的計(jì)算機(jī)專業(yè)綜合素質(zhì)的培養(yǎng)相結(jié)合,為社會(huì)培養(yǎng)出高水平高素質(zhì)的優(yōu)秀計(jì)算機(jī)技術(shù)人才,還需要進(jìn)一步的探索與實(shí)踐。
[1] 常子楠. 基于ACM模式的程序設(shè)計(jì)類課程實(shí)踐教學(xué)探索[J]. 計(jì)算機(jī)教育, 2010(16): 144-146.
[2] 穆寶良, 李晉, 韓雪峰. 基于ACM平臺(tái)的程序設(shè)計(jì)課程教學(xué)改革[J].軟件工程師, 2013(4): 40-43.
[3] 劉海霞, 冉宇瑤. 基于ACM競(jìng)賽模式的程序設(shè)計(jì)類課程實(shí)踐教學(xué)改革的探討[J]. 工業(yè)控制計(jì)算機(jī), 2016(29): 39-40.
[4] 韓建民, 王麗俠,賈泂. 大學(xué)生程序設(shè)計(jì)能力的層次化培養(yǎng)模式[J].計(jì)算機(jī)教育, 2012(3): 15-18.
[5] 周健, 鄭誠(chéng). 立體化程序設(shè)計(jì)能力培養(yǎng)方法[J]. 計(jì)算機(jī)教育, 2014(4): 56-59.
(編輯:孫怡銘)
1672-5913(2017)03-0061-04
G642
浙江師范大學(xué)校級(jí)重點(diǎn)教改項(xiàng)目。
韓建民,男,教授,研究方向?yàn)樾畔踩?,hanjm@zjnu.cn。