甄 華(河南工業(yè)貿(mào)易職業(yè)學(xué)院,鄭州 450000)
C語言課程在高職院校教學(xué)中存在的問題與改革措施
甄 華
(河南工業(yè)貿(mào)易職業(yè)學(xué)院,鄭州 450000)
摘 要:學(xué)生開始學(xué)習(xí)C語言,思維習(xí)慣還不適應(yīng)對C語言的學(xué)習(xí)。加上學(xué)習(xí)C語言時還沒有接觸物理層面的器件不知道C語言用在哪里,不能堅持學(xué)習(xí)。本研究就是通過明確學(xué)習(xí)目的、分散難點、降低學(xué)習(xí)C語言的難度,以真實的測溫工程引導(dǎo)學(xué)生學(xué)習(xí)興趣,使堅持順利完成對C語言的學(xué)習(xí)。
關(guān)鍵字:C語言;高職教學(xué);測溫工程;改革措施
由于C語言簡潔緊湊、具有結(jié)構(gòu)化的控制語句、生成的目標(biāo)代碼質(zhì)量高、具有良好的移植性和靈活性,都選擇C語言作為首個計算機教學(xué)語言。C語言除了具有以上高級語言的優(yōu)點外還允許直接訪問物理地址,更適應(yīng)于底層應(yīng)用軟件的開發(fā),是嵌入式電子產(chǎn)品開發(fā)、芯片設(shè)計等基礎(chǔ); Linux的內(nèi)核也主要是以C語言寫的。基于以上特點,即使面向?qū)ο蟪绦蛟O(shè)計流行的今天,許多公司依然把C語言作為程序設(shè)計的首選語言,開發(fā)解決本領(lǐng)域的應(yīng)用程序。
然而,C語言教學(xué)現(xiàn)狀不能令人滿意,C語言是學(xué)生進入大學(xué)學(xué)習(xí)的第一門計算機語言,加上C語言本身的抽象性、用語句表達(dá)邏輯關(guān)系比較復(fù)雜,加之以往在C語言教學(xué)中不能與解決實際問題緊密結(jié)合,造成學(xué)生學(xué)習(xí)C語言過程感到困難,目的又不明確,不能從學(xué)習(xí)C語言中獲得成就感,降低了學(xué)習(xí)興趣,學(xué)習(xí)到最后能夠堅持下來的學(xué)生比例很低。往往導(dǎo)致學(xué)習(xí)C語言開始階段躊躇滿志,中間階段困惑遍地都是,最后階段不了了之的現(xiàn)象。嚴(yán)重影響了C語言的教學(xué)質(zhì)量和教學(xué)效果。
本研究主要從C語言的特點和學(xué)生以往學(xué)習(xí)中出現(xiàn)的問題出發(fā),通過強化知識點、分散難點、以實際測溫工程問題作為C語言學(xué)習(xí)承載媒介,通過激發(fā)學(xué)生學(xué)習(xí)興趣,嚴(yán)格要求學(xué)生、充分信任學(xué)生,鼓勵學(xué)生堅持學(xué)習(xí),發(fā)揮師愛在教學(xué)過程中的作用,促使學(xué)生完成C語言的教學(xué),最終達(dá)到學(xué)生在學(xué)習(xí)過程中目的清晰、學(xué)有興趣、學(xué)以致用的目的,幫助學(xué)生熟悉C語言在工程中的使用。提高學(xué)生的綜合職業(yè)能力和素質(zhì),為順利就業(yè)打下一個良好的基礎(chǔ)。
3.1 歸納出C語言的知識點
為了把C語言的知識梳理清晰便于學(xué)生記憶,我們把C語言的知識分為靜態(tài)的知識和動態(tài)的知識。
3.1.1 靜態(tài)的知識[1]
(1)一些概念如:運算符、標(biāo)識符、關(guān)鍵字、數(shù)據(jù)類型、表達(dá)式、語句、數(shù)組、函數(shù)、指針等,像運算符、標(biāo)識符、數(shù)據(jù)類型等概念容易理解,但是另一類概念(還包含用法)如二位數(shù)組及引用、指針、結(jié)構(gòu)體與共用體等概念都是新接觸的概念并且抽象,它們的使用還涉及到計算機內(nèi)部的工作過程,難度比較大,需要反復(fù)通過實例讓學(xué)生理解定義,在理解的基礎(chǔ)上在嘗試著應(yīng)用。在這部分教學(xué)中需要重點加強練習(xí)。
(2)C語言的格式:可以概括為“函數(shù)頭 + 一個主函數(shù)”的結(jié)構(gòu),這是任何一個C語言程序必須的格式,就像給具體的C語言穿的一件制服,看到這個制服就知道是一個C語言程序;反過來,每一個C語言程序都必須穿這套制服。具體C語言程序中是什么內(nèi)容,就要看{}中的內(nèi)容了。
3.1.2 動態(tài)知識包括算法、函數(shù)、語句的使用、編譯工具軟件
(1)算法是一個很復(fù)雜很寬泛且有很大難度的問題,但就解決常見的工程問題和生活問題的算法還不是很難。明確算法只是解決問題的方法和步驟,不能對算法這個概念產(chǎn)生神秘感。對常見的算法會用C語言實現(xiàn)就可以,例如:一般的數(shù)值計算、邏輯運算、查找、排序、查表等。
(2)函數(shù)[2]:明確函數(shù)的調(diào)用、參數(shù)的傳遞,函數(shù)是C語言中的一個重要概念和組成部分,是C語言程序的基本組成單位,計算機的很多功能都是通過函數(shù)來實現(xiàn)的。要會使用乘方開方、正弦余弦、正切余切、指數(shù)運算、微分積分等有關(guān)的數(shù)值運算函數(shù),能完成一般的數(shù)值計算,通過查閱資料會使用常用數(shù)學(xué)函數(shù)和必要的其它常用庫函數(shù)就可以了,在教學(xué)中要進行分項針對練習(xí)。
(3)C語言的編程語句表達(dá)式和語句的關(guān)系:把C語言語句分為四類以強化學(xué)生的記憶:順序語句、選擇語句、循環(huán)語句、轉(zhuǎn)移控制語句。C語言編程語句的教學(xué)是C語言教學(xué)中最核心難度最大也最有挑戰(zhàn)性的部分,只有學(xué)好這部分內(nèi)容,才有可能會使用C語言進行編程。對這部分內(nèi)容的教學(xué)重點要區(qū)別對待。對順序結(jié)構(gòu)的語句來說,難度比較小,結(jié)合工程中的的算法就可以順利過關(guān)。選擇語句的難度有兩個,一是幾種選擇語句的書寫格式和用法。二是選擇語句的嵌套,邏輯關(guān)系一層套一層,邏輯嵌套的邏輯習(xí)慣養(yǎng)成不容易,必須由簡單到復(fù)雜循序漸進進行,讓學(xué)生養(yǎng)成用C語言邏輯嵌套的方式尋找解決問題的習(xí)慣。對簡單的循環(huán)語句結(jié)構(gòu)要加大強化力度,開始通過一定量的循環(huán)小實例練習(xí)加強學(xué)生對循環(huán)語句的理解,達(dá)到熟練運用的程度,然后再結(jié)合工程中的循環(huán)語句讓學(xué)生知道循環(huán)語句在工程中的實際運用。循環(huán)的嵌套難度最大,對循環(huán)嵌套的教學(xué)必須通過實例反復(fù)訓(xùn)練,達(dá)到熟練的程度,并且讓學(xué)生自己尋找生活中循環(huán)嵌套的例子,以適應(yīng)循環(huán)嵌套的邏輯。最后還要仔細(xì)體會測溫工程中的循環(huán)嵌套的使用。對轉(zhuǎn)移控制語句的教學(xué)應(yīng)該強調(diào)這三種控制語句的應(yīng)用條件和注意事項,防止使用不當(dāng)是程序進入死循環(huán)。必要時要通過一個錯誤的使用讓學(xué)生感受到錯誤使用產(chǎn)生的結(jié)果。
(4)C語言的編譯平臺,編譯平臺有幾種可以使用,通常使用的是Visual C++6.0有在教學(xué)中發(fā)現(xiàn), C語言學(xué)習(xí)還沒有開始,就被編譯平臺難住了,選擇《啊哈磊》[3]編寫的C語言學(xué)習(xí)平臺,等適應(yīng)后在啟用Visual C++6.0編譯軟件。
3.2 建立一個真實的測溫工程:
3.2.1 設(shè)計工程的硬件
本工程是利用C語言開發(fā)單片機以熱敏電阻為傳感器測定空氣的溫度。熱敏電阻與555組成振蕩器,,溫度變化,熱敏電阻阻值變化,電路振蕩頻率變化,通過單片機測定電路振蕩頻率,與標(biāo)準(zhǔn)比較就可以計算出溫度值。設(shè)計一個硬件電路并且用軟件設(shè)計一個PCB板,焊接好電路元件備用。
3.2.2 對測溫硬件電路編寫部分測溫軟件代碼如下:
#include <stdio.h>
#include <math.h>
fl oat fi nd(fl oat resv)
{ idata fl oat temper; idata int top,bottom,mid;
if(resv>=39028) temper=-30;
else if(resv<=831) temper=60;
else }
{ fl ag=1; //*假設(shè)輸入的數(shù)在表列中
top=90; bottom=0; mid=(top+bottom)/2;
while(fl ag)
……
return(temper);
}
3.3 教學(xué)的推進
3.3.1 在教學(xué)開始階段
(1)把測溫工程的硬件系統(tǒng)功能展示給學(xué)生,演示溫度測定過程,告訴學(xué)生本系統(tǒng)就是使用C語言編寫的應(yīng)用程序,讓學(xué)生知道把C語言學(xué)好后就可以自己編寫控制程序。
(2)對C語言知識點的歸納,告訴學(xué)生C語言所包含的知識點和學(xué)習(xí)方法。
(3)明確C語言學(xué)習(xí)的困難。
(4)建立學(xué)習(xí)小組。
3.3.2 教學(xué)階段
根據(jù)C語言的知識點和能力點進行教學(xué),教學(xué)新的知識點時需要反復(fù)讓學(xué)生練習(xí)直到熟練為止。教學(xué)中有難點時,要把難點分解成幾個步驟進行教學(xué),例如,在講解循環(huán)語句時,就把循環(huán)語句每循環(huán)一次的運行結(jié)果以書面的形式寫出來,這樣寫出3-5個步驟,學(xué)生就理解了循環(huán)語句的作用。又例如講解循環(huán)嵌套的時候,開始把嵌套的語句以最簡單的形式表現(xiàn)出來,然后逐漸讓嵌套的語句變復(fù)雜,通過這樣對難點進行拆分,學(xué)習(xí)難度降低,當(dāng)掌握了一定的知識后,學(xué)習(xí)的自信心就會增加,有助于學(xué)生堅持完成后面的學(xué)習(xí)。
開始就把測溫程序發(fā)給學(xué)生,讓學(xué)生隨時找出所學(xué)知識點在程序中的應(yīng)用,并貫穿講解硬件知識。經(jīng)過實際的教學(xué)實驗, C語言內(nèi)容講授結(jié)束時,學(xué)生對該工程硬件也有了一定的了解,激發(fā)了學(xué)生對單片機知識的興趣,部分學(xué)生自己購買單片機書籍主動自學(xué),調(diào)動了學(xué)生的學(xué)習(xí)熱情。
通過對C語言知識點強化、難點分散、降低學(xué)習(xí)難度,用工程實際問題作為C語言知識點的學(xué)習(xí)媒介,引導(dǎo)學(xué)生的主動學(xué)習(xí),對學(xué)生完成C語言的教學(xué)產(chǎn)生了巨大的促進作用。教學(xué)過程中學(xué)生學(xué)習(xí)目的清晰、學(xué)有興趣,提高了學(xué)生學(xué)習(xí)C語言的效果,能堅持學(xué)完C語言的學(xué)生人數(shù)明顯增加。但是也有一些局限性,就是學(xué)生的電子學(xué)知識、單片機知識還很欠缺,還不能完達(dá)到希望的效果。如果把C語言開設(shè)在學(xué)習(xí)單片機之后效果會更好,學(xué)生的學(xué)習(xí)難度會更小。
參考文獻(xiàn):
[1]馮茂巖,孫炯寧.C語言程序設(shè)計[M].高等教育出版社2009(07).
[2]楊峰.妙趣橫生的算法[M].清華大學(xué)出版社出版,2012(12).
[3]啊哈磊,啊哈C!.-思考快你一步[M].電子工業(yè)出版社,2013(09).
基金項目:河南省教育廳人文社會科學(xué)研究項目資助(題名:C語言課程在高職院校教學(xué)中存在的問題與改革措施;批準(zhǔn)號:2014—ZC—068)
作者簡介:甄華(1982-),女,吉林四平人,南京理工大學(xué)碩士,河南工業(yè)貿(mào)易職業(yè)學(xué)院講師,主要研究方向:計算機網(wǎng)絡(luò)、仿真。