摘要:C語(yǔ)言是獨(dú)立學(xué)院開設(shè)的計(jì)算機(jī)語(yǔ)言課程之一。為了使學(xué)生更好地掌握這門語(yǔ)言,結(jié)合C語(yǔ)言和獨(dú)立學(xué)院學(xué)生特點(diǎn),對(duì)C語(yǔ)言這門課程從理論教學(xué)和實(shí)踐教學(xué)兩方面進(jìn)行探討。首先,介紹了C語(yǔ)言的發(fā)展及特點(diǎn),針對(duì)獨(dú)立學(xué)院這一特殊教學(xué)對(duì)象群體,提出了在教學(xué)過(guò)程中更加需要教師認(rèn)真對(duì)待;然后,在理論教學(xué)的基礎(chǔ)上,說(shuō)明了激發(fā)學(xué)生學(xué)習(xí)興趣、培養(yǎng)學(xué)生編程能力的重要性及實(shí)際可行的教學(xué)方法;最后,提出了上機(jī)練習(xí)與實(shí)踐應(yīng)用相結(jié)合的實(shí)踐教學(xué)模式,讓學(xué)生在實(shí)踐中逐步掌握C語(yǔ)言的語(yǔ)法規(guī)則及算法,教學(xué)效果良好。
關(guān)鍵詞:C語(yǔ)言;編程能力;教學(xué)方法
中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)12-2840-04
C語(yǔ)言是目前最流行的語(yǔ)言之一,它既具有高級(jí)語(yǔ)言程序設(shè)計(jì)的特點(diǎn),又具有匯編語(yǔ)言的功能[1]。同時(shí),C語(yǔ)言概念簡(jiǎn)潔、語(yǔ)句緊湊、表達(dá)能力強(qiáng)、程序結(jié)構(gòu)性和可讀性好,很多院校都將C語(yǔ)言作為第一門計(jì)算機(jī)語(yǔ)言課程開設(shè)。但是,由于C語(yǔ)言靈活性大以及內(nèi) 容抽象等特點(diǎn),加之授課對(duì)象是剛剛接觸程序設(shè)計(jì)語(yǔ)言的大一或大二的學(xué)生,在實(shí)際的教學(xué)過(guò)程中,很多
學(xué)生由于對(duì)概念理解模糊、邏輯思維理解能力不強(qiáng),導(dǎo)致普遍認(rèn)為C語(yǔ)言很難學(xué),甚至是畏懼C語(yǔ)言編程。該文針對(duì)C語(yǔ)言特點(diǎn)以及獨(dú)立學(xué)院學(xué)生這一特殊教學(xué)對(duì)象,結(jié)合對(duì)C語(yǔ)言的學(xué)習(xí)體會(huì)、教學(xué)過(guò)程及C的實(shí)踐應(yīng)用對(duì)C語(yǔ)言在獨(dú)立學(xué)校的開設(shè)進(jìn)行教學(xué)探討。
1 語(yǔ)言的介紹
C語(yǔ)言是國(guó)際上廣泛流行的計(jì)算機(jī)高級(jí)語(yǔ)言。它既可用來(lái)寫系統(tǒng)軟件,也可用來(lái)寫應(yīng)用軟件。C語(yǔ)言的祖先是BCPL語(yǔ)言。C語(yǔ)言既保持了BCPL和B語(yǔ)言精煉,且接近硬件的優(yōu)點(diǎn),又克服了它們過(guò)于簡(jiǎn)單,無(wú)數(shù)據(jù)類型等的缺點(diǎn),C語(yǔ)言的新特點(diǎn)主要表現(xiàn)在具有多種數(shù)據(jù)類型[2]。開發(fā)C語(yǔ)言的目的在于盡可能降低用它開發(fā)的軟件對(duì)硬件平臺(tái)的依賴程度,使之具有可移植性。
C語(yǔ)言是一種通用性很強(qiáng)的結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,它具有豐富的運(yùn)算符號(hào)和數(shù)據(jù)類型,語(yǔ)言簡(jiǎn)單靈活,表達(dá)能力強(qiáng)等特點(diǎn)。C語(yǔ)言的主要特點(diǎn)如下。
具有低級(jí)語(yǔ)言功能的高級(jí)語(yǔ)言:C語(yǔ)言允許直接訪問(wèn)物理地址,能進(jìn)行位操作,能實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,可以直接對(duì)硬件進(jìn)行操作。因此C語(yǔ)言既具有高級(jí)語(yǔ)言的功能,又具有低級(jí)語(yǔ)言的功能,C語(yǔ)言的這種雙重性,使它既是成功的系統(tǒng)描述語(yǔ)言,又是通用的程序設(shè)計(jì)語(yǔ)言[3]。
模塊化和結(jié)構(gòu)化語(yǔ)言:C語(yǔ)言用函數(shù)作為程序模塊,以實(shí)現(xiàn)程序的模塊化;C語(yǔ)言具有結(jié)構(gòu)化的控制語(yǔ)句(如if...else語(yǔ)句、while語(yǔ)句、do...while語(yǔ)句、switch語(yǔ)句和for語(yǔ)句),語(yǔ)言簡(jiǎn)潔、緊湊。
可移植性好:C語(yǔ)言不包含依賴硬件的輸入輸出機(jī)制,使C語(yǔ)言本身不依賴于硬件系統(tǒng),可移植性好。
執(zhí)行效率高:C語(yǔ)言生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。
2 獨(dú)立學(xué)院學(xué)生特點(diǎn)
C語(yǔ)言成績(jī)?cè)O(shè)計(jì)要在獨(dú)立學(xué)院開設(shè)并且辦好,首先需要對(duì)授課對(duì)象也就是獨(dú)立學(xué)院的學(xué)生特點(diǎn)進(jìn)行全方面的了解。獨(dú)立學(xué)院是近幾年來(lái)隨著高等教育的快速發(fā)展產(chǎn)生的新型高等教育辦學(xué)形式,其招生錄取線主要介于普通本科和高等??浦g,是我國(guó)高等教育辦學(xué)機(jī)制的大膽探索和創(chuàng)新,在擴(kuò)大高等教育資源和高校辦學(xué)規(guī)模方面起到了積極作用,逐漸成為當(dāng)前和今后一定時(shí)期高等教育發(fā)展的一個(gè)重要方面[4]。獨(dú)立學(xué)院的學(xué)生在基礎(chǔ)知識(shí)、自身素質(zhì)、認(rèn)知能力等方面存在著某些差異。大部分獨(dú)立學(xué)院學(xué)生相較于本一、本二學(xué)生基礎(chǔ)知識(shí)較差是事實(shí)。學(xué)生的基礎(chǔ)知識(shí)掌握較差,偏科現(xiàn)象嚴(yán)重, 如英語(yǔ)、數(shù)學(xué)基礎(chǔ)底子薄。學(xué)生渴望獲得優(yōu)良成績(jī),敬佩學(xué)業(yè)優(yōu)秀的同學(xué),但學(xué)習(xí)毅力和刻苦精神不夠。部分學(xué)生學(xué)習(xí)目的不夠明確,學(xué)習(xí)態(tài)度不夠端正,他們沒(méi)有良好的學(xué)習(xí)習(xí)慣和飽滿的學(xué)習(xí)熱情,自主學(xué)習(xí)的能力和毅力不夠。表現(xiàn)在上課不專心,課后不自習(xí),經(jīng)常遲到、早退。部分學(xué)生自律性差。所以,掌握好獨(dú)立學(xué)院學(xué)生的特點(diǎn),針對(duì)這一特殊授課群體,更加需要教師不管是從理論還是實(shí)踐上機(jī)方面都需下足功夫。
3 理論教學(xué)
在C語(yǔ)言理論教學(xué)過(guò)程中,首先,教師要讓學(xué)生對(duì)C語(yǔ)言程序設(shè)計(jì)這門課有直觀的感性認(rèn)識(shí),結(jié)合獨(dú)立學(xué)院學(xué)生所學(xué)專業(yè)的特點(diǎn),對(duì)理論講授教案精心設(shè)計(jì)安排,使學(xué)生體會(huì)到C語(yǔ)言程序設(shè)計(jì)在以后的工作及生活中的應(yīng)用,提高學(xué)生學(xué)習(xí)興趣;其次,在具體理論教學(xué)中,力求做到概念準(zhǔn)確、簡(jiǎn)潔、易懂,注重基礎(chǔ)知識(shí)的學(xué)習(xí),使學(xué)生由淺入深、循序漸進(jìn)的掌握C語(yǔ)言并培養(yǎng)閱讀及編寫程序的能力。
3.1 激發(fā)興趣
在C語(yǔ)言教學(xué)過(guò)程中,首先打消學(xué)生對(duì)C語(yǔ)言的陌生及恐懼,逐步培養(yǎng)學(xué)生學(xué)習(xí)興趣。興趣是求知的內(nèi)在動(dòng)力。激發(fā)起學(xué)生的興趣,學(xué)習(xí)就會(huì)積極主動(dòng), 學(xué)得輕松而有成效。但是學(xué)習(xí)興趣不是天生的,主要在于教師如何引導(dǎo)學(xué)生,充分調(diào)動(dòng)學(xué)生對(duì)學(xué)習(xí)的積極性和主動(dòng)性,進(jìn)而能創(chuàng)造性地學(xué),最終達(dá)到優(yōu)化課堂教學(xué)和提高教學(xué)效率的目的。
在教學(xué)過(guò)程中,首先,教師應(yīng)是組織者,引導(dǎo)者與合作者。教師的作用便是調(diào)動(dòng)學(xué)生主動(dòng)思維和主動(dòng)參與的積極性。同時(shí)要關(guān)注學(xué)生個(gè)體差異,讓每個(gè)學(xué)生得到全面發(fā)展。尊重學(xué)生、面向全體學(xué)生是激發(fā)學(xué)生學(xué)習(xí)興趣的重要手段。就必須面向全體學(xué)生,尊重學(xué)生,做學(xué)生信賴、喜歡的老師,這樣才能引起學(xué)生的興趣。因此,教師應(yīng)根據(jù)學(xué)生的認(rèn)知規(guī)律創(chuàng)設(shè)條件,引導(dǎo)學(xué)生主動(dòng)學(xué)習(xí)、探究,通過(guò)具體引例使學(xué)生進(jìn)入C語(yǔ)言課程學(xué)習(xí)。其次,營(yíng)造以學(xué)生為主體的嚴(yán)謹(jǐn)活潑的課堂氛圍。教師必須相信學(xué)生有潛在的嘗試能力,對(duì)學(xué)生的探索活動(dòng)要充滿信心,循循善誘。創(chuàng)設(shè)師生心理相容的課堂氣氛,使學(xué)生感到老師既是師長(zhǎng),也是最可親近,可以與之交心的朋友。精心設(shè)計(jì)教案以及靈活運(yùn)用多媒體,調(diào)動(dòng)興趣。盧梭說(shuō):“教育的藝術(shù)是使學(xué)生喜歡你所教的東西。”鮮明的表現(xiàn)力和直觀的形象性, 最能調(diào)動(dòng)學(xué)生的多種感官,喚起其濃厚的學(xué)習(xí)興趣,使學(xué)生不知不覺(jué)的進(jìn)入C語(yǔ)言課程設(shè)計(jì)的教學(xué)內(nèi)容之中。
3.2 培養(yǎng)能力
在C語(yǔ)言教學(xué)過(guò)程中,培養(yǎng)學(xué)生能力是至關(guān)重要的。C語(yǔ)言作為一種計(jì)算機(jī)編程語(yǔ)言工具,學(xué)習(xí)它的目的在于培養(yǎng)學(xué)生程序設(shè)計(jì)能力,從而解決相關(guān)的實(shí)際問(wèn)題。所以,在實(shí)際理論教學(xué)中,通過(guò)結(jié)合各種語(yǔ)法規(guī)則和格式等細(xì)節(jié)講授C語(yǔ)言程序內(nèi)容。下面從主要從閱讀程序能力和編寫程序能力來(lái)探討。
3.2.1 閱讀程序能力
C語(yǔ)言的語(yǔ)法規(guī)則和格式規(guī)定比較多,一般情況下,教師針對(duì)這些語(yǔ)法的使用情況,利用一些典型例題進(jìn)行講解。在課堂上需注意以下幾點(diǎn):
1)從教師自我做起,課堂上書寫程序規(guī)范,嚴(yán)格要求學(xué)生。
2)課堂上帶學(xué)生所閱讀的程序要難易適中,覆蓋面要廣。
3)將復(fù)雜問(wèn)題簡(jiǎn)單化、模塊化。
4)采用舉一反三、案例教學(xué)、任務(wù)驅(qū)動(dòng)和師生互動(dòng)相結(jié)合。
5)由淺入深、循序漸進(jìn)、精講多練,全面提高學(xué)生設(shè)計(jì)程序能力。
但是由于學(xué)時(shí)有限,為了更好的掌握C語(yǔ)言,教師應(yīng)該為學(xué)生提供及推薦一些學(xué)習(xí)C語(yǔ)言課程較好的教材、習(xí)題冊(cè)或是學(xué)習(xí)網(wǎng)站作為參考資料,使學(xué)生除了在課堂上接觸C知識(shí)和技巧之外,在課下可以閱讀到大量別人的程序,然后才能使學(xué)生加深對(duì)C語(yǔ)言各種語(yǔ)句的使用,拓展學(xué)生的思維理解能力,提高學(xué)生的編程技巧,最終能夠很好的解決實(shí)際問(wèn)題。
3.2.2 編寫程序能力
編寫程序解決問(wèn)題是學(xué)習(xí)C語(yǔ)言最終目的。然而編寫程序最重要的是尋求解決問(wèn)題的思路和方法,即算法。在實(shí)際教學(xué)中,如while循環(huán)結(jié)構(gòu),采用案例教學(xué)法講授計(jì)算從1到n的n個(gè)自然數(shù)的累加,程序代碼如下:
#include
main()
{ int i,n,s;
printf(“Please input n:”);
scanf(“%d”,&n);
i=1;
s=0;
while(i<=n)
{
s+=i;
i++;
}
printf(“sum=%d\n”,s);
}
程序運(yùn)行結(jié)果如圖1所示:
圖1 運(yùn)行結(jié)果
在這段代碼中,循環(huán)開始時(shí)初始狀態(tài)的設(shè)置是由變量i和s的初始化操作來(lái)完成的。循環(huán)的執(zhí)行條件是i<=n。在滿足這一條件的情況下,i的值被累加到變量s中,然后由語(yǔ)句i++修改循環(huán)控制變量i的值。當(dāng)while語(yǔ)句執(zhí)行完畢后,變量s中就保存了從1到n的n個(gè)自然數(shù)的累加結(jié)果。
在使用while語(yǔ)句時(shí)有兩點(diǎn)需要注意。第一點(diǎn)是對(duì)初始狀態(tài)的描述需要完整、準(zhǔn)確。在上面的例子中,不僅要正確地設(shè)置循環(huán)控制變量i的初始值,而且要正確地設(shè)置累加變量s的初始值,即將其清零,否則計(jì)算結(jié)果將是錯(cuò)誤的。第二點(diǎn)需要注意的是,對(duì)<表達(dá)式>的循環(huán)求值應(yīng)最終導(dǎo)致循環(huán)結(jié)束。如果在<表達(dá)式>中不包括讀取輸入數(shù)據(jù)等對(duì)外部條件的判斷,則在循環(huán)體中必須有影響<表達(dá)式>求值的操作,而且對(duì)<表達(dá)式>的影響要導(dǎo)致循環(huán)結(jié)束。在例中,循環(huán)執(zhí)行的條件是i<=n,因此在循環(huán)體中不僅必須要有對(duì)變量i的修改,而且i的值必須是遞增的,以便使得循環(huán)條件執(zhí)行了一定的次數(shù)之后不再被滿足,因此循環(huán)得以結(jié)束。忘記對(duì)與循環(huán)條件相關(guān)的變量修改,或者修改的方向與循環(huán)判斷條件不一致,都會(huì)造成執(zhí)行結(jié)果的錯(cuò)誤或者死循環(huán),使得程序一直執(zhí)行循環(huán)語(yǔ)句而不會(huì)停止。
通過(guò)上述自然數(shù)累加和題目的講解,不僅使學(xué)生掌握了while編程的基本思路和方法,而且可以使用舉一反三的方法,拓展提高學(xué)生分析和解決問(wèn)題的能力。比如,上例求自然數(shù)累加和拓展到如何編寫奇數(shù)累加或是偶數(shù)累加來(lái)啟發(fā)學(xué)生,在啟發(fā)過(guò)程中,教師應(yīng)逐步提問(wèn),調(diào)動(dòng)學(xué)生的編程興趣,引導(dǎo)學(xué)生跟進(jìn)思考,鼓勵(lì)學(xué)生使用不同的方法進(jìn)行編程,并使學(xué)生形成一種編程的思維習(xí)慣,這對(duì)提高學(xué)生獨(dú)立編程解決實(shí)際問(wèn)題的效果非常好。
4 實(shí)踐教學(xué)
程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的課程,不能只依靠課堂學(xué)習(xí)和看書就能很好的掌握C語(yǔ)言程序設(shè)計(jì)。應(yīng)當(dāng)十分重視學(xué)生動(dòng)手編寫程序和上機(jī)運(yùn)行程序。上機(jī)的時(shí)間愈多愈好。學(xué)習(xí)C語(yǔ)言時(shí)有一點(diǎn)應(yīng)當(dāng)注意:對(duì)于我們獨(dú)立學(xué)院的學(xué)生,由于學(xué)生基礎(chǔ)差,學(xué)生之間差異較大,自學(xué)能力低等特點(diǎn),教師應(yīng)該強(qiáng)調(diào)學(xué)生把精力放在最基本、最常用的內(nèi)容上。開始時(shí)不要鉆牛角尖,在一些具體細(xì)節(jié)上死摳。有一些細(xì)節(jié),隨著對(duì)C語(yǔ)言的了解逐步深入和實(shí)踐經(jīng)驗(yàn)的逐步豐富,會(huì)自然地掌握的,而有一些細(xì)節(jié)則要通過(guò)長(zhǎng)期的實(shí)踐才能真正熟練掌握。
4.1 上機(jī)調(diào)試程序
在C語(yǔ)言實(shí)踐教學(xué)中,重點(diǎn)培養(yǎng)學(xué)生關(guān)于編程工具的熟練使用,以及調(diào)試和修改程序的能力。目前,使用較廣泛的C語(yǔ)言編程環(huán)境是VC環(huán)境[5]。在上機(jī)課上,根據(jù)理論內(nèi)容進(jìn)度,合理布置上機(jī)內(nèi)容,包括基本功能實(shí)現(xiàn),新功能的添加以及嘗試變換條件等方式,使學(xué)生充分利用編程工具提供的調(diào)試功能,對(duì)有錯(cuò)誤的程序進(jìn)行反復(fù)的運(yùn)行和調(diào)試,最終得到正確的運(yùn)行程序,同時(shí)總結(jié)經(jīng)驗(yàn),只有這樣不斷的練習(xí),才能使學(xué)生對(duì)理論知識(shí)有深入的理解和掌握,對(duì)實(shí)際問(wèn)題的解決能力有更進(jìn)一步的提高。
4.2 C語(yǔ)言實(shí)踐應(yīng)用
一般來(lái)說(shuō),獨(dú)立學(xué)院學(xué)C語(yǔ)言是一種入門語(yǔ)言,它是一種面向過(guò)程的,我個(gè)人理解就是面向?qū)ο蟮恼Z(yǔ)言,它里面最終實(shí)現(xiàn)對(duì)象的功能還是過(guò)程式的。如果不是計(jì)算機(jī)相關(guān)專業(yè)的學(xué)生,學(xué)習(xí)C語(yǔ)言用來(lái)培養(yǎng)一下邏輯思維、學(xué)些編程的基礎(chǔ)概念,假設(shè)以后會(huì)涉足到計(jì)算機(jī)這方面的話,有一個(gè)良好的理論和思維基礎(chǔ)。但是在計(jì)算機(jī)領(lǐng)域,C語(yǔ)言仍是今天應(yīng)用最為廣泛的語(yǔ)言。它主要是面向底層的,也就是說(shuō)它主要是對(duì)硬件的操作。日常用戶所能常見的C語(yǔ)言程序主要是各種硬件驅(qū)動(dòng)程序、嵌入式程序(例如一些車載導(dǎo)航系統(tǒng)、微型手持設(shè)備等)還有大部分操作系統(tǒng)也主要是由C語(yǔ)言寫成的,當(dāng)然C也在單片機(jī)中有很多的應(yīng)用[6]。在大三大四階段,學(xué)校就會(huì)組織一些學(xué)生參加多種國(guó)家級(jí)、省級(jí)電子大賽,很多優(yōu)秀作品基于單片機(jī)或是嵌入式系統(tǒng)的并用C語(yǔ)言編程實(shí)現(xiàn)功能,都獲得了優(yōu)異的成績(jī)[7]。這樣將C語(yǔ)言的理論學(xué)習(xí)和實(shí)踐應(yīng)用相結(jié)合,對(duì)學(xué)生畢業(yè)設(shè)計(jì)以及將來(lái)步入工作崗位都是一個(gè)堅(jiān)實(shí)的基礎(chǔ)。
5 結(jié)束語(yǔ)
C語(yǔ)言課程是獨(dú)立學(xué)院設(shè)置的培養(yǎng)大學(xué)生計(jì)算機(jī)能力的一門基礎(chǔ)語(yǔ)言,學(xué)習(xí)C語(yǔ)言,培養(yǎng)學(xué)生的編程思維能力,為將來(lái)學(xué)習(xí)其他編程語(yǔ)言或是參加工作打下堅(jiān)實(shí)的基礎(chǔ)是至關(guān)重要的。針對(duì)獨(dú)立學(xué)院學(xué)生特點(diǎn),結(jié)合實(shí)際教學(xué)要求和內(nèi)容,提出了理論教學(xué)和實(shí)踐教學(xué)相結(jié)合的方法,重點(diǎn)培養(yǎng)學(xué)生掌握C語(yǔ)言程序設(shè)計(jì)的方法和思維能力,提高了學(xué)生學(xué)習(xí)的興趣和主動(dòng)性,使其掌握基本算法和編程技術(shù),以解決實(shí)際問(wèn)題,才能不辜負(fù)教育工作者的不斷探索和尋求,實(shí)現(xiàn)教學(xué)的最終目標(biāo)。
參考文獻(xiàn):
[1] 譚浩強(qiáng).C程序設(shè)計(jì)(第二版)[M].北京:清華大學(xué)出版社,1999.
[2] 楊照華.計(jì)算機(jī)專業(yè)課程與教學(xué)改革初探[J].煤炭技術(shù),2012(3):251-252.
[3] 王海燕,韓萌.淺談C語(yǔ)言程序設(shè)計(jì)教學(xué)[J].科教論壇,2007(6):25-27.
[4] 彭斌.高職院校C語(yǔ)言程序設(shè)計(jì)[J].教學(xué)探討,2008(36):196-197.
[5] 沈軍.C語(yǔ)言程序設(shè)計(jì)語(yǔ)言課程的教學(xué)新思路[J].電氣電子教學(xué)學(xué)報(bào),2000(4):15-16.
[6] 馬忠梅,籍順心,張凱.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1997.
[7] U.Tietze Ch.Schenk.Electronic Cricuits, Handbook for Design and Application[M].Berlin,New York: Springer-Verlag,2002.