李玉華 申紅雪 陳明 孫玉勝
摘要:隨著信息化技術(shù)的發(fā)展,當(dāng)今社會(huì)對(duì)著重培養(yǎng)大學(xué)生的綜合素質(zhì)及創(chuàng)新能力已形成共識(shí)。本文通過(guò)分析程序設(shè)計(jì)競(jìng)賽的特點(diǎn),探討了依托程序設(shè)計(jì)競(jìng)賽的程序設(shè)計(jì)課程的教學(xué)改革,以培養(yǎng)理論基礎(chǔ)扎實(shí)、具備創(chuàng)新能力的應(yīng)用型、復(fù)合型IT人才。關(guān)鍵詞:程序設(shè)計(jì)競(jìng)賽;創(chuàng)新能力;培養(yǎng)模式中圖分類(lèi)號(hào):TP311
文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1674-9324(2018)20-0154-02 一、引言十九大報(bào)告提出了科教興國(guó)戰(zhàn)略、人才強(qiáng)國(guó)戰(zhàn)略、創(chuàng)新驅(qū)動(dòng)發(fā)展戰(zhàn)略等。每一項(xiàng)戰(zhàn)略都與高等教育密切相關(guān)。同時(shí),國(guó)家近幾年實(shí)施的以信息化帶動(dòng)工業(yè)化的產(chǎn)業(yè)結(jié)構(gòu)戰(zhàn)略調(diào)整,都對(duì)計(jì)算機(jī)相關(guān)專業(yè)的人才培養(yǎng)提出了更高的要求。目前,國(guó)內(nèi)很多高校對(duì)計(jì)算機(jī)專業(yè)也很重視,采取各種方式來(lái)提升教學(xué)質(zhì)量。有的學(xué)校采用校企聯(lián)合的方式,探索產(chǎn)學(xué)合作培養(yǎng)的方式[1],也有的學(xué)校采用基于項(xiàng)目驅(qū)動(dòng)的教學(xué)。這種模式要求教師在教學(xué)的過(guò)程中引入一個(gè)項(xiàng)目,教師將項(xiàng)目分解為涵蓋各個(gè)知識(shí)點(diǎn)的子任務(wù),學(xué)生通過(guò)對(duì)子任務(wù)的解決來(lái)掌握相應(yīng)的知識(shí)點(diǎn)。另外,也有一些高校意識(shí)到程序設(shè)計(jì)競(jìng)賽對(duì)提高學(xué)生培養(yǎng)質(zhì)量的作用,紛紛組織學(xué)生參加各種競(jìng)賽。本文探討現(xiàn)有計(jì)算機(jī)相關(guān)專業(yè)程序設(shè)計(jì)課程現(xiàn)有教學(xué)模式下存在的問(wèn)題,然后深入探討如何依托程序設(shè)計(jì)競(jìng)賽,提高在校大學(xué)生的專業(yè)素養(yǎng),培養(yǎng)大學(xué)生的創(chuàng)新能力。二、現(xiàn)狀與不足作為專業(yè)基礎(chǔ)課程,程序設(shè)計(jì)類(lèi)課程是計(jì)算機(jī)相關(guān)專業(yè)如計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程等專業(yè)普遍開(kāi)設(shè)的。程序設(shè)計(jì)類(lèi)課程的目的除了教給學(xué)生基本的程序設(shè)計(jì)理論外,更重要的是培養(yǎng)學(xué)生的程序設(shè)計(jì)開(kāi)發(fā)能力、邏輯推理能力,最終用來(lái)解決實(shí)際問(wèn)題。學(xué)習(xí)程序設(shè)計(jì)需要一定的基礎(chǔ),如程序設(shè)計(jì)語(yǔ)言、數(shù)據(jù)結(jié)構(gòu)、離散數(shù)學(xué)等。學(xué)習(xí)的整個(gè)過(guò)程有一定的難度,這些問(wèn)題在剛開(kāi)始學(xué)習(xí)程序設(shè)計(jì)的同學(xué)身上特別表現(xiàn)明顯。另一方面,按照統(tǒng)計(jì)數(shù)字,中國(guó)幾乎有500所以上大學(xué)都設(shè)有計(jì)算機(jī)相關(guān)專業(yè),但與其形成對(duì)比的是軟件人才尤其是高級(jí)人才的不足。當(dāng)然,這背后有很多原因,但高校教學(xué)模式存在問(wèn)題,確是不爭(zhēng)的事實(shí)。具體有如下幾個(gè)方面。1.教學(xué)內(nèi)容過(guò)細(xì)。程序設(shè)計(jì)學(xué)習(xí)的過(guò)程中,通常是和具體的一門(mén)程序設(shè)計(jì)語(yǔ)言聯(lián)系起來(lái)的,每一門(mén)語(yǔ)言都有其各自的語(yǔ)法體系,所用的教材也基本上是按照語(yǔ)法組織起來(lái)的。這樣的好處是大而全,講解起來(lái)也相對(duì)容易,但問(wèn)題也在這兒。由于一些語(yǔ)法知識(shí)比較細(xì)碎,初學(xué)者很容易就陷入到細(xì)節(jié)里出不來(lái),因而學(xué)起來(lái)比較困難。同時(shí)由于受教材影響,課程的教學(xué)大綱往往也都是大而全。在有限的學(xué)時(shí)內(nèi),為了完成教學(xué)任務(wù),老師每次課都是新內(nèi)容,結(jié)果期末學(xué)生只記憶了一大堆語(yǔ)法碎塊,很難靈活運(yùn)用,因此這種方式難以培養(yǎng)學(xué)生的創(chuàng)新思維。2.過(guò)于依賴卷面考試。現(xiàn)在對(duì)學(xué)生的評(píng)價(jià)還是主要通過(guò)卷面考試,對(duì)學(xué)生的動(dòng)手能力要求相對(duì)比較低,從而對(duì)學(xué)生的實(shí)踐能力培養(yǎng)造成限制。雖然考試題包含有一定的編程題,但大部分同學(xué)還都是依靠理論部分得分才能過(guò)關(guān)。程序設(shè)計(jì)課程是實(shí)踐性很強(qiáng)的課程,僅僅是紙面上培養(yǎng)出來(lái)的學(xué)生,很難成為社會(huì)需要的合格人才。3.缺乏學(xué)生主動(dòng)學(xué)習(xí)能力及團(tuán)隊(duì)精神的培養(yǎng)。軟件開(kāi)發(fā)需要一個(gè)過(guò)程,整個(gè)過(guò)程需要軟件工程方法學(xué)的指導(dǎo)。軟件產(chǎn)品從需求分析,設(shè)計(jì)開(kāi)發(fā),到測(cè)試并交付用戶使用,在整個(gè)產(chǎn)品的生命周期內(nèi),往往需要多人配合,因而軟件工程方法學(xué)通常需要主動(dòng)學(xué)習(xí)精神及團(tuán)隊(duì)協(xié)作。現(xiàn)在的課堂教學(xué)主要是一對(duì)多的模式,難以組織有效的多人團(tuán)隊(duì)合作模式。另外,囿于有限的師資力量,也難以因材施教。因此這種方式難以培養(yǎng)學(xué)生的主動(dòng)學(xué)習(xí)能力及合作精神。4.實(shí)驗(yàn)內(nèi)容單一。現(xiàn)在實(shí)驗(yàn)教學(xué)大綱的內(nèi)容基本上是圍繞教學(xué)內(nèi)容展開(kāi)的,也就是說(shuō),實(shí)驗(yàn)的內(nèi)容基本上都是為了驗(yàn)證語(yǔ)法知識(shí),其內(nèi)容相對(duì)獨(dú)立。另外,現(xiàn)在有些學(xué)校過(guò)分強(qiáng)調(diào)教學(xué)過(guò)程的可監(jiān)督性,要求留下大量的實(shí)驗(yàn)報(bào)告,這樣學(xué)生在有限的時(shí)間內(nèi)把大量的精力放在這些格式化的報(bào)告上面,反而對(duì)工程不那么重視,報(bào)告完成即視作任務(wù)完成,缺少進(jìn)一步探索的動(dòng)力。上機(jī)僅僅是為了完成作業(yè),長(zhǎng)此以往,學(xué)生就會(huì)對(duì)上機(jī)失去興趣。上面的這些問(wèn)題造成了程序設(shè)計(jì)課程的尷尬境地,一方面,學(xué)校很重視這些課程;另一方面學(xué)生雖然也很重視,但在學(xué)習(xí)一段時(shí)間以后,會(huì)感覺(jué)學(xué)得并不順利。作為任課老師,對(duì)這個(gè)結(jié)果也不滿意。這些問(wèn)題引起大家的思考,該如何才能改變這樣的窘?jīng)r。三、依托程序設(shè)計(jì)競(jìng)賽的大學(xué)生創(chuàng)新能力培養(yǎng)模式近年來(lái),針對(duì)大學(xué)生舉辦的各種各樣的程序設(shè)計(jì)競(jìng)賽越來(lái)越多,國(guó)內(nèi)學(xué)生可以參加的比較常見(jiàn)的有ACM國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽(ACM-ICPC)、藍(lán)橋杯全國(guó)軟件和信息技術(shù)專業(yè)人才大賽、百度之星等,其中以ACM競(jìng)賽最為著名,受到的關(guān)注度最高。ACM要求參加者以組團(tuán)的形式參賽,要求選手在規(guī)定的時(shí)間內(nèi),采用C/C++、Java等程序設(shè)計(jì)語(yǔ)言,完成規(guī)定的題目。本文以ACM競(jìng)賽為例來(lái)說(shuō)明競(jìng)賽對(duì)教學(xué)模式改革的促進(jìn)作用。1.程序設(shè)計(jì)競(jìng)賽的特點(diǎn)。①問(wèn)題導(dǎo)向。ACM賽事的出題人往往是領(lǐng)域?qū)<一蛘逫T領(lǐng)域一些世界知名公司的工程師出題,命題涉及到從計(jì)算機(jī)各個(gè)應(yīng)用領(lǐng)域的一些實(shí)際工程問(wèn)題、方法問(wèn)題、理論問(wèn)題,這些問(wèn)題通常會(huì)和當(dāng)前的計(jì)算機(jī)科學(xué)技術(shù)發(fā)展的研究動(dòng)向及應(yīng)用的熱點(diǎn)問(wèn)題或算法有關(guān),往往具有一定的引導(dǎo)性、前瞻性。②強(qiáng)調(diào)基礎(chǔ)與綜合。由于競(jìng)賽的命題來(lái)源于一些實(shí)際的工程問(wèn)題,又或者是方法方面或理論方面的問(wèn)題,解決這些問(wèn)題涉及的知識(shí)面很廣,像離散數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計(jì)、算法分析與設(shè)計(jì)等課程都可能會(huì)涉及到。這些問(wèn)題有些沒(méi)有統(tǒng)一的最優(yōu)解法,需要綜合利用所學(xué)過(guò)的知識(shí)進(jìn)行研究分析、歸納、總結(jié)、抽象、建模。這些涉及的知識(shí)也正是大學(xué)所教授的知識(shí),試題考查的是學(xué)生的算法及程序設(shè)計(jì)開(kāi)發(fā)能力,解這類(lèi)題目是學(xué)生大學(xué)所學(xué)知識(shí)的綜合運(yùn)用。即使學(xué)生不參與比賽,通過(guò)此類(lèi)問(wèn)題的研究分析,也有助于程序設(shè)計(jì)類(lèi)課程的學(xué)習(xí)提升。③開(kāi)放性。專業(yè)競(jìng)賽由于命題的廣泛性,其所用的解決方法、工具等都是開(kāi)放的。傳統(tǒng)的教室、教材、教師模式已經(jīng)不足以解決競(jìng)賽的內(nèi)容,需要參與者相互協(xié)作,積極主動(dòng)地查資料來(lái)解決問(wèn)題。這樣的場(chǎng)景可能會(huì)多次反復(fù),過(guò)程需要教師站在不同的層次及多角度來(lái)指導(dǎo)學(xué)生[2]。 2.競(jìng)賽對(duì)課程的教改促進(jìn)作用。參加競(jìng)賽的準(zhǔn)備過(guò)程,本身就是一個(gè)開(kāi)放學(xué)習(xí)的過(guò)程。現(xiàn)在有很多高校提供了一些優(yōu)秀的網(wǎng)絡(luò)競(jìng)賽平臺(tái),提供大量的題目供學(xué)生練習(xí),同時(shí)提供在線評(píng)判系統(tǒng),學(xué)生可自主注冊(cè),選用自己熟悉的語(yǔ)言提供程序代碼,系統(tǒng)從程序運(yùn)行的正確性、效率、復(fù)雜度等多個(gè)方面進(jìn)行評(píng)判。由此看出基于程序設(shè)計(jì)競(jìng)賽的教學(xué)改革有下面幾點(diǎn)優(yōu)勢(shì)。①激發(fā)學(xué)生學(xué)習(xí)興趣的自主學(xué)習(xí)環(huán)境。通過(guò)在線評(píng)判系統(tǒng),學(xué)生可以在豐富的題庫(kù)中任選自己適合的題目,制訂學(xué)習(xí)計(jì)劃并設(shè)定目標(biāo),提升程序設(shè)計(jì)開(kāi)發(fā)能力。培養(yǎng)學(xué)生發(fā)現(xiàn)問(wèn)題、探索問(wèn)題、綜合已有知識(shí)自主解決問(wèn)題的能力,并最終解決問(wèn)題,這正是創(chuàng)新能力的體現(xiàn)。②基于項(xiàng)目的驅(qū)動(dòng)的學(xué)習(xí)模式。ACM的命題大部分來(lái)自一些既有應(yīng)用性又有啟發(fā)性的案例或工程項(xiàng)目。指導(dǎo)老師可以選擇一些符合教學(xué)目標(biāo)和教學(xué)任務(wù)的一些案例或項(xiàng)目來(lái)完成程序設(shè)計(jì)課程的教學(xué)計(jì)劃,而這種教學(xué)模式,正是程序設(shè)計(jì)課程教學(xué)研究的基于項(xiàng)目的驅(qū)動(dòng)的教學(xué)模式。③增加學(xué)生的團(tuán)隊(duì)協(xié)作精神。類(lèi)似ACM的賽制,需要多人協(xié)作。這類(lèi)比賽,不但要求選手有較強(qiáng)的個(gè)人能力,還要能夠與別人協(xié)作完成任務(wù)。由于涉及的知識(shí)面很廣,除了上面提到的一些課程、算法及計(jì)算理論外,算法同樣具有一定的復(fù)雜度。如此廣泛的知識(shí)面需要小組成員分工合作,在最少的時(shí)間內(nèi)掌握相關(guān)的知識(shí),這就需要學(xué)生之間有良好的協(xié)作。④對(duì)傳統(tǒng)教學(xué)模式的改進(jìn)。依托程序設(shè)計(jì)競(jìng)賽的程序設(shè)計(jì)課程教學(xué)模式,改變了傳統(tǒng)教師課堂上的授課方式[3]。四、結(jié)語(yǔ)綜上所述,通過(guò)引入依托程序設(shè)計(jì)競(jìng)賽的學(xué)生培養(yǎng)模式,能夠滿足當(dāng)前大學(xué)培養(yǎng)學(xué)生的綜合素質(zhì)、創(chuàng)新能力及應(yīng)用型人才的要求。以賽促學(xué),提升學(xué)生的自主學(xué)習(xí)能力,培養(yǎng)創(chuàng)新性思維,增強(qiáng)學(xué)生的交流及團(tuán)隊(duì)協(xié)作能力,為學(xué)生的將來(lái)進(jìn)一步學(xué)習(xí)或進(jìn)入社會(huì)打下堅(jiān)實(shí)的基礎(chǔ)。參考文獻(xiàn):[1]蔡琴,張凱.項(xiàng)目驅(qū)動(dòng)教學(xué)模式在軟件工程教學(xué)中的應(yīng)用[J].實(shí)驗(yàn)科學(xué)與技術(shù),2014,(4):175-178.[2]葉楓,吳勝艷,張雪潔,等.依托學(xué)科競(jìng)賽的計(jì)算機(jī)專業(yè)學(xué)生能力培養(yǎng)研究[J].計(jì)算機(jī)教育,2017,(3):43-47.[3]劉晶,呂艷琳,李尤豐.基于ACM競(jìng)賽平臺(tái)的程序設(shè)計(jì)課程教學(xué)模式改革的探索[J].江蘇第二師范學(xué)院學(xué)報(bào):自然科學(xué)版,2010,(6):73-75.