王維利
摘要:為解決當(dāng)前高職院校中《C語言》課程教學(xué)效果較差、學(xué)生學(xué)習(xí)后仍然不具備相應(yīng)的程序設(shè)計能力的問題,對高職C語言教學(xué)的現(xiàn)狀及內(nèi)在原因進(jìn)行了深入的分析,并以基于工作過程導(dǎo)向的教學(xué)思想為指導(dǎo),從教學(xué)內(nèi)容組織、教學(xué)方式選擇、教學(xué)過程組織等方面對C語言課程的教學(xué)改革進(jìn)行了一系列探索和實踐,以期提高C語言課程的教學(xué)質(zhì)量。
關(guān)鍵詞:C語言;工作過程導(dǎo)向;教學(xué)改革;程序設(shè)計;程序測試與調(diào)試
中圖分類號:TP311.1 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)06-0141-02
Discussion on Teaching Reform of "C Language" in Higher Vocational Colleges
WANG Wei-li
(Shandong College of Information Technology, Weifang 261061, China)
Abstract: In order to solve the problem that the teaching effect of "C language" is quite poor in higher vocational colleges currently and the students ability of programming is still not available after the course, an in-depth analysis on the present situation of the C language teaching and the internal cause is provided. And based on the working process oriented theory, a series of exploration and practice of teaching reform in C language teaching are carried on, in the teaching content organization, teaching method choice, and teaching process organization, to improve the teaching quality of "C Language".
Key words: C Language; working process oriented; teaching reform; program design; program testing and debugging
《C語言》是高職院校計算機、軟件類專業(yè)的一門核心基礎(chǔ)課,在這些專業(yè)的課程體系中占有重要地位,不僅是學(xué)生學(xué)習(xí)《數(shù)據(jù)結(jié)構(gòu)》、《C#程序設(shè)計》、《Java程序設(shè)計》等后續(xù)課程的基礎(chǔ),而且對培養(yǎng)和提高學(xué)生將來工作崗位上所必需的編程、測試、調(diào)試能力有重要作用。但在實際教學(xué)過程中,由于諸多原因的存在,教學(xué)效果往往很不理想,大部分學(xué)生學(xué)完后仍然不能獨立編程、調(diào)試,甚至連最簡單的程序都不能正確寫出來。
針對這種現(xiàn)象,筆者進(jìn)行了深入的思考,并在近幾年的教學(xué)中,進(jìn)行了一些有益的改革嘗試。下面僅將筆者的一些認(rèn)識和做法分享給各位讀者,如有不當(dāng)之處,敬請批評指正。
1 C語言教學(xué)現(xiàn)狀分析
1.1學(xué)生學(xué)習(xí)基礎(chǔ)差,動力和韌勁不足
首先,高職院校的生源種類多,學(xué)生情況參差不齊,但大部分學(xué)生的文化基礎(chǔ)普遍較差。而C語言課程的學(xué)習(xí),需要學(xué)生有一定的數(shù)學(xué)和英語知識作為基礎(chǔ),否則就難以理解和接受解決問題的基本思想;而程序的標(biāo)識符和調(diào)試環(huán)境的認(rèn)識、掌握和使用也是個大問題,并且程序設(shè)計對學(xué)生的邏輯思維能力也有較高的要求,高職學(xué)生在這方面往往有較大欠缺。其次,不少學(xué)生進(jìn)入高職后學(xué)習(xí)目的不明確、態(tài)度不端正,遇到問題缺乏堅持不懈、積極思考的精神,反而容易“知難而退”。這就造成有不少學(xué)生開始時想好好學(xué),但隨著越來越多問題和困難的出現(xiàn),能堅持下去的學(xué)生越來越少,而能以良好的學(xué)習(xí)狀態(tài)堅持到最后的幾乎成了“鳳毛麟角”。
1.2學(xué)生對C語言課程學(xué)習(xí)的興趣不足
目前,絕大部分學(xué)生接觸過的計算機系統(tǒng)軟件或應(yīng)用軟件都具有美觀、易用的用戶界面,而用C語言設(shè)計出的程序往往界面單調(diào)、操作繁瑣,二者對比,學(xué)生就會產(chǎn)生一種心理落差,不看好C語言。另一方面,C語言語法規(guī)則的掌握和應(yīng)用也是學(xué)生學(xué)習(xí)的一大障礙,而程序出錯時,甚至要從整個程序的范圍內(nèi)查找錯誤。這種情況下,如果教師仍然采用傳統(tǒng)的方式組織教學(xué)內(nèi)容和授課,一味地講解語法,不給出一些生動有趣的實例,學(xué)生必然會對C語言逐漸失去學(xué)習(xí)興趣和信心。
1.3缺乏適合高職學(xué)生特點的教學(xué)內(nèi)容組織
首先,傳統(tǒng)的C語言教材往往是以語法介紹為主、輔以例題的方式組織教學(xué)內(nèi)容,這種組織方式不適合高職學(xué)生接受知識的特點,容易使學(xué)生產(chǎn)生畏難情緒,失去學(xué)習(xí)興趣。其次,傳統(tǒng)教材內(nèi)容對涉及的部分語法知識討論得太過深入和細(xì)致,對目前的高職學(xué)生來說,既沒有實用價值,又帶來了不必要的困惑。例如,格式化輸入、輸出函數(shù)printf、scanf對學(xué)生是新事物,學(xué)生要學(xué)會其基本格式和簡單應(yīng)用本來就有些難度,如果再同時加入過多的、深入的語法內(nèi)容,那么就對絕大多數(shù)學(xué)生形成了一個“不可逾越”的障礙。
1.4教學(xué)方式及過程組織不利于程序設(shè)計課程的教學(xué)目標(biāo)實現(xiàn)
傳統(tǒng)的C語言教學(xué)往往是先理論授課、再上機實驗,二者通常是分離的,理論授課時學(xué)生對相關(guān)內(nèi)容缺乏形象、直觀的認(rèn)識和理解,不便于他們接受知識。而且實驗內(nèi)容的編排經(jīng)常是以程序驗證為主,沒有體現(xiàn)出程序分析與設(shè)計的教學(xué)目標(biāo),不利于學(xué)生程序設(shè)計能力的培養(yǎng)和形成。
2 主要改革措施
針對教學(xué)實踐中存在的上述現(xiàn)狀和問題,筆者在近幾年的教學(xué)過程中,進(jìn)行了如下幾方面的嘗試,取得了較好的教學(xué)效果。
2.1在教學(xué)內(nèi)容組織上
首先,打破原有的系統(tǒng)性的知識體系,以工作過程導(dǎo)向為指導(dǎo),創(chuàng)設(shè)一系列工作情境,并按照由易到難、由基本到綜合的原則為每個工作情境分解成幾個工作任務(wù),并以各個工作任務(wù)為主線組織相關(guān)教學(xué)內(nèi)容。這樣,借助一個個工作任務(wù),將所用知識點有機地組織、穿插到一起,融合于一系列工作任務(wù)程序中,學(xué)生既容易理解語法規(guī)則,又能直觀、形象地掌握該如何應(yīng)用。
其次,一切以使學(xué)生學(xué)會程序設(shè)計為目的,將所有知識點分類處理,編程中常用的重點介紹,用得比較少的內(nèi)容以注解的形式給出,并直接舍棄編程中根本用不到的內(nèi)容,以免過多、過濫的信息干擾學(xué)生的學(xué)習(xí),導(dǎo)致他們在學(xué)習(xí)過程中舍本逐末,而沒有真正培養(yǎng)出必需的程序設(shè)計能力。
第三,創(chuàng)設(shè)工作情景時,要充分調(diào)動學(xué)生對本課程的學(xué)習(xí)興趣,如可創(chuàng)設(shè)計算器、成績管理系統(tǒng)、文本編輯器、貪吃蛇、俄羅斯方塊、霓虹燈等情境,計算器情境又可分解為固定運算、多種運算、混合運算的計算器,并在各個情境任務(wù)中逐步納入相關(guān)語法知識點。
2.2在教學(xué)方式及過程組織上
在教學(xué)方式上,力爭實現(xiàn)教、學(xué)、做一體化,最好的教學(xué)地點是多媒體微機室,演示、講解、討論、驗證、應(yīng)用拓展融于一體,便于學(xué)生在模仿中理解和掌握知識,在模仿中提高和拓展程序設(shè)計能力。
在教學(xué)組織上,發(fā)揮學(xué)生小組學(xué)習(xí)的優(yōu)勢,并建立適當(dāng)?shù)母偁幖顧C制。將全班學(xué)生合理分成若干學(xué)習(xí)小組,每組4-6人,組長負(fù)責(zé)組內(nèi)討論、任務(wù)分配及簡單問題的答疑等工作,因此要求組長在學(xué)習(xí)中要走在其他同學(xué)的前面,做好預(yù)習(xí)和相關(guān)準(zhǔn)備工作。教學(xué)過程和課程考核評價主要以小組為單位進(jìn)行,如課堂提問時從每個小組找一名同學(xué)回答,討論時也是各小組派代表發(fā)言,小組與小組的表現(xiàn)情況進(jìn)行評比,從而激發(fā)學(xué)生為小組榮譽而努力的學(xué)習(xí)動力。
為幫助學(xué)生循序漸進(jìn)地培養(yǎng)和提高程序設(shè)計能力,實驗內(nèi)容的準(zhǔn)備分三個層次:一是給出正確的源程序,要求學(xué)生分析程序結(jié)果并上機驗證;二是只給出程序的一部分,關(guān)鍵部分由學(xué)生根據(jù)功能要求進(jìn)行補充,并上機調(diào)試正確;三是只給出程序功能,要求學(xué)生自己設(shè)計算法,并寫出完整程序、上機調(diào)試正確。通過這樣的實驗內(nèi)容編排,讓學(xué)生在模仿中獲取知識,在模仿中創(chuàng)新。
2.3將程序設(shè)計全面能力的培養(yǎng)貫穿于課程始終
一是注重培養(yǎng)和提高學(xué)生在解決問題過程中的算法設(shè)計能力。C語言的學(xué)習(xí)不只是語法規(guī)則的學(xué)習(xí)和應(yīng)用,算法設(shè)計才是程序設(shè)計的根本。在以往教學(xué)中發(fā)現(xiàn)大部分學(xué)生不只是寫錯程序,而是根本不會寫程序,連解決問題的思路都沒有,所以要想辦法使學(xué)生從根本上解決這個難題。教學(xué)實踐中,除了舉例講解算法的描述、設(shè)計方法外,每次課結(jié)束時都會要求學(xué)生對下次課的例題進(jìn)行預(yù)習(xí)、完成相關(guān)的算法思考和設(shè)計,再次上課時從中選出好的算法進(jìn)行程序設(shè)計。
二是強調(diào)程序調(diào)試方法和技巧的掌握和應(yīng)用。其他課程的知識,學(xué)生學(xué)習(xí)后理解、掌握得如何,往往需要教師對其完成的作業(yè)或任務(wù)進(jìn)行檢查后才能得知,而程序設(shè)計課程則可以通過上機執(zhí)行程序進(jìn)行驗證;如果程序中出現(xiàn)錯誤也可以通過上機調(diào)試的方法進(jìn)行檢查和改錯。因此,任課教師要在教學(xué)過程中適時穿插有關(guān)程序測試、調(diào)試方法等內(nèi)容的講授、訓(xùn)練。
三是要求學(xué)生多動手、多動腦。學(xué)生在作業(yè)中經(jīng)常出現(xiàn)一些違反語法規(guī)則的現(xiàn)象,產(chǎn)生這種問題的原因有兩個方面:一是學(xué)生對語法規(guī)則的理解、掌握不夠;二是學(xué)生缺少對正確程序或者說產(chǎn)生錯誤的感性認(rèn)識。要增強學(xué)生對程序錯誤的感性認(rèn)識,最好的辦法是在多媒體機房中實施教學(xué),講練結(jié)合,教師再加以巡回指導(dǎo)、講解和點評。
C語言程序設(shè)計是實踐性很強的課程,學(xué)生的實踐操作能力非常重要,學(xué)生既要動手寫程序,還要親自上機運行、測試、調(diào)試程序,這樣才能形成全面的程序設(shè)計能力。
3 結(jié)束語
高職C語言教學(xué)改革是一項長期的工作,需要任課教師根據(jù)學(xué)生的實際情況,不斷在教學(xué)實踐中探索、改進(jìn)、總結(jié)、提升。只要充分發(fā)揮“學(xué)生為主體,教師為主導(dǎo)”的積極作用,按照適合學(xué)生、課程特點的原則組織教學(xué)內(nèi)容、教學(xué)過程,重視學(xué)生動手實踐環(huán)節(jié),一定可以取得良好的教學(xué)效果。
參考文獻(xiàn):
[1] 丁輝. 高職C語言程序設(shè)計教學(xué)改革研究[J]. 計算機教育, 2014(3).
[2] 池云. 高職C語言程序設(shè)計教學(xué)改革的研究[J]. 遼寧行政學(xué)院學(xué)報, 2011(4).
[3] 屈喜琴,石卉,陳忠貴. 高職高專《C語言程序設(shè)計》教學(xué)改革探索[J]. 軟件導(dǎo)刊, 2012(6).