肖丹鳳 魏零
【摘 要】分析當(dāng)前C語言程序設(shè)計教學(xué)存在的問題,以及該課程的特點,找出問題癥結(jié)的所在,提出以能力培養(yǎng)的為導(dǎo)向的C語言程序設(shè)計教學(xué)改革研究。
【關(guān)鍵詞】能力培養(yǎng) C語言程序設(shè)計 教學(xué)改革 項目導(dǎo)向 自主學(xué)習(xí)
【中圖分類號】G 【文獻(xiàn)標(biāo)識碼】A
【文章編號】0450-9889(2016)07C-0139-02
C語言具有功能豐富、表達(dá)能力強(qiáng)、方便使用、應(yīng)用面廣、目標(biāo)程序效率高、可移植性好的特點,因此很多高校的理工科專業(yè)都將其作為計算機(jī)程序設(shè)計類課程的通識基礎(chǔ)課,同時也是計算機(jī)專業(yè)的必修專業(yè)基礎(chǔ)課,是后續(xù)數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο蟪绦蚓幊獭④浖こ痰日n程的基礎(chǔ)。通過對本門課程的學(xué)習(xí),學(xué)生可以掌握程序設(shè)計中分析問題、解決問題的能力,提高計算機(jī)應(yīng)用能力和綜合能力。但是,教學(xué)實際中存在不少的問題,導(dǎo)致難以培養(yǎng)學(xué)生的程序設(shè)計能力與創(chuàng)新能力,造成畢業(yè)后難以適應(yīng)工作崗位。對此,筆者所在的教研室以應(yīng)用型技能人才培養(yǎng)為教學(xué)目的,分析學(xué)生的現(xiàn)狀以及C語言程序設(shè)計課程的特點,提出以能力培養(yǎng)為導(dǎo)向的C語言程序設(shè)計的教學(xué)模式。
一、C語言程序設(shè)計教學(xué)現(xiàn)狀
(一)教學(xué)內(nèi)容多而散。C語言知識點多,使用靈活,一般的教材前面幾章都是介紹概念、名詞、語法等,而這些又是該課程的基礎(chǔ),任課教師通常采用“先理論,后實例,再習(xí)題”的傳統(tǒng)教學(xué)模式,先詳細(xì)介紹C語言中的數(shù)據(jù)類型、運算符、函數(shù)語句等基本內(nèi)容,而這些內(nèi)容往往是比較枯燥無味的。當(dāng)教師一節(jié)又一節(jié)地講述著枯燥的基本概念,難以理解的語法等后,學(xué)生感受不到C語言的強(qiáng)大功能和魅力所在,相反容易產(chǎn)生枯燥乏味、疲倦的心理,學(xué)習(xí)激情大打折扣,給他們的學(xué)習(xí)帶來了困惑。
(二)課時太少。桂林航天工業(yè)學(xué)院本科學(xué)生的C語言程序課程為48課時,理論30課時,實踐18課時。對于首次接觸計算機(jī)程序設(shè)計語言課的學(xué)生而言,他們?nèi)狈τ嬎銠C(jī)語言思維能力,難以在有限的課時內(nèi)學(xué)好。教師通常為了完成教學(xué)大綱規(guī)定的知識點,一直趕教學(xué)進(jìn)度,一堂課下來,講授大量的知識點?!疤铠喿邮健钡慕虒W(xué),學(xué)生被動地接受,而學(xué)生因趕不上教師的進(jìn)度,出現(xiàn)即使想聽也聽不明白的狀況。久而久之,出現(xiàn)部分學(xué)生因聽不懂而不想聽,越不想聽就越跟不上進(jìn)度而越學(xué)不懂的惡性循環(huán),最終以睡覺、玩手機(jī)來打發(fā)上課時間。
(三)實驗課時得不到充分使用。由于學(xué)生課堂上所學(xué)的內(nèi)容沒有得到充分的消化,加之學(xué)生學(xué)習(xí)缺乏積極主動性,沒有課前預(yù)習(xí)課后復(fù)習(xí),學(xué)生普遍存在“重課堂,輕實驗”的態(tài)度,課前沒有充分準(zhǔn)備,到了機(jī)房才開始讀題,然后再著手寫程序,只能對教材上的簡單例子進(jìn)行驗證,需要獨立完成程序編寫常常是一頭霧水,不知如何下手。另外,程序出錯提示為英文,部分學(xué)生英語基礎(chǔ)差,一旦碰到程度調(diào)試出錯,就不知從何解決,缺乏刻苦鉆研的精神,甚至出現(xiàn)畏懼英文的反應(yīng),實驗課上依賴性強(qiáng),一遇見錯誤就問老師,等待老師解決問題,從不想辦法自己解決,不培養(yǎng)解決問題的能力。即使老師講解完了,下次碰到類似的問題一樣解決不了,達(dá)不到舉一反三的效果。這樣的實驗課下來,部分學(xué)生一道題都做不完,白白浪費了上機(jī)的時間。
(四)考核方式單一。C語言課程大多還是采用傳統(tǒng)的筆試形式,筆試主要采用選擇、填空及簡單的程序設(shè)計題。甚至有部分老師以筆試一錘定音,很多學(xué)生為了不掛科,沿用中學(xué)階段應(yīng)試性的學(xué)習(xí),只注重基本語法、概念等相關(guān)知識,而忽視了程序設(shè)計能力的培養(yǎng),學(xué)生缺乏分析問題、解決問題的邏輯思維能力,從而失去了學(xué)習(xí)C語言程序設(shè)計課程的本意,嚴(yán)重偏離了應(yīng)用型人才培養(yǎng)的目標(biāo)。
二、以能力培養(yǎng)為主導(dǎo)的教學(xué)改革
針對上述問題,筆者所在的教研室經(jīng)過長期的教學(xué)探索,提出了以培養(yǎng)能力為導(dǎo)向的教學(xué)模式,打破常規(guī)的“先理論后實踐”的教學(xué)模式,由“重課堂、輕實踐”轉(zhuǎn)變?yōu)椤罢n堂實踐雙管齊下”。在整個C語言程序設(shè)計課程的教學(xué)過程中,從教師的教與學(xué)生的學(xué)兩方面下工夫,將培養(yǎng)學(xué)生邏輯思維能力、分析問題能力、解決問題能力作為主線,在培養(yǎng)能力的過程當(dāng)中逐步引入語言知識,提高語言應(yīng)用能力。
(一)項目驅(qū)動的教學(xué)方式。任課教師綜合考慮學(xué)生的基礎(chǔ)與該課程的課時數(shù),結(jié)合專業(yè)特點,對授課內(nèi)容進(jìn)行精心設(shè)計。課前教師吃透課本,對課本內(nèi)容進(jìn)行調(diào)整,圍繞教學(xué)任務(wù)精心設(shè)置教學(xué)內(nèi)容,避免照本宣科。任課教師以程序設(shè)計為主線,以能力培養(yǎng)為導(dǎo)向,采用項目驅(qū)動的教學(xué)方式,設(shè)計環(huán)環(huán)相扣的具體案例,將零散的知識點融入具體的實例講解中,打破“先基礎(chǔ)后實例”的教學(xué)模式,避免“純理論”的教學(xué)。通過設(shè)計一個具體的實例貫穿整個教學(xué)內(nèi)容,采用循序漸進(jìn)、由簡單到難的方式,通過問題的深化和功能的擴(kuò)展,拓寬知識的廣度和深度。比如,學(xué)生成績處理系統(tǒng)的實現(xiàn)。首先通過簡單的給定一個學(xué)生的兩科成績,計算出其平均分。通過分析,需要將學(xué)生的成績保存在計算機(jī)中,從而引出變量的定義、數(shù)據(jù)類型、數(shù)據(jù)表達(dá)式、輸入輸出語句等。等學(xué)生熟悉簡單的順序結(jié)構(gòu)程序的編寫之后,將問題深化,以學(xué)生的成績來評定其等級,從而引出選擇結(jié)構(gòu)。再將問題進(jìn)一步深化,以評價多個學(xué)生的成績等級來引出循環(huán)結(jié)構(gòu)。為方便多名學(xué)生成績的存儲統(tǒng)計,引出數(shù)組及指針的相關(guān)內(nèi)容,最后可以通過結(jié)構(gòu)體類型來實現(xiàn)優(yōu)化等。整個教學(xué)內(nèi)容融合為一體,由簡單到復(fù)雜,以解決具體問題為導(dǎo)向,通過培養(yǎng)學(xué)生的分析能力、解決問題的能力,達(dá)到“學(xué)用結(jié)合”,最后能運用計算機(jī)語言解決具體的實際問題。
(二)提高學(xué)生的自主學(xué)習(xí)性,激發(fā)學(xué)生學(xué)習(xí)興趣。教學(xué)過程中,教師應(yīng)該以學(xué)生為中心,以學(xué)生為主導(dǎo)。教師在課前做好充分的準(zhǔn)備工作,結(jié)合其專業(yè)特點,努力抓住學(xué)生的興趣點來選擇實例。第一堂課教師先演示生動形象的實例,通過實例來展示C語言的無窮魅力,吸引學(xué)生的眼球,讓學(xué)生一開始就對該課程產(chǎn)生濃厚的學(xué)習(xí)興趣,實現(xiàn)“要我學(xué)”到“我要學(xué)”的蛻變,由“被動學(xué)”變?yōu)椤爸鲃訉W(xué)”和“樂意學(xué)”。然后教師再進(jìn)一步闡述學(xué)習(xí)該課程的目的——通過該課程的學(xué)習(xí)來達(dá)到使用計算機(jī)解決問題,引出以能力培養(yǎng)為導(dǎo)向的目的,凸顯出學(xué)生的主導(dǎo)地位。在教學(xué)過程中,教師應(yīng)該根據(jù)學(xué)生的基礎(chǔ)來設(shè)計教案,按照學(xué)生學(xué)的規(guī)律進(jìn)行教學(xué),即學(xué)生如何學(xué),老師就該如何教,力爭達(dá)到教與學(xué)的統(tǒng)一。教師可以考慮將教材中的實例用貼近生活形象生動的比喻來講解,讓難以理解的知識點變得通俗易懂,激發(fā)學(xué)生的學(xué)習(xí)興趣。比如在講授將兩個變量a和b實現(xiàn)交換時,學(xué)生可能一下想不到解決的方法,但如果我們先舉一個生活的小例子:假定現(xiàn)在有兩杯飲料,一杯橙汁和一杯可樂,現(xiàn)在需要對兩個杯子中飲料進(jìn)行交換,如何實現(xiàn)?學(xué)生立刻會聯(lián)想到借助于一個空杯就可以實現(xiàn)了。教師順著學(xué)生的思路講解,C語言中變量的交換原理也跟飲料的交換一樣,假定用一個中間變量t來相替代一個空杯,則使用語句:t=a;a=b;b=t來實現(xiàn)。這樣學(xué)生很快就明白了,而且會給學(xué)生留下深刻的印象,不易忘記。
(三)緊抓上機(jī),注重學(xué)生動手能力的提高。計算機(jī)的課程具有很強(qiáng)的實踐性,通常計算機(jī)知識的掌握是“百看不如一練”,C語言更是如此。很多學(xué)生在課堂上老師講解能夠聽懂,課本中的例題也能看懂,可一到機(jī)房碰到實際問題就是一頭霧水。究其原因,就是練得太少,程序?qū)懙锰?。上機(jī)可以很好地驗證學(xué)生對知識掌握程度,鍛煉學(xué)生的編程能力。桂林航天工業(yè)學(xué)院目前該課程的課時有限,理論30課時,實踐18課時。如何在有限的時間里完成更多的任務(wù),這要求教師從實驗設(shè)計與實驗輔導(dǎo)兩方面進(jìn)行改進(jìn):一是要求教師和學(xué)生實驗前做好充分準(zhǔn)備,明確每次實驗的目的。教師合理設(shè)計實驗內(nèi)容,可以根據(jù)學(xué)生能力的差異,設(shè)計不同難度的實驗題,即基本題和挑戰(zhàn)題?;绢}為必做題,是對基本知識的鞏固與強(qiáng)化,要求大家獨立編寫程序,調(diào)試程序。挑戰(zhàn)題為選做題,綜合性高,供學(xué)有余力的同學(xué)選做,可以單獨完成,也可以小組合作,編程能力強(qiáng)的同學(xué)可以帶動基礎(chǔ)差的同學(xué)。設(shè)置獎勵機(jī)制,完成挑戰(zhàn)題的學(xué)生可以加分,這樣既能調(diào)動學(xué)生的積極性、創(chuàng)新性,也能培養(yǎng)學(xué)生的團(tuán)隊合作能力。二是實驗輔導(dǎo)方面,目前上機(jī)的環(huán)境為Visual C++,所有的提示都是英文的,為方便學(xué)生快速找到程序出錯的原因,教師可將常見的出錯提示編成講義或做成課件發(fā)給學(xué)生。一旦學(xué)生遇到問題,可以先自行對照講義找到出錯的原因,從而快速解決問題。另外,教師也應(yīng)該對學(xué)生上機(jī)操作中遇到的問題和常犯的操作錯誤進(jìn)行歸納總結(jié),及時有效地清除學(xué)生學(xué)習(xí)過程中的障礙。端正學(xué)生的上機(jī)態(tài)度,正確引導(dǎo)其上機(jī)興趣,充分調(diào)動其積極性,堅決杜絕學(xué)生利用上機(jī)時間上網(wǎng)、游戲、娛樂等情況的發(fā)生,從而達(dá)到事半功倍的效果。
此外,教師應(yīng)該檢查每個同學(xué)的編寫程序,并對好的程序給予表揚與展示,指出其優(yōu)缺點,并提出改進(jìn)的思路。
(四)構(gòu)建網(wǎng)絡(luò)教學(xué)資源,提供課外學(xué)習(xí)環(huán)境。在注重傳統(tǒng)教學(xué)的同時,應(yīng)重視網(wǎng)絡(luò)教學(xué)的輔助作用。針對本課程教學(xué)的特點,教師應(yīng)建設(shè)立體化的教學(xué)資源,將課本知識與網(wǎng)絡(luò)資源優(yōu)化整合,將所用教材、實驗、電子教案、網(wǎng)絡(luò)課件和網(wǎng)絡(luò)教學(xué)支撐平臺等教學(xué)資源形成一體,通過文本、圖形、圖像、動畫、交互、仿真、視頻等多種媒體方式展現(xiàn)各個知識點,充分強(qiáng)調(diào)各自的特點。任何學(xué)生在任何時候、任何地方都能借助網(wǎng)絡(luò)自主學(xué)習(xí),將課堂教學(xué)延伸到課外,突破“時間空間”的限制。通過課程論壇實現(xiàn)教師與學(xué)生、學(xué)生與學(xué)生互動討論,及時解決學(xué)生學(xué)習(xí)過程中遇到的問題。
(五)改變傳統(tǒng)的考核機(jī)制,建立以能力為主的考核方式。課程考核是檢驗學(xué)生學(xué)習(xí)效果、評價學(xué)生學(xué)習(xí)成績的重要環(huán)節(jié),而考試則是檢驗學(xué)生對知識掌握的常用手段。傳統(tǒng)的教學(xué)都是采用筆試,一張試卷定高低,從而導(dǎo)致采用應(yīng)試型學(xué)習(xí),學(xué)與用出現(xiàn)分離,學(xué)生靠死記硬背來爭取高分,忽視學(xué)生編程能力的培養(yǎng)。為解決“會考試”和“會編程”不一致的矛盾,需要建立以培養(yǎng)學(xué)生編程能力為本的考試方式。教師在上第一堂課時就明確告訴學(xué)生該課程采用的考核方式,基礎(chǔ)知識與編程能力的結(jié)合,建議筆試成績占40%,上機(jī)實驗成績占40%,平時成績占20%。筆試主要是考核一些最基本、關(guān)鍵的概念為主,題型主要包括填空、選擇、讀程序?qū)懡Y(jié)果、程序改錯、編寫程序等。
另外,還可以鼓勵學(xué)生參加科目競賽與全國計算機(jī)等級二級考試,學(xué)生通過備戰(zhàn)二級考試可以加深對該課程的學(xué)習(xí),同時也可以為以后的就業(yè)增加一個砝碼。
【參考文獻(xiàn)】
[1]葉健華,黎峰.“項目驅(qū)動+案例教學(xué)”模式在C語言教學(xué)中的應(yīng)用[J].濟(jì)南職業(yè)學(xué)院學(xué)報,2009(6)
[2]李翠玉,劉彤,周勇.應(yīng)用型工科院校C語言程序設(shè)計課程教學(xué)改革的探討[J].福建電腦,2014(8)
[3]陳蓮君,朱晴婷.培養(yǎng)能力為主線的C語言程序設(shè)計教學(xué)研究[J].計算機(jī)教育,2011(7)
[4]胡春安.基于信息技術(shù)的公共基礎(chǔ)課輔助教學(xué)模式的研究[J].江西理工大學(xué)學(xué)報,2011(6)
[5]羅強(qiáng),鐵治欣.C程序設(shè)計成績與編程時間關(guān)系分析研究[J].浙江理工大學(xué)學(xué)報,2013(1)
【基金項目】桂林航天工業(yè)學(xué)院2016年度教學(xué)改革研究項目基金資助(2016JB08)
(責(zé)編 盧 雯)