陳英 鄭巍 楊豐玉 段喜龍
摘 要:針對高校計算機專業(yè)人才培養(yǎng)的現(xiàn)狀,首先介紹目前國內(nèi)可參加的程序設(shè)計競賽的特點;然后說明以程序設(shè)計競賽為依托,對提高教學(xué)質(zhì)量所產(chǎn)生的積極影響;最后以我院的改革與實踐為例,從多方面論證程序設(shè)計競賽進一步促進了老師和學(xué)生綜合素質(zhì)的提高。
關(guān)鍵詞:程序設(shè)計競賽;教學(xué)質(zhì)量;綜合素質(zhì)
中圖分類號:G642 文獻標(biāo)志碼:A 文章編號:2096-000X(2018)09-0092-04
Abstract: In view of the present situation of the training of computer professionals in colleges and, this paper first introduces the characteristics of the program design competition which can be attended in China, and then explains the positive influence on improving the quality of teaching based on the program design competition. Finally, taking the reform and practice of our hospital as an example, the paper further proofs that the competition can improve the comprehensive quality of teachers and students from many aspects.
Keywords: programming competition; teaching quality; comprehensive quality
近年來,隨著科學(xué)技術(shù)的快速發(fā)展,各大公司相對以往更加關(guān)注畢業(yè)生的綜合素質(zhì)。在此要求下,各個高校應(yīng)該適應(yīng)這種變化,更加有針對性加強在校大學(xué)生綜合素質(zhì)的培養(yǎng),以期提高大學(xué)生畢業(yè)找工作的競爭力。而對于計算機專業(yè)相關(guān)的學(xué)生而言,程序設(shè)計類競賽能夠有效地提高學(xué)生學(xué)習(xí)的主動性、思考的創(chuàng)造性、團隊的合作性。本文將以我學(xué)院過去幾年學(xué)生參加競賽的結(jié)果來討論程序設(shè)計競賽對提高教學(xué)質(zhì)量以及培養(yǎng)計算機學(xué)科專業(yè)創(chuàng)新性人才的作用。
一、計算機學(xué)科專業(yè)人才培養(yǎng)的現(xiàn)狀
1. 程序設(shè)計類課程定位和課程目標(biāo)不夠明確。雖然每個高校針對每門課程都會制定教學(xué)大綱,但是,大綱修訂的實效性不夠,有部分高校的教學(xué)大綱往往多年都沒有進行修改,無法適應(yīng)當(dāng)今社會對相關(guān)課程所要求達到的目標(biāo),同時,學(xué)校的教務(wù)部門卻要求任課老師嚴(yán)格按照教學(xué)大綱進行教學(xué)活動,這樣導(dǎo)致各個任課老師對如何培養(yǎng)學(xué)生的能力、培養(yǎng)學(xué)生的哪些能力無法達成共識。
2. 教學(xué)方法仍側(cè)重理論教學(xué)而忽視實踐教學(xué)。雖然現(xiàn)在部分高校采用了翻轉(zhuǎn)課堂、MOOC等新的教學(xué)方法,但是,對于一般的高校而言,依然是教師灌輸理論知識為主,學(xué)生被動接受,實際的效率不甚理想。尤其是擴招后,大多數(shù)的課堂都是大班上課,學(xué)生數(shù)多的可達一百多人,即使老師想兼顧到每個學(xué)生也基本變得不可能了。再者,雖然大部分的課程除了理論課外,還有實驗課,但是實驗課多以驗證型為主,學(xué)生上機時更多的只是按照實驗指導(dǎo)書將內(nèi)容輸入一遍,并沒有真正掌握所對應(yīng)的知識點,其結(jié)果是只要實驗內(nèi)容稍有變化,學(xué)生則不知道該如何完成實驗。因此,忽視實踐教學(xué)導(dǎo)致學(xué)生解決問題能力較差,不利于培養(yǎng)創(chuàng)新思維能力[1]。
3. 教學(xué)過程中忽視對學(xué)生學(xué)習(xí)興趣的培養(yǎng)。對于程序設(shè)計類課程,學(xué)生因為新鮮感在開始階段對這些課程是比較感興趣的。但是,不可否定的事實是程序設(shè)計類的課程內(nèi)容均比較多,同時難度也相對較大,因此,隨著所講課程內(nèi)容的增多和深入,學(xué)生會感覺到越來越吃力,如果此時老師在講解課程時仍然只是采用枯燥的語法講解,而沒有實例演示的話,則結(jié)果只能是學(xué)生死記硬背語法,等到編寫程序時則無從下手,這樣學(xué)生學(xué)習(xí)的興趣則慢慢地消失了,只剩下被動地為了應(yīng)付考試而痛苦地學(xué)習(xí),效果會很差。
4. 考核方式不注重編程能力測評。對于程序設(shè)計類課程,雖然部分高校采用上機考試,但是,對于一般高校而言,卻依然采用了紙質(zhì)版的考試方式,這種考試方式更側(cè)重對內(nèi)容的記憶,而缺少對思考能力、實際解決問題能力、動手編程能力、調(diào)試程序能力的考核,其結(jié)果可能導(dǎo)致部分學(xué)生高分低能。更加嚴(yán)重的事實是部分高校的考試試卷越出越簡單,考核的知識點也越老越少,這樣導(dǎo)致部分學(xué)生只在考試前幾天突擊備考,真正學(xué)到的知識少之又少。
5. 學(xué)生對本科教育的培養(yǎng)目標(biāo)理解不夠。對于計算機專業(yè)的學(xué)生而言,其在學(xué)習(xí)的過程中接觸的各種軟件比較多,所以部分學(xué)生的興趣側(cè)重在對各種軟件產(chǎn)品的學(xué)生,而缺少對計算機學(xué)科經(jīng)典理論知識的學(xué)習(xí),總是自覺不自覺地把本科學(xué)生當(dāng)成軟件公司的“崗前培訓(xùn)”。再者,部分學(xué)生在學(xué)習(xí)理論知識的過程中,經(jīng)常問的一句話是“學(xué)這個有什么用”,他們對本科教育的培養(yǎng)目標(biāo)培養(yǎng)不夠,眼界相對短視。
二、相關(guān)程序類設(shè)計競賽簡介
近年來,國內(nèi)高校學(xué)生可以參見的程序設(shè)計類競賽主要有以下幾種[2]。
1. ACM國際程序設(shè)計競賽(ACM International Collegiate Programming Contest):由美國計算機協(xié)會主辦,每支參賽隊伍由三名隊員組成,每只隊伍只能使用一臺計算機,突出團隊協(xié)作能力,比賽時間一般為5個小時,每次提交不通過時則罰時20min,比賽截止時,正確完成題目數(shù)越多、用時越少的隊伍為勝者。
2. “藍(lán)橋杯”全國軟件和信息技術(shù)專業(yè)人才大賽:由教育部高校學(xué)生司導(dǎo),工業(yè)和信息化部、教育部等部門聯(lián)合主辦,面向全國高校在校大學(xué)生。大賽分為軟件類和電子類,參賽大學(xué)生先參加各個省份的省賽,只有在省賽取得好成績的學(xué)生才有參加國賽的資格。該賽事的宗旨是向軟件行業(yè)和信息產(chǎn)業(yè)輸送具有創(chuàng)新能力和實踐能力的高端人才[3]。
3. 團體程序設(shè)計天梯賽:由浙江大學(xué)主推,教育部高等學(xué)校計算機類專業(yè)、軟件工程專業(yè)、計算機課程教學(xué)指導(dǎo)委員會主辦,于2016年舉辦了第一屆,賽事的影響力正在逐年擴大。每支參賽隊伍由10名隊員組成,比賽題目分為基礎(chǔ)級、進階級和等頂級三個難度等級,只有前一個等級的分?jǐn)?shù)達到一定要求時,后面等級的分?jǐn)?shù)才能計入總分?jǐn)?shù),比賽以團隊分?jǐn)?shù)進行排名。該比賽重點考察參賽學(xué)生對數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計能力,但難度相對ACM難度要低,因為參賽人數(shù)較多,通過該賽事的高校排名則可以體現(xiàn)各個高校在程序設(shè)計類課程的教學(xué)水平。
4. 百度之星程序設(shè)計大賽:由百度公司發(fā)起,創(chuàng)辦于2005 年,該賽事為個人賽,其宗旨旨在為廣大程序設(shè)計愛好者搭建切磋交流的平臺,在比賽中獲得好成績的選手將自動進入到“百度人才庫”。
5. TopCoder大學(xué)生程序設(shè)計挑戰(zhàn)賽:創(chuàng)辦于2001年,參賽選手在規(guī)定的時間內(nèi)完成三道不同難度的題目,完成的時間將決定該題所得到的分?jǐn)?shù)。
6. iGoogle中國大學(xué)生創(chuàng)新設(shè)計大賽:由Google舉辦,包括小工具,背景主題以及點子大賽,旨在依循其API標(biāo)準(zhǔn),為用戶提供更加豐富的內(nèi)容和用戶體驗。
三、程序設(shè)計競賽的積極作用
以程序設(shè)計競賽為載體,能夠有效地提高教學(xué)質(zhì)量,也能更好地培養(yǎng)計算機專業(yè)大學(xué)生的各種能力。
(一)對提高教學(xué)質(zhì)量的作用
程序設(shè)計競賽對教學(xué)質(zhì)量的作用主要體現(xiàn)在提高師資、有利于學(xué)科建設(shè)、更新教學(xué)內(nèi)容、加大實踐教學(xué)環(huán)節(jié)、改變教學(xué)模式、改變考試模式以及打通多課程等方面,具體的內(nèi)容如下所示:
1. 有助于加強師資隊伍和學(xué)科建設(shè):首先,競賽對知識點的廣度和深度都有更高的要求,這就要求指導(dǎo)老師除了掌握基本的知識點以外,還要努力拓展和程序競賽相關(guān)的知識點,更要求指導(dǎo)老師具有“授之以漁”的能力,以便能更好地教導(dǎo)競賽的學(xué)生;再者,程序設(shè)計競賽所涉及的知識點不僅僅是屬于某一門課程,而是一個體系,這樣就要求各個高校在開展程序設(shè)計競賽時,以點帶面,堅持計算機學(xué)科的建設(shè)。
2. 有助于更新教學(xué)內(nèi)容,調(diào)整課程體系:程序設(shè)計類競賽所涉及的知識面廣且深,且要求學(xué)生具有較高的綜合設(shè)計和實際操作水平。這就要求老師在實際的教學(xué)中,把在程序競賽中出現(xiàn)過、涵蓋多個知識點、且時效性強的題目作為例題,講解解題的整個過程,引導(dǎo)學(xué)生一起思考,以做到以點帶面,讓學(xué)生充分綜合運用所學(xué)的知識,也進一步知道解決問題所用到的方式方法。
3. 有助于加大實踐環(huán)節(jié)教學(xué)的力度:學(xué)生們在學(xué)習(xí)和準(zhǔn)備競賽的過程中,由于程序設(shè)計類競賽的題目的難度均比較大,所涉及的知識點也較多,這就要求學(xué)生不管做哪道題目,均要所有學(xué)過或未知的知識進行綜合匯總,反復(fù)認(rèn)真求解認(rèn)證才能得到解題思路。在將思路付諸實現(xiàn)的過程中,進一步要求學(xué)生具有較強的編程能力和查錯能力,而這些能力的提高將強化學(xué)生在自習(xí)情況下的實踐動手能力。
4. 有助于將課堂和課后練習(xí)相結(jié)合,改革課程教學(xué)模式:程序設(shè)計類競賽要求學(xué)生具有很強的自習(xí)能力。目前,國內(nèi)外的部分高校和IT公司均提供了在線判題(Online Judge,OJ)競賽平臺,這些平臺提供大量的競賽題目,學(xué)生注冊成功后則可以自主答題。同時,各個平臺還提供BBS供大家討論各道題目的解法、各種算法的優(yōu)缺點、學(xué)習(xí)的方法和比賽的經(jīng)驗。
5. 有助于改革考試方式:課程考試可以采用機試,通過Online Judge平臺進行考試??荚嚽埃處煂?dǎo)入學(xué)生的ID,然后學(xué)生登錄后按照要求在規(guī)定的時間內(nèi)獨立完成,平臺會根據(jù)學(xué)生提交的代碼進行自行測試,并返回測試的結(jié)果給學(xué)生交互。在考試結(jié)束后,平臺系統(tǒng)將自動生成每道題的正確率、用時、提交率等統(tǒng)計信息。教師則可以根據(jù)這些數(shù)據(jù),綜合評估學(xué)生的成績,并有的放矢修訂下一步教學(xué)的內(nèi)容[4]。
6. 有助于打通程序設(shè)計類課程,例如程序設(shè)計基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)、離散數(shù)學(xué)、算法分析與設(shè)計、組合數(shù)學(xué)、計算幾何、密碼學(xué)及算法復(fù)雜性等課程。這樣教師就可以不按部就班地順序講解這些課程的內(nèi)容,而是采用螺旋式的方式培養(yǎng)學(xué)生在競賽的高壓環(huán)境下、在有限的時間內(nèi)綜合運用知識對問題進行分析和研究,并通過抽象、建模和編程實現(xiàn)解決問題的能力,這對培養(yǎng)計算機學(xué)科創(chuàng)新性人才有其獨到的優(yōu)勢[5-6]。
(二)對培養(yǎng)創(chuàng)新型人才的作用
將程序設(shè)計類競賽的模式引入到當(dāng)前的本科教學(xué)中,將有助于提高學(xué)生的自學(xué)能力、培養(yǎng)學(xué)生的自律能力、團隊協(xié)作能力、創(chuàng)新思維能力、實際動手能力以及解決各種問題的能力,而這些能力的提高將有利于造就高素質(zhì)的創(chuàng)新性人才。
通過參加程序設(shè)計類競賽,可以形成良好的競爭環(huán)境,為學(xué)生個人、學(xué)院、以及學(xué)校帶來好處,具體為:
1. 優(yōu)秀的學(xué)生通過自己的努力,在競賽中取得好成績脫穎而出,這樣將給其它的學(xué)生樹立良好的榜樣,讓更多的低年級學(xué)生參與到競賽中,進而在學(xué)院里形成優(yōu)良的學(xué)風(fēng)和良性循環(huán),極大地促進了學(xué)院、學(xué)校的學(xué)風(fēng)建設(shè),而好的學(xué)風(fēng)又將為學(xué)生提供更理想的學(xué)習(xí)環(huán)境。所以,程序設(shè)計類競賽將深深地影響著一屆屆學(xué)生,也為我們培養(yǎng)創(chuàng)新型人才提供了良好的平臺。
2. 獲獎學(xué)生除了得到例如獲獎證書和獎學(xué)金以外,也將獲得更好的就業(yè)機會。當(dāng)然,獲獎的過程是艱難的(尤其對于像ACM-ICPC這樣的比賽),但是,學(xué)生努力付出的過程也正是各大高校人才培養(yǎng)的過程,同時,因為有企業(yè)的參與,學(xué)生的培養(yǎng)就和IT行業(yè)的發(fā)展更加緊密,這樣就提高了畢業(yè)生的就業(yè)競爭力,該培養(yǎng)過程將夯實高校創(chuàng)新型人才培養(yǎng)的基礎(chǔ)[7-8]。
四、我院的改革與實踐
1. 課程教學(xué)充分和競賽的內(nèi)容及模式相結(jié)合:將程序設(shè)計類競賽所涉及的相關(guān)內(nèi)容及模式滲透到日常教學(xué)中,使競賽成為教學(xué)的有益補充。學(xué)院開設(shè)了與程序設(shè)計類競賽相關(guān)的選修課,以競賽促進教學(xué)。學(xué)院組建了自己的競賽團隊,積極對學(xué)生開展了課外輔導(dǎo),為團隊的學(xué)生提供了各種平臺,使優(yōu)秀的學(xué)生通過自己的努力和老師的幫助能夠脫穎而出。圖1為我院采用的課程教學(xué)改革路線圖。
2. 進一步加強了程序設(shè)計類競賽的高水平師資隊伍的建設(shè):近幾年來,學(xué)院逐步完善了程序設(shè)計類競賽的獎勵制度,且成立了競賽委員會。積極鼓勵更多的年輕教師參與競賽的指導(dǎo),加強對高水平指導(dǎo)教師的培養(yǎng),鼓勵指導(dǎo)老師參與各種培訓(xùn)和教練論壇,在精神上給予支持,在物質(zhì)上給予獎勵。指導(dǎo)教師人數(shù)由初期的2位老師已經(jīng)增至10位老師,同時,院系老師也積極參與程序設(shè)計大賽與程序類課程教學(xué)的改革,每年均有指導(dǎo)老師獲批省級或校級教改類項目。
3. 建立學(xué)科競賽的長效機制,使學(xué)科競賽具有延續(xù)性:學(xué)院以提高大學(xué)生培養(yǎng)質(zhì)量為目標(biāo),努力營造學(xué)科競賽氛圍,定期舉行全院、全校性程序設(shè)計競賽,通過建立學(xué)科競賽的長效機制,最終形成校院級、省級、國家級的多級競賽機制。例如,軟件學(xué)院每年都會舉辦《C語言》和《程序設(shè)計基礎(chǔ)》的競賽,在各級學(xué)生中均取得了良好的反響。
4. 做好了組織宣傳工作,擴大了學(xué)生的參與面:通過組織多種形式的廣泛宣傳,讓更多的學(xué)生知曉并參與到競賽中來。同時,我們非常注意學(xué)生梯隊的建設(shè),“老帶新”、“傳幫帶”,充分發(fā)揮老隊員的示范作用,形成互幫互學(xué)、互相趕超的學(xué)習(xí)氛圍。我院四個年級共有近1200名學(xué)生,每年的新生基數(shù)比較大,我們在新生入學(xué)之前就已經(jīng)在新生群中積極宣講程序設(shè)計類競賽對學(xué)生成才的積極作用,讓新生積極參與其中。目前實施對象的范圍包括14級10%的學(xué)生,15級20%的學(xué)生,16級35%的學(xué)生,以后學(xué)生的比例將逐漸加大。
5. 提高學(xué)生的榮譽感和積極性:提高學(xué)生的團隊合作能力,每個參賽者把個人表現(xiàn)與小組榮譽、學(xué)校榮譽緊密聯(lián)系,這對培養(yǎng)學(xué)生的光榮感、使命感和責(zé)任感有很大的幫助。同時,參賽學(xué)生的優(yōu)異成績和拼搏精神將產(chǎn)生榜樣的力量,為學(xué)院、學(xué)校形成一種積極進取、奮發(fā)向上的良好學(xué)風(fēng)。平時,這些學(xué)生會充分利用好課余時間,主動學(xué)習(xí),在各個OJ平臺上刷題;每年寒暑假,參加比賽的學(xué)生都以飽滿的熱情留在學(xué)校參加集訓(xùn)。
6. 學(xué)院構(gòu)建了更加良好的硬件支持:學(xué)院20余個實驗室為課題的實施提供了良好的軟件開發(fā)環(huán)境和教改實施平臺,購買了大量程序設(shè)計競賽類的書籍,提供學(xué)生參加各種程序設(shè)計競賽的經(jīng)費,為學(xué)生提供了良好的硬件環(huán)境的支撐,專門為學(xué)生開辟機房以作為競賽訓(xùn)練的場地。
7. 程序設(shè)計類競賽讓學(xué)生自上而下形成一種良好的學(xué)習(xí)氛圍,有效地促進了優(yōu)良學(xué)風(fēng)的形成。圖2和圖3是對我院部分學(xué)生就主干課程課堂出勤率和利用課余時間情況的調(diào)查結(jié)果,該結(jié)果表明,程序設(shè)計類競賽能夠激發(fā)學(xué)生的學(xué)生興趣,讓學(xué)生更加充分利用課堂時間的基礎(chǔ)上,進一步利用好課余時間。
8. 程序設(shè)計類競賽也讓學(xué)生的付出在一定程度上取得了良好的效果:近3年來,我院的學(xué)生共獲得“中國高校計算機大賽-團體程序設(shè)計天梯賽”團隊二等獎2次,江西省冠軍、亞軍各1次; “ACM國際大學(xué)生程序設(shè)計競賽”現(xiàn)場賽銅獎2次、現(xiàn)場賽資格6次;“CCF大學(xué)生計算機系統(tǒng)與程序設(shè)計競賽”總決賽銅獎1次;“藍(lán)橋杯”省級一等獎3項,二等獎5項,三等獎10項。江西省計算機協(xié)會主辦的相關(guān)賽事一等獎2項,二等獎11項,三等獎13項目。同時,學(xué)生對和程序設(shè)計競賽相關(guān)的主干課程的感興趣程度(以百分號記)和期末考試的成績(以百分制記)相對未參加程序設(shè)計競賽之前都有提高,具體的結(jié)果如圖4和圖5所示。
五、結(jié)束語
本文依據(jù)我院人才培養(yǎng)目標(biāo)及社會對軟件程序設(shè)計人才的要求,通過以程序設(shè)計競賽為依托,對程序設(shè)計類課程的教學(xué)模式、教學(xué)內(nèi)容的串聯(lián)、教學(xué)方法進行研究和改革。以期將學(xué)科競賽與課程教學(xué)相結(jié)合,建立學(xué)科競賽的長效機制,更好地增強學(xué)生所學(xué)知識的廣度和深度,增強了學(xué)生的團隊合作意識,促進創(chuàng)新型人才的培養(yǎng)。下一步我們將讓更多的學(xué)生參與程序設(shè)計競賽,也讓課程的設(shè)置更多地和程序設(shè)計競賽相關(guān)聯(lián)。
參考文獻:
[1]田賢忠,劉楠,孫道國,等.ACM國際大學(xué)生程序設(shè)計競賽學(xué)習(xí)模式探討[J].高教與經(jīng)濟,2009,22(4):46-49.
[2]袁國武,趙楊,趙征鵬,等.依托程序設(shè)計競賽提高計算機專業(yè)學(xué)生培養(yǎng)質(zhì)量[J].教學(xué)研究,2009,15:104-106.
[3]李敏杰.程序設(shè)計競賽對學(xué)生實踐創(chuàng)新能力的培養(yǎng)[J].福建電腦,2015,8:60-61.
[4]洪雄.從程序設(shè)計大賽看計算機公共課程建設(shè)改革[J].重慶理工大學(xué)學(xué)報(自然科學(xué)),2013,27(11):137-140.
[5]楊玉軍,楊夷梅.計算機程序設(shè)計競賽思想融入“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)的探索與實踐[J].科教文匯,2016,340:50-52.
[6]趙錦元,熊兵,唐志航.任務(wù)驅(qū)動教學(xué)法在數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中的應(yīng)用[J].計算機教育,2015,2(4):71-74.
[7]李尤豐.程序設(shè)計大賽對高校創(chuàng)新人才培養(yǎng)的作用[J].計算機教育,2011,18:4-7.
[8]張耀民.程序設(shè)計大賽對程序設(shè)計類課程改革的促進[J].中國教育技術(shù)裝備,2015,13:3-4.