摘 要: C語(yǔ)言是高職院校計(jì)算機(jī)專(zhuān)業(yè)的必修課,是學(xué)生學(xué)習(xí)程序設(shè)計(jì)的入門(mén)課程。在《C語(yǔ)言程序設(shè)計(jì)》教學(xué)過(guò)程中,教師應(yīng)抓住C語(yǔ)言重點(diǎn)內(nèi)容和環(huán)節(jié),精心規(guī)劃教學(xué);引導(dǎo)學(xué)生養(yǎng)成良好的編程風(fēng)格,利用多種先進(jìn)的教學(xué)技術(shù),培養(yǎng)學(xué)生的編程能力和解決實(shí)際問(wèn)題的應(yīng)用能力;在教學(xué)中培養(yǎng)學(xué)生的自學(xué)能力,鼓勵(lì)學(xué)生自學(xué)C語(yǔ)言前沿的應(yīng)用技術(shù)。
關(guān)鍵詞: C語(yǔ)言 教學(xué)方法 應(yīng)用編程能力 自學(xué)能力
1?郾引言
《C語(yǔ)言程序設(shè)計(jì)》是高職計(jì)算機(jī)類(lèi)專(zhuān)業(yè)開(kāi)設(shè)的首門(mén)高級(jí)程序設(shè)計(jì)語(yǔ)言課程。它使用廣泛,表達(dá)能力強(qiáng),目標(biāo)代碼運(yùn)行效率高,可移植性好;既具有高級(jí)語(yǔ)言的優(yōu)點(diǎn),又具有低級(jí)語(yǔ)言的許多特點(diǎn);既可以用來(lái)編寫(xiě)系統(tǒng)軟件,又可以用來(lái)編寫(xiě)應(yīng)用軟件。目前,在《C語(yǔ)言程序設(shè)計(jì)》課程教學(xué)中,許多教師和學(xué)生都認(rèn)為C語(yǔ)言概念多、規(guī)則繁雜、使用靈活、書(shū)寫(xiě)方式多變、容易出錯(cuò)。教師教學(xué)和學(xué)生學(xué)習(xí)都感到困難,增加了教學(xué)的難度;而學(xué)生抱怨課程內(nèi)容枯燥乏味,沒(méi)有興趣;在解決實(shí)際問(wèn)題編寫(xiě)應(yīng)用軟件時(shí)往往無(wú)從下手,缺乏編程和調(diào)試的能力。下面我就C語(yǔ)言的教學(xué)談?wù)勛约旱囊恍┛捶ê徒ㄗh。
2.精心規(guī)劃教學(xué)
有些學(xué)生甚至在學(xué)完了該課程后仍然無(wú)法完整、正確地理解C語(yǔ)言的整體結(jié)構(gòu)和特點(diǎn)。我針對(duì)這種情況,在教學(xué)課時(shí)上,《C語(yǔ)言程序設(shè)計(jì)》課安排一學(xué)期學(xué)完。把該課程劃分為兩個(gè)學(xué)習(xí)階段:第一階段《C語(yǔ)言程序設(shè)計(jì)I》,主要將基礎(chǔ)知識(shí)融入案例與任務(wù)中進(jìn)行教學(xué),即基礎(chǔ)階段;第二階段《C語(yǔ)言程序設(shè)計(jì)II》,主要進(jìn)行30個(gè)學(xué)時(shí)為期一周的應(yīng)用程序設(shè)計(jì)與實(shí)現(xiàn),即應(yīng)用階段。
基礎(chǔ)階段《C語(yǔ)言程序設(shè)計(jì)I》的考核,主要考慮對(duì)學(xué)生動(dòng)手編程能力的培養(yǎng),因此考核分成理論和上機(jī)兩部分。理論考試為開(kāi)卷,占總評(píng)成績(jī)的20%;上機(jī)考試主要題型為編程和改錯(cuò),占總評(píng)成績(jī)的30%;平時(shí)成績(jī)占總評(píng)的20%。應(yīng)用階段《C語(yǔ)言程序設(shè)計(jì)II》的考核,以面試考核為主,占總評(píng)成績(jī)的30%,考查學(xué)生對(duì)項(xiàng)目案例教學(xué)的理解,項(xiàng)目案例功能的擴(kuò)展和改進(jìn)等方面的情況,以及運(yùn)用C語(yǔ)言解決實(shí)際問(wèn)題的應(yīng)用能力。
3.教學(xué)伊始引導(dǎo)學(xué)生養(yǎng)成良好的程序設(shè)計(jì)習(xí)慣和代碼編寫(xiě)風(fēng)格
首先,在C語(yǔ)言教學(xué)之初,讓學(xué)生閱讀簡(jiǎn)單的規(guī)范的C語(yǔ)言程序,在學(xué)生心中起到“先入為主”的效果;其次是在上課過(guò)程中,充分利用現(xiàn)代的教學(xué)方式,課件演示和板書(shū)都力求以規(guī)范的格式書(shū)寫(xiě)程序,告訴學(xué)生程序就該這樣寫(xiě);平時(shí)上機(jī)練習(xí),要對(duì)學(xué)生中代碼書(shū)寫(xiě)出現(xiàn)的不好習(xí)慣,及時(shí)提出并給出改正的方式方法。總之,要培養(yǎng)學(xué)生嚴(yán)謹(jǐn)、清晰的代碼編寫(xiě)風(fēng)格和良好的程序設(shè)計(jì)習(xí)慣。
4.采用多種教學(xué)方法,培養(yǎng)學(xué)生的編程能力
4.1循序漸進(jìn)法。在C語(yǔ)言的教學(xué)過(guò)程中,教師起非常重要的作用,尤其是在教學(xué)中要激發(fā)出學(xué)生的興趣。大多數(shù)學(xué)生都是初次接觸C語(yǔ)言,這是一個(gè)全新的內(nèi)容,同時(shí)也會(huì)有全新的收獲。由于該課程是培養(yǎng)學(xué)生程序設(shè)計(jì)的能力,之前學(xué)生幾乎沒(méi)有此經(jīng)驗(yàn)和能力,要通過(guò)教師循序漸進(jìn)地引導(dǎo),再加上學(xué)生上機(jī)的體驗(yàn)和感受,使其逐步積累程序設(shè)計(jì)的能力。對(duì)于教師給定的題目,教師應(yīng)該遵循由低到高、由簡(jiǎn)入難,有趣并盡可能貼近實(shí)際的原則。開(kāi)始時(shí),教師給予學(xué)生的題目都是單項(xiàng)的練習(xí),如簡(jiǎn)單的輸入輸出、數(shù)據(jù)類(lèi)型、數(shù)組編程等。到了C語(yǔ)言學(xué)習(xí)的后期,可以出一些較復(fù)雜并和實(shí)際結(jié)合的題目。如:在講解二重循環(huán)知識(shí)點(diǎn)的時(shí)候,教師可設(shè)計(jì)以下由淺入深、由易到難的實(shí)例。
(1)打印如下由易到難的圖形
通過(guò)上述三個(gè)由淺入深的實(shí)例,自然就可以總結(jié)出打印圖形的規(guī)律:把每行前輸出的空格數(shù)與行的關(guān)系、每行打印“*”的個(gè)數(shù)與行的關(guān)系填入內(nèi)層循環(huán)的終止即可。另外,由于外層循環(huán)包含了多條語(yǔ)句,因此必須用把包含在外層循環(huán)中的語(yǔ)句用{}括起來(lái)。推廣到一般,打印符號(hào)的大致代碼形式如下:
for(i=l;i<=行數(shù);i++)
{for(j=1;j<=每行的空格數(shù)與行的關(guān)系;j++)printf(" ") ;
for(k=1;k<=每行的符號(hào)數(shù)與行的關(guān)系;k++) printf ("符號(hào)") ;
printf ("\n") ;
}
(2)通過(guò)上述的總結(jié),讓學(xué)生自己編寫(xiě)程序,打印如下復(fù)合金字塔圖形
上述程序雖然相對(duì)比較簡(jiǎn)單,但對(duì)于初次接觸雙重循環(huán)程序的學(xué)生來(lái)說(shuō)還是不易掌握。在教學(xué)活動(dòng)中,教師要通過(guò)實(shí)例將語(yǔ)法講解透徹,實(shí)例的難度要循序漸進(jìn),從易而難,使學(xué)生在每次的學(xué)習(xí)過(guò)程中都能產(chǎn)生成就感,從而進(jìn)一步刺激學(xué)生的求知欲望,通過(guò)教師的主導(dǎo)性來(lái)發(fā)揮學(xué)生學(xué)習(xí)的積極性、創(chuàng)造性。
4.2案例教學(xué)法。在教學(xué)的過(guò)程中,首先教師拿出一個(gè)任務(wù)案例展示給學(xué)生看。這個(gè)案例里面涉及到的C語(yǔ)言知識(shí)點(diǎn)。對(duì)于已經(jīng)學(xué)過(guò)的知識(shí)點(diǎn),教師通過(guò)案例來(lái)展示,可以使學(xué)生鞏固知識(shí)點(diǎn)并加深印象;對(duì)于沒(méi)有學(xué)過(guò)的地方,就是在其后的課程中講解的重點(diǎn),并告訴學(xué)生,只有認(rèn)真聽(tīng)講才能完全理解案例的精彩之處。由于任務(wù)案例的引入,使得分散的知識(shí)點(diǎn)立刻變成實(shí)踐應(yīng)用,因此學(xué)生在課堂上也更容易被教師吸引,能更緊地跟上教師的思路。對(duì)于學(xué)生來(lái)說(shuō),他們?cè)诎咐龑W(xué)習(xí)中,不一定能把所學(xué)的知識(shí)一一總結(jié)出來(lái),但是他們見(jiàn)識(shí)了C語(yǔ)言是如何處理實(shí)際問(wèn)題的,這對(duì)他們提高認(rèn)識(shí),增加興趣,提高解決實(shí)際問(wèn)題的能力都是很有幫助的。
4.3分組教學(xué)法。分組教學(xué)體現(xiàn)了學(xué)生的主體地位,可以激發(fā)學(xué)習(xí)興趣。根據(jù)班級(jí)人數(shù)和機(jī)房布置情況5人—6人分為一組,組長(zhǎng)位置坐在中間,水平較好的學(xué)生挨著水平較差的學(xué)生。分組教學(xué)可以實(shí)現(xiàn)提優(yōu)補(bǔ)差。水平較差的學(xué)生在遇到問(wèn)題時(shí)可以及時(shí)得到幫助,能跟上全班進(jìn)度,也增強(qiáng)了繼續(xù)學(xué)習(xí)的信心。分組教學(xué)可以培養(yǎng)學(xué)生自主探究、合作學(xué)習(xí)的能力。《C語(yǔ)言程序設(shè)計(jì)》課程是用程序項(xiàng)目的方式把實(shí)驗(yàn)內(nèi)容布置下去,許多綜合性程序項(xiàng)目要求以小組為單位完成。
4.4任務(wù)驅(qū)動(dòng)教學(xué)法。為了培養(yǎng)學(xué)生的創(chuàng)造思維、獨(dú)立分析問(wèn)題和解決問(wèn)題的能力,以及實(shí)際編程的能力,我們?cè)O(shè)計(jì)短期任務(wù)與長(zhǎng)期任務(wù)結(jié)合的上機(jī)內(nèi)容。以一個(gè)項(xiàng)目作為長(zhǎng)期任務(wù),再按不同功能模塊分解開(kāi)來(lái),形成一個(gè)短期任務(wù)。每一章學(xué)過(guò)之后要求完成一項(xiàng)或幾項(xiàng)編程作業(yè),各章的編程作業(yè)不是孤立的,而是相互聯(lián)系的,實(shí)際上它們都是一個(gè)較大型較復(fù)雜程序的組成部分。這樣就可以使學(xué)生的任務(wù)形成一種連貫性,在整個(gè)學(xué)科的學(xué)習(xí)過(guò)程中始終都有一個(gè)總?cè)蝿?wù)的驅(qū)動(dòng),而學(xué)生又在一個(gè)又一個(gè)短期任務(wù)的驅(qū)動(dòng)下,體驗(yàn)著一次又一次邁向成功的喜悅。例如,以“學(xué)生成績(jī)管理系統(tǒng)”為課程設(shè)計(jì)的長(zhǎng)期任務(wù),從常用輸入/輸出語(yǔ)句printf和scanf開(kāi)始,讓學(xué)生編寫(xiě)主函數(shù)調(diào)用若干個(gè)空函數(shù)形成一個(gè)文本型菜單的雛形:學(xué)習(xí)常用數(shù)據(jù)類(lèi)型后,再編寫(xiě)一個(gè)驗(yàn)證密碼輸入的函數(shù);學(xué)完選擇結(jié)構(gòu)后,要求編寫(xiě)一個(gè)菜單選取函數(shù);學(xué)完循環(huán)控制和數(shù)組后,要求建立班級(jí)課程的成績(jī)輸入輸出函數(shù);學(xué)完結(jié)構(gòu)體類(lèi)型后,要求使用結(jié)構(gòu)體數(shù)組來(lái)存儲(chǔ)和處理學(xué)生的信息;學(xué)習(xí)鏈表后,要求利用單鏈表動(dòng)態(tài)管理學(xué)生的成績(jī);最后在“文件”這一章,要求利用文件操作完成學(xué)生成績(jī)管理。當(dāng)學(xué)完整個(gè)課程,完成了平時(shí)要求的各項(xiàng)編程作業(yè)之后,學(xué)生就會(huì)發(fā)現(xiàn),自己完成的遠(yuǎn)不是一個(gè)一個(gè)零碎的程序段,而是一塊塊制作程序的各個(gè)部件,只要通過(guò)簡(jiǎn)單的程序拼裝,就可以構(gòu)成一個(gè)比較復(fù)雜的程序。這也在潛移默化中培養(yǎng)了學(xué)生采用各個(gè)擊破的方法解決實(shí)際問(wèn)題的意識(shí)。最后,學(xué)生從整的角度來(lái)審視整個(gè)程序的設(shè)計(jì),并通過(guò)上機(jī)進(jìn)行綜合調(diào)試,達(dá)到提高編程能力的目的。
5.培養(yǎng)學(xué)生的自學(xué)能力
計(jì)算機(jī)技術(shù)知識(shí)更新太快,對(duì)于計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生來(lái)說(shuō),在C語(yǔ)言教學(xué)中,培養(yǎng)學(xué)生的自學(xué)能力尤為重要。教師不僅要傳授現(xiàn)有的知識(shí),而且要傳授獲取知識(shí)的方法。對(duì)于學(xué)習(xí)能力較強(qiáng)的學(xué)生,教師應(yīng)該鼓勵(lì)他們自學(xué),并給予方向性指導(dǎo),讓他們超前學(xué)習(xí),甚至自學(xué)C語(yǔ)言前沿應(yīng)用技術(shù)。在實(shí)際教學(xué)過(guò)程中從問(wèn)題入手,引導(dǎo)學(xué)生在尋求問(wèn)題的解決方案的同時(shí),學(xué)會(huì)了運(yùn)用網(wǎng)絡(luò)、圖書(shū)館等獲取信息的方法,對(duì)獲得的信息進(jìn)行篩選和修改,并進(jìn)一步理解,最后把其應(yīng)用到自己要解決的問(wèn)題中。這一過(guò)程,為今后的終身學(xué)習(xí)打下了基礎(chǔ)。
6.結(jié)語(yǔ)
總之,在C語(yǔ)言程序設(shè)計(jì)的教學(xué)過(guò)程中,教師應(yīng)遵循理實(shí)一體化教學(xué)原則,培養(yǎng)學(xué)生的編程能力和利用C語(yǔ)言解決實(shí)際問(wèn)題的應(yīng)用能力,培養(yǎng)學(xué)生的自學(xué)能力。在今后教學(xué)中我們?nèi)詫⒉粩鄬?shí)踐與探索,進(jìn)一步改進(jìn)教學(xué)方法,充分調(diào)動(dòng)學(xué)生的主觀能動(dòng)性,以取得更好的教學(xué)效果。
參考文獻(xiàn):
[1]譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2007.
[2]崔婭萍.高職C語(yǔ)言教學(xué)探討與研究[J].中國(guó)科教創(chuàng)新導(dǎo)刊,2010,(28).
[3]喬瑞琴.語(yǔ)言教學(xué)的實(shí)踐和探索[J].山西煤炭管理干部學(xué)院學(xué)報(bào),2010,(03).
[4]王創(chuàng)偉,湯克明,蔡長(zhǎng)安.《C語(yǔ)言程序設(shè)計(jì)》教學(xué)改革方案與實(shí)踐[J].現(xiàn)代計(jì)算機(jī)(專(zhuān)業(yè)版),2010,(11).
注:“本文中所涉及到的圖表、公式、注解等請(qǐng)以PDF格式閱讀”