張立敏 吳濤 吳東
摘 要:地方高校計算機(jī)專業(yè)學(xué)生的理論基礎(chǔ)和專業(yè)素養(yǎng)相對薄弱,程序設(shè)計能力亟待提高。作者針對程序設(shè)計類課程教學(xué)的特點(diǎn)和存在的問題,基于問卷調(diào)查分析了當(dāng)前學(xué)生程序設(shè)計現(xiàn)狀,通過引入競賽式教學(xué)改革教學(xué)模式、教學(xué)方法、學(xué)習(xí)方法和考核方法。實(shí)踐表明,競賽式教學(xué)的引入在教學(xué)實(shí)踐中取得了一定的成效,有利于提高學(xué)生編程能力和教學(xué)質(zhì)量。
關(guān)鍵詞:地方高校;程序設(shè)計;現(xiàn)狀分析;對策研究;競賽式教學(xué)
中圖分類號:G642.3 文獻(xiàn)標(biāo)志碼:A 文章編號:1673-8454(2018)08-0076-04
我國目前已擁有了大量的初級計算機(jī)人才資源,但重心偏低,特別是高校畢業(yè)生,缺乏創(chuàng)新能力和實(shí)踐能力,高素質(zhì)軟件人才的缺乏已成為制約我國軟件產(chǎn)業(yè)發(fā)展的瓶頸[1]。當(dāng)前,各大高校計算機(jī)相關(guān)專業(yè)學(xué)歷教育周期長、教學(xué)內(nèi)容更新緩慢、教學(xué)方式與考核方式單一,應(yīng)用實(shí)踐偏少,就業(yè)壓力相對較大,只有深入開展人才培養(yǎng)模式改革,并進(jìn)行深度的專業(yè)結(jié)構(gòu)調(diào)整,才能適應(yīng)市場需求[2]。在本科應(yīng)用型人才培養(yǎng)質(zhì)量越來越受關(guān)注的今天,各高校在人才培養(yǎng)模式方面,尤其是教學(xué)模式和教學(xué)方法方面開展了大量的研究工作[3],同時更加注重學(xué)習(xí)方式和考核方式的改革與創(chuàng)新。
計算機(jī)教學(xué)改革離不開程序設(shè)計類課程的改革,程序設(shè)計不可避免的與各類競賽相關(guān)聯(lián),其中ACM-ICPC(ACM International Collegiate Programming Contest,國際大學(xué)生程序設(shè)計競賽)和全國軟件專業(yè)人才設(shè)計與創(chuàng)業(yè)大賽與課程教學(xué)的結(jié)合最為緊密。以ACM-ICPC為基礎(chǔ)的教學(xué)改革研究已逐步深入,主要集中在課程教學(xué)中如何引入ACM-ICPC[4-5],如何構(gòu)建基于競賽的實(shí)驗教學(xué)新平臺[6],以及如何實(shí)施競教結(jié)合[7]三個方面。
程序設(shè)計競賽涉及的課程不僅僅包括C語言和數(shù)據(jù)結(jié)構(gòu),還包括JAVA程序設(shè)計、ACM程序設(shè)計、算法設(shè)計與分析等,覆蓋了計算機(jī)專業(yè)主要的必修課程,競賽式教學(xué)所體現(xiàn)的競教結(jié)合的教學(xué)思路與教育部大力推進(jìn)加強(qiáng)實(shí)驗、實(shí)踐教學(xué)改革的思路相輔相成,程序設(shè)計競賽與課程教學(xué)的結(jié)合在培養(yǎng)學(xué)生基本素質(zhì)方面具有較好的教學(xué)效果[8],能夠有效的促進(jìn)信息學(xué)科創(chuàng)新型人才的培養(yǎng)[9]。
一、程序設(shè)計能力現(xiàn)狀分析
不同地域、不同類型的高校之間,學(xué)生的專業(yè)素養(yǎng)差別很大,尤其是地方高校,學(xué)生理論基礎(chǔ)薄弱,編程能力亟待提高。為了能夠準(zhǔn)確地了解地方高校大學(xué)生的程序設(shè)計能力狀況,針對嶺南師范學(xué)院計算機(jī)專業(yè)3個年級共584名在校大學(xué)本科生發(fā)放《程序設(shè)計能力調(diào)查問卷》,問卷基于目的性、邏輯性、通俗性和便于處理性原則,主體設(shè)計包括是否式、選擇式和評判式三種類型,按照一般調(diào)查問卷的基本步驟和原則進(jìn)行,共回收有效問卷575份,有效回收率為98.46%,符合抽樣調(diào)查對回收率的要求。
1.學(xué)生缺乏編程興趣
興趣是最好的老師,學(xué)生對程序設(shè)計的喜好程度會直接影響對相關(guān)課程的喜好程度,進(jìn)而影響學(xué)習(xí)效率和學(xué)習(xí)效果。在575份有效問卷中,僅362人選擇喜歡編程,占總?cè)藬?shù)的62.96%,將近4成學(xué)生不喜歡編程,究其原因,地方性本科院校招生時的第一志愿錄取率不高是關(guān)鍵因素之一。另一方面,師范類院校男女生比例較工科性專業(yè)院校而言,女生比例相對偏高,也在很大程序上影響了整體對程序設(shè)計的興趣。在選擇喜歡編程的362人中,男生241人,女生121人,不喜歡編程的211人中,男生92人,女生119人,男女差異十分明顯,突顯了工科專業(yè)以男生為主的特點(diǎn)。進(jìn)一步按不同專業(yè)進(jìn)行對比分析,結(jié)果如表1所示。
總體上,喜歡程序設(shè)計的學(xué)生略多于不喜歡的,其中,軟件專業(yè)接近7成的學(xué)生選擇喜歡程序設(shè)計,明顯高于其他專業(yè)。
2.課堂教學(xué)引導(dǎo)缺失
有人說,程序設(shè)計能力的提高主要就是“編程、編程、再編程”,可見勤于練習(xí)對程序設(shè)計的學(xué)習(xí)是多么的重要。而實(shí)際情況是學(xué)生的主觀能動性和自學(xué)能力有限,課堂教學(xué)引導(dǎo)缺失,課后練習(xí)目的性和方向性不明,積極性不高。程序設(shè)計類課程教學(xué)的理論與實(shí)踐學(xué)時有限,教學(xué)重點(diǎn)集中在語法知識點(diǎn)的講解上,學(xué)生對課外練習(xí)環(huán)節(jié)重視不夠,自主學(xué)習(xí)意識不強(qiáng),從而導(dǎo)致知識點(diǎn)的理解不夠深入。
如表2所示,學(xué)生在遇到問題時不善于找教師尋求幫助,而是自己嘗試解決,以及和同學(xué)協(xié)同解決,教師的作用在不斷弱化當(dāng)中。問卷中有一項關(guān)于知識獲取途徑的問題,統(tǒng)計結(jié)果如表3所示。
我們發(fā)現(xiàn),目前學(xué)生掌握算法知識的主要途徑是自學(xué),在網(wǎng)絡(luò)上我們可以找到大量的有關(guān)程序設(shè)計的討論貼,這些討論帖的存在說明學(xué)生自組織學(xué)習(xí)的能力在不斷強(qiáng)化,教師的教學(xué)功能在不斷的弱化,此時,課堂教學(xué)引導(dǎo)顯得尤其重要。
3.自主學(xué)習(xí)意識不強(qiáng)
程序設(shè)計最初階段的理論學(xué)習(xí)是必不可少的,但僅僅依靠課堂學(xué)習(xí)就希望達(dá)到掌握程序設(shè)計是不現(xiàn)實(shí)的,學(xué)生必須學(xué)會獨(dú)立思考,培養(yǎng)主動學(xué)習(xí)的意識。調(diào)查問卷中有1項關(guān)于愿意花費(fèi)多少時間去學(xué)習(xí)程序設(shè)計的問題,33%的學(xué)生每天僅愿意花費(fèi)不足半小時用于編程練習(xí),僅有13%的學(xué)生每天愿意花費(fèi)超過2小時用于編程。如圖1所示,大部分學(xué)生不愿意在程序設(shè)計方面投入過多的時間,主動學(xué)習(xí)意識不強(qiáng)。
另一方面,隨著入學(xué)時間的增加,參加程序設(shè)計競賽的動力也在慢慢發(fā)生變化。如表4所示,年級越高,興趣所占比重越來越低,被動學(xué)習(xí)的因素越來越大,學(xué)生的激情慢慢的退卻,程序設(shè)計競賽難度偏大和學(xué)習(xí)惰性是最重要的影響因素。
同樣的情況也出現(xiàn)在時間花費(fèi)上,如表5所示,隨著入學(xué)時間的增加,學(xué)生愿意投入程序設(shè)計競賽的時間越來越少。
值得注意的是,三年級學(xué)生當(dāng)中有超過4成的學(xué)生愿意投入一學(xué)期參加程序設(shè)計競賽,明顯高于半學(xué)期的21.77%,說明相當(dāng)一部分學(xué)生認(rèn)識到程序設(shè)計競賽的積極作用,愿意投入其中以取得進(jìn)步,但是主動性不夠,缺少克服困難的毅力。
4.專業(yè)基礎(chǔ)知識薄弱
地方高校錄取分?jǐn)?shù)線相對重點(diǎn)院校而言偏低,特別是師范類院校工科專業(yè),數(shù)學(xué)成績有相當(dāng)一部分不夠理想,后續(xù)又沒有給予足夠的重視,導(dǎo)致數(shù)學(xué)基礎(chǔ)薄弱。程序設(shè)計需要較高的數(shù)學(xué)功底,特別是算法設(shè)計部分,對于缺乏數(shù)學(xué)思維的學(xué)生來說,編程學(xué)習(xí)與能力提高顯得非常困難。在問卷當(dāng)中有一道多選題,讓學(xué)生勾選不超過4項自己認(rèn)為在算法方面最欠缺的知識,如表6所示,僅有不到24%的學(xué)生選擇在3項以內(nèi),在針對這部分學(xué)生的訪談中發(fā)現(xiàn),他們之所以選擇3項以內(nèi)并不是因為不欠缺未勾選算法,而是因為那些未勾選的算法聽都沒聽過。
學(xué)生認(rèn)為最欠缺的算法知識中,排在前三位的分別是動態(tài)規(guī)劃、貪心算法、和圖論,分別占13.00%、9.17%和7.23%,而這些都需要較強(qiáng)的數(shù)學(xué)功底。數(shù)學(xué)基礎(chǔ)薄弱導(dǎo)致算法知識欠缺,進(jìn)一步影響程序設(shè)計能力的提高,影響人才培養(yǎng)目標(biāo)的實(shí)現(xiàn),最終影響學(xué)生就業(yè)。
二、對策及方法
通過引入競賽式教學(xué)改變傳統(tǒng)的教學(xué)模式和教學(xué)方法,實(shí)施新的學(xué)習(xí)方式和考核方式,從根本上提升地方高校程序設(shè)計類課程的教學(xué)質(zhì)量。
1.教學(xué)模式的改變
當(dāng)前,越來越多的高校計算機(jī)專業(yè)已經(jīng)借助程序設(shè)計競賽平臺開展教學(xué)改革,其中,基于ACM-OJ(ACM Online Judge,ACM在線判題系統(tǒng))的改革比較成熟。ACM-OJ中包含大量的問題(稱為Problem),這些Problem不僅包括歷年競賽試題,也包括各教學(xué)單位原創(chuàng)的問題庫?;诔绦蛟O(shè)計類課程群的問題庫被集成到ACM-OJ當(dāng)中,形成優(yōu)質(zhì)的數(shù)字教學(xué)資源,方便所有師生選擇并獲取。Problem通過分類使學(xué)生可以自主選擇學(xué)習(xí)最感興趣的,或者是最亟需獲取的知識進(jìn)行學(xué)習(xí),從而掌握學(xué)習(xí)的主動權(quán)。程序設(shè)計競賽平臺擴(kuò)展了計算機(jī)教學(xué)的手段與范圍,推進(jìn)了教學(xué)從“知識傳遞”向“能力培養(yǎng)”的轉(zhuǎn)變。
程序設(shè)計競賽平臺的建立在滿足高校計算機(jī)專業(yè)課堂教學(xué)需求的同時,也為廣大程序愛好者提供了終身學(xué)習(xí)的有效支持,在提高教育質(zhì)量的同時促進(jìn)了教育公平。借助程序設(shè)計競賽大范圍的影響,以及互聯(lián)網(wǎng)的深度融合,甚至于教育云與教育大數(shù)據(jù)的強(qiáng)大支撐,這種競賽式教學(xué)能夠開創(chuàng)一種全新的、協(xié)作的、競爭的、開放的教學(xué)模式。
2.教學(xué)方法的改變
目前,地方高校的大部分程序設(shè)計類課程均以語法講解為主,過分注重知識細(xì)節(jié)[10],割裂了程序設(shè)計的完整思路。語法是程序設(shè)計的基礎(chǔ),但不是全部,只有在具體的應(yīng)用中才能產(chǎn)生價值。將知識點(diǎn)融入到具體問題之中,培養(yǎng)程序思維能力和解決問題能力,更有利于知識的掌握。競賽式教學(xué)中,問題的設(shè)置可以針對特定的教學(xué)重點(diǎn)和難點(diǎn),兼顧知識點(diǎn)之間相互聯(lián)系,將規(guī)律性的方法融入其中。競賽式教學(xué)以問題解答為主線,穿插語法講解,注重現(xiàn)場演示,課堂教學(xué)與程序設(shè)計過程深度融合,有助于構(gòu)建良好的課堂生態(tài),提高教學(xué)質(zhì)量。
另一方面,程序設(shè)計類課程實(shí)踐環(huán)節(jié)教學(xué)案例的數(shù)量嚴(yán)重不足、質(zhì)量參差不齊,用于學(xué)生課內(nèi)外程序設(shè)計綜合訓(xùn)練的題目相對較少,與課堂教學(xué)無法相輔相成。課后練習(xí)大多來源于教材,局限于某個特定知識點(diǎn),只有競賽性質(zhì)的題目才更具備綜合性,能夠全方面地涉及整個專業(yè)知識領(lǐng)域,同時又與實(shí)際生活密切聯(lián)系,能夠綜合訓(xùn)練學(xué)生程序設(shè)計能力。通過競教結(jié)合設(shè)計的教學(xué)案例不容易讓學(xué)生產(chǎn)生厭煩情緒,感覺為了編程而編程,而是實(shí)實(shí)在在的解決科學(xué)問題,同時領(lǐng)會到算法的實(shí)際用途。
3.學(xué)習(xí)方式的改變
在信息技術(shù)的持續(xù)影響下,學(xué)習(xí)方式進(jìn)一步多元化、網(wǎng)絡(luò)化和個性化,競賽式教學(xué)平臺的出現(xiàn)充分體現(xiàn)了這些特點(diǎn)。無論是在課堂,還是在宿舍,又或者是寒暑假呆在家里,只要有網(wǎng)絡(luò),都可以通過網(wǎng)絡(luò)平臺獲取個性化的學(xué)習(xí)資源和學(xué)習(xí)支持。與此同時,基于Problem的討論貼從學(xué)習(xí)者的提問中來,由學(xué)習(xí)者相互解答,更能融入學(xué)生所想,便于學(xué)生理解和掌握知識,通過PC、手機(jī)、平板電腦等多種終端設(shè)備隨時查閱,便于隨時、隨地、隨需地開展移動學(xué)習(xí),這種無所不在的交流方式將徹底改變傳統(tǒng)的學(xué)習(xí)方式。
另一方面,學(xué)生可以基于自身基礎(chǔ)的實(shí)際情況來調(diào)整學(xué)習(xí)進(jìn)度,通過網(wǎng)絡(luò)討論貼來分享學(xué)習(xí)心得和進(jìn)行深入探討。競賽式教學(xué)使得學(xué)習(xí)方式更加靈活,積極性更加高漲,學(xué)生的興趣、特長和潛能得以更加充分的發(fā)揮,在提高學(xué)習(xí)效率的同時,創(chuàng)造了一個“因材施教”的過程?!盎ヂ?lián)網(wǎng)+”時代,學(xué)習(xí)方式將不再受限于特定的時間和空間,競賽式教學(xué)為終身學(xué)習(xí)、泛在學(xué)習(xí)提供了有效的支撐平臺。
4.考核方式的改變
傳統(tǒng)的程序設(shè)計類課程大多采用筆試形式,無論是開卷或閉卷,每次考試的重點(diǎn)都放在語法知識點(diǎn)上,缺乏對應(yīng)用能力的考查,往往學(xué)生通過死記硬背都能通過考試。競賽式教學(xué)基于試題庫來開展教學(xué)活動,競賽試題往往區(qū)別于傳統(tǒng)的課后習(xí)題,具備更強(qiáng)的綜合性和應(yīng)用性,更加貼近實(shí)際問題,能夠更有利于學(xué)生解決問題能力的提高。
基于競賽平臺開展的練習(xí)與測試均采用上機(jī)形式,從不同知識點(diǎn)的角度將同一個任務(wù)細(xì)化成多個形式的試題并建立題庫[11],學(xué)生日常通過題庫上機(jī)練習(xí)和鍛煉,可以極大的提高實(shí)際編程能力和解決問題的能力。教學(xué)團(tuán)隊可以定期在平臺發(fā)布針對不同年級、不同班級的各類競賽試題,從而有針對性的開展課后學(xué)習(xí),加深對課堂教學(xué)內(nèi)容的理解和應(yīng)用。競賽式上機(jī)考核方式可以極大的點(diǎn)燃學(xué)生的編程熱情,提高學(xué)生的主動性和編程能力,建立良好的學(xué)習(xí)氛圍。
三、教學(xué)效果的驗證
2013年至今,嶺南師范學(xué)院在C語言程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)課程中引入競賽式教學(xué),通過數(shù)據(jù)對比分析發(fā)現(xiàn)教學(xué)改革取得了一定的成績。通過競賽式教學(xué),學(xué)生對程序設(shè)計語言的語法理解更為深入透徹,大量的Problem讓學(xué)生更加明確知識點(diǎn)在實(shí)際問題中的應(yīng)用,討論貼更是幫助學(xué)生以自己的語言和思維去討論并解決問題,并掌握其解答的思路及編程的方法。
通過統(tǒng)計2013級與2014級C語言程序設(shè)計課程的期末成績(見圖2)可以看出,2014級當(dāng)中,75分至90分的人數(shù)比例高達(dá)85.26%,明顯高于2013級的51.20%,大部分同學(xué)的分?jǐn)?shù)較以往有所提高,對程序設(shè)計思想的理解更加明確,也更為清晰。
數(shù)據(jù)結(jié)構(gòu)與C語言程序設(shè)計密切相關(guān),在一定程度上C語言掌握的好壞程度直接影響著數(shù)據(jù)結(jié)構(gòu)的成績。進(jìn)一步統(tǒng)計2013級與2014級數(shù)據(jù)結(jié)構(gòu)的期末成績(見圖3)可以看出,低分區(qū)域(70分以下)2014級人數(shù)比例低于2013級,高分區(qū)域(80分以上)2014級人數(shù)比例高于2013級,經(jīng)過C語言程序設(shè)計課程的學(xué)習(xí),以及競賽式程序設(shè)計訓(xùn)練,算法的編寫能力也得到了提升。
如圖3所示,引入競賽式教學(xué)后學(xué)生的成績分布曲線的重心向右偏移,高分區(qū)域(80分以上)人數(shù)比例增加,各年級《數(shù)據(jù)結(jié)構(gòu)》課程成績?nèi)绫?所示,平均成績提高約2個百分點(diǎn)。
競賽式教學(xué)引入程序設(shè)計類課程提升了學(xué)習(xí)興趣,豐富了課后練習(xí),強(qiáng)化了教學(xué)引導(dǎo),學(xué)生的程序設(shè)計能力得到了大幅的提升,教學(xué)效果進(jìn)一步改善。
本文在分析地方高校大學(xué)生程序設(shè)計現(xiàn)狀的基礎(chǔ)上,提出將競賽式教學(xué)引入教學(xué)當(dāng)中,從教學(xué)模式、教學(xué)方法等4個方面探討了競賽式教學(xué)的優(yōu)點(diǎn),結(jié)合教學(xué)實(shí)踐對教學(xué)效果進(jìn)行了對比分析。后續(xù)工作的重點(diǎn)在于競賽式教學(xué)與程序設(shè)計類課程教學(xué)的深度融合,通過教學(xué)實(shí)踐探索競賽式教學(xué)在課堂生態(tài)構(gòu)建中的機(jī)理和作用,以提升學(xué)生的創(chuàng)新能力與專業(yè)素質(zhì),支持高?!皯?yīng)用型”轉(zhuǎn)型。
參考文獻(xiàn):
[1]創(chuàng)新學(xué)生培養(yǎng)模式,助力軟件產(chǎn)業(yè)發(fā)展——天津市大學(xué)軟件學(xué)院蔣秀明院長專訪[J].計算機(jī)教育, 2013(23):4-6.
[2]閻光才.畢業(yè)生就業(yè)與高等教育類型結(jié)構(gòu)調(diào)整[J].北京大學(xué)教育評論,2014,12(4):89-100.
[3]鄧麗,葛衛(wèi)生.多點(diǎn)結(jié)合的程序設(shè)計類課程教學(xué)模式研究[J].成人教育,2019(275):82-83.
[4]趙磊,焦鉻.C語言程序設(shè)計課程教學(xué)中引入ACM/ICPC的探討[J].計算機(jī)時代,2016(1):66-70.
[5]李月軍,李娟,李英玉.融入ACM/ICPC競賽內(nèi)容的數(shù)據(jù)結(jié)構(gòu)教學(xué)改革與實(shí)踐探討[J].內(nèi)蒙古師范大學(xué)學(xué)報,2012,25(3):137-140.
[6]張熠,陳榮欽.以ACM導(dǎo)向構(gòu)建C語言實(shí)驗教學(xué)新平臺的研究與實(shí)踐[J].臺州學(xué)院學(xué)報,2009,31(6):70-74.
[7]王偉嘉,張洪萍,寧亞輝等.關(guān)于《數(shù)據(jù)結(jié)構(gòu)》課程與ACM-ICPC競賽結(jié)合的探討[J].計算機(jī)工程與科學(xué),2014,36(A1):257-259.
[8]陳湘驥,劉才興,徐東風(fēng).ACM/ICPC與可持續(xù)發(fā)展的IT人才培養(yǎng)方式實(shí)踐[J].計算機(jī)教育,2009(20):6-9.
[9]鄺祝芳,余紹軍,楊衛(wèi)民.ACM/ICPC對培養(yǎng)信息學(xué)科創(chuàng)新型人才的作用[J].計算機(jī)教育,2013(3):4-6.
[10]張玉,賈遂民,賈志娟.ACM競賽對學(xué)習(xí)程序設(shè)計的推進(jìn)作用的研究[J].電腦編程技巧與維護(hù),2015(5):27-37.
[11]戴大蒙.“程序設(shè)計”類課程層次型教學(xué)模式的研究與實(shí)踐[J].中國成人教育,2010(9):119-120.
(編輯:魯利瑞)