摘要:通過問卷調(diào)查的方式指出C語言程序設(shè)計教學(xué)過程中存在的問題,結(jié)合CDIO工程教學(xué)理念,從教學(xué)內(nèi)容、教學(xué)方法、教學(xué)手段和考核評價方式4個方面提出改革措施。
關(guān)鍵詞:應(yīng)用型;C語言;教學(xué)改革
0、引言
C語言程序設(shè)計是計算機科學(xué)與技術(shù)、網(wǎng)絡(luò)工程、通信工程、軟件工程、信息管理與信息系統(tǒng)、游戲設(shè)計等相關(guān)專業(yè)的必修課程,也是數(shù)據(jù)結(jié)構(gòu)與算法、C++程序設(shè)計、數(shù)據(jù)庫原理與應(yīng)用、PHP程序設(shè)計、Javascript等后續(xù)相關(guān)專業(yè)課的基礎(chǔ),在計算機相關(guān)專業(yè)的課程體系中起著重要作用,國內(nèi)高校也在越來越重視該課程的教學(xué)。C語言已成為學(xué)生進入大學(xué)后接觸的第一門專業(yè)必修課程,也是學(xué)生學(xué)習(xí)的第一門編程語言。如何培養(yǎng)學(xué)生的學(xué)習(xí)興趣,提高學(xué)生分析與解決問題的能力和團隊協(xié)作能力,進而培養(yǎng)應(yīng)用型、高水平的IT人才已成為該課程教學(xué)改革的重點。
近年來,C語言的教改工作已取得一定成績,提出了項目教學(xué)法、任務(wù)驅(qū)動教學(xué)法、創(chuàng)新性趣味化教學(xué)法等,但這與我們培養(yǎng)應(yīng)用型、高水平IT人才的目標(biāo)仍存在一定差距。為了達到這個目標(biāo),我們將TOPCARES-CDIO工程教學(xué)理念融入本課程的教學(xué)過程中,并結(jié)合學(xué)校學(xué)生的實際情況改善教學(xué)狀況,培養(yǎng)具備高技術(shù)、高素質(zhì)、符合現(xiàn)代企業(yè)需求的應(yīng)用型高科技人才。
1、c語言教學(xué)中存在的問題
我們對201l級信息安全1班、2班和計算機應(yīng)用1班、2班、3班共164名大專學(xué)生進行了匿名問卷調(diào)查,其中信息安全1班、2班共77人,計算機應(yīng)用1班、2班、3班共87人。問卷以教學(xué)班為單位發(fā)放,共發(fā)放164份,收回有效問卷164份,有效問卷率100%。問卷的設(shè)置和統(tǒng)計結(jié)果見表1。
對表1的調(diào)查統(tǒng)計結(jié)果進行詳細(xì)分析,可以發(fā)現(xiàn),92%的學(xué)生認(rèn)識到C語言的重要性,只有16%的學(xué)生基本達到應(yīng)有的C語言編程能力,主要原因歸納如下:
(1)教學(xué)內(nèi)容存在問題。問卷統(tǒng)計結(jié)果表明,大部分學(xué)生認(rèn)為理論課時與實踐課時的分配不合理,本課程要求學(xué)生記憶大量的語法規(guī)則、語句格式,容易使學(xué)生產(chǎn)生畏難心理,進而對c語言失去信心,因此教學(xué)內(nèi)容的選取和組織顯得至關(guān)重要。
(2)教學(xué)方法和教學(xué)手段存在問題。問卷統(tǒng)計結(jié)果表明,84%的學(xué)生沒有學(xué)好C語言,其中44%的學(xué)生是上課聽不懂,56%的學(xué)生即使能看懂程序,自己編寫程序時也無從下手。C語言所學(xué)知識都比較抽象、枯燥、不易理解,很多教師都采取“先理論,后實踐”的教學(xué)模式,以自我為中心進行授課,對學(xué)生的作業(yè)不能及時做出反饋,最終導(dǎo)致學(xué)生興趣下降、教學(xué)效果不理想。
(3)學(xué)生的學(xué)習(xí)方法存在問題。問卷統(tǒng)計結(jié)果表明,74%的學(xué)生遇到問題時通過直接上網(wǎng)搜索解決,76%的學(xué)生完成作業(yè)時采取直接抄襲或者上網(wǎng)搜索,73%的學(xué)生表示不會利用課余時間進行編程練習(xí)。
(4)考核評價方式存在問題。問卷統(tǒng)計結(jié)果表明,69%的學(xué)生認(rèn)為目前的考核方式不能有效地考查學(xué)生的C語言編程能力,考核過程中存在不公平現(xiàn)象。例如,對于抄襲作業(yè)的評定方法,期末考核方式的選擇,平時成績和期末成績所占比例大小等。
2、具體教學(xué)改革
在C語言程序設(shè)計教學(xué)中,應(yīng)該將培養(yǎng)學(xué)生分析與解決問題能力、團隊協(xié)作能力作為主線,逐步引入c語言知識,提高C語言編程能力,進而培養(yǎng)應(yīng)用型、高水平的人才。因此,需打破原有的教學(xué)模式,結(jié)合上文中提出的問題,從教學(xué)內(nèi)容、教學(xué)方法、教學(xué)手段和考核評價方式人手,結(jié)合學(xué)生的實際情況,制訂行之有效的c語言教學(xué)改革措施。
2.1 教學(xué)內(nèi)容
以培養(yǎng)應(yīng)用型IT人才為原則,對c語言程序設(shè)計課程的教學(xué)內(nèi)容進行整合和分類,從應(yīng)用出發(fā),分散重難點,把c語言具體教學(xué)內(nèi)容整合成表2所示的4大模塊。強調(diào)以“用”為主,將數(shù)據(jù)類型、運算符、表達式等抽象的知識分散到各個模塊,即用即學(xué);各個模塊對應(yīng)一個模塊項目和多個編程題目,項目選取與學(xué)生息息相關(guān)的問題,如成績管理系統(tǒng)、學(xué)籍管理系統(tǒng)、學(xué)生選課系統(tǒng)等,重在培養(yǎng)學(xué)生的動手能力;在C語言初級應(yīng)用階段,我們還將程序編程風(fēng)格[納入教學(xué)內(nèi)容,旨在培養(yǎng)學(xué)生良好的編程風(fēng)格及習(xí)慣。
2.2 教學(xué)方法和教學(xué)手段
基于CDIO工程教育理念,我們以“項目為導(dǎo)向”組織教學(xué),通過任務(wù)驅(qū)動,將相關(guān)理論知識引入教學(xué)過程中。課堂講授堅持“精講多練”、“即學(xué)即用”、實用為目標(biāo)的綜合性原則,采用案例驅(qū)動的教學(xué)模式,通過案例來引導(dǎo)學(xué)生分析和解決實際問題,并最終用C語言來實現(xiàn),為培養(yǎng)應(yīng)用型人才打下基礎(chǔ)。我們將學(xué)生分為2-3人的小組,通過討論完成模塊項目的設(shè)計、編碼、調(diào)試和運行,培養(yǎng)學(xué)生的團隊協(xié)作能力。
教學(xué)實施過程中,以學(xué)生為主體,鼓勵學(xué)生自主學(xué)習(xí),加強職業(yè)能力的訓(xùn)練,運用啟發(fā)引導(dǎo)、任務(wù)引領(lǐng)、問題導(dǎo)向、分組討論、協(xié)同教學(xué)等多種互動式教學(xué)方法,完成課程教學(xué)任務(wù)。我們還利用網(wǎng)絡(luò)教學(xué)平臺向?qū)W生提供豐富的教學(xué)資源,如課件、案例、教學(xué)大綱、網(wǎng)絡(luò)資源等,學(xué)生還可以利用網(wǎng)絡(luò)教學(xué)平臺提交作業(yè)。
為了提高學(xué)生的C語言編程能力,我們引入在線評測系統(tǒng)(Online Judge System,簡稱OJ)。OJ可以實現(xiàn)在線提交程序、實時評測、在線考試、討論等功能。我們可以將平時實驗和課后作業(yè)公布在OJ上,學(xué)生通過OJ完成作業(yè)和實驗,既可以保證評測結(jié)果的公平性和實時性,也可以減輕教師的工作負(fù)擔(dān)。教師從瑣碎的評測工作中解放出來之后,可以通過OJ討論區(qū)或者QQ聊天群實時解答學(xué)生課后遇見的編程問題,從而提高學(xué)生的學(xué)習(xí)興趣。此外,學(xué)生通過在OJ上做題,排名不斷上升,產(chǎn)生成就感,隨后會更主動地去完成更多的題目,從而形成愉悅的學(xué)習(xí)過程。
為了提高程序的可讀性、可維護性、可重用性,我們引入Indent開源軟件,它可以對c語言程序進行格式化,協(xié)助教師指導(dǎo)學(xué)生規(guī)范編程風(fēng)格,促使學(xué)生養(yǎng)成良好的編程習(xí)慣。具有良好編程風(fēng)格的程序,可以讓程序員在很短時間內(nèi)看清程序結(jié)構(gòu),理解設(shè)計思路,從而提高編程效率、降低出錯率。
2.3 考核評價方式
以CDIO倡導(dǎo)的“過程評價”為基礎(chǔ),結(jié)合本課程的實際情況,制訂行之有效的考核評價措施,包括以下兩個部分:形成性考核和終結(jié)性考核。形成性考核從學(xué)生的出勤、日常表現(xiàn)、作業(yè)、測試、項目完成情況及完成質(zhì)量對學(xué)生進行全方位的考核,占總成績的70%;終結(jié)性考核占總成績的30%,期末在OJ上以上機考試的形式完成,是對本課程所學(xué)內(nèi)容的綜合性考核,能有效反映學(xué)生的C語言編程能力。
在c語言程序設(shè)計課程中,抄襲是一個無法回避的問題。國外教育機構(gòu)針對c語言課程代碼抄襲現(xiàn)象進行的調(diào)查表明:高達85.4%的學(xué)生承認(rèn)抄襲過別人的編程作業(yè)。如果抄襲不能得到有效的檢測,那些抄襲的學(xué)生不被制裁,學(xué)生學(xué)習(xí)的積極性就會降低,我們提出的考核方式就達不到預(yù)期的效果,也不能真實地反映教學(xué)改革的成果。所以,我們引入抄襲檢測。
抄襲檢測就是檢測一個程序是否是通過對另一個程序的修改而來的。兩個程序的相似度越高抄襲的嫌疑越大。首先,我們要從OJ系統(tǒng)上收集學(xué)生提交的程序;接著,使用抄襲檢測工具進行檢測,通過對學(xué)生的程序代碼進行兩兩比較,得出相似度;最后,獲取存在抄襲嫌疑的代碼,并根據(jù)題目難易程度進行一一確認(rèn)。這樣既能保證考核的公正性,也能減輕教師的工作負(fù)擔(dān)。
為了促使學(xué)生養(yǎng)成良好編程風(fēng)格,我們將其納入課程考評范疇,只要涉及程序代碼考核,編程風(fēng)格好壞也將影響學(xué)生成績的評定。
3、結(jié)語
結(jié)合多年的課堂教學(xué)經(jīng)驗和學(xué)生的實際情況,以培養(yǎng)應(yīng)用型人才為目標(biāo),我們提出了C語言程序設(shè)計課程教學(xué)改革方案,依托學(xué)校的網(wǎng)絡(luò)教學(xué)平臺、在線評測系統(tǒng)、111dent開源軟件和抄襲檢測軟件,并實踐于成都東軟學(xué)院2012級信息安全和計算機應(yīng)用專業(yè)的c語言程序設(shè)計課程教學(xué),教學(xué)效果顯著。教學(xué)實踐證明,這種教改方案不僅提高學(xué)生的c語言編程能力,還提高了學(xué)生分析與解決問題能力、團隊協(xié)作能力,為培養(yǎng)符合現(xiàn)代企業(yè)需求的應(yīng)用型高科技人才打下堅實基礎(chǔ)。接下來,我們將根據(jù)實際教學(xué)情況,對本文提出的C語言教改措施進行進一步的完善。