崔鵬
關(guān)鍵詞:C語言? 中職院校? 教學(xué)策略
C語言本身是一門應(yīng)用較為廣泛的計(jì)算機(jī)語言。其本身具有結(jié)構(gòu)化的特點(diǎn),在進(jìn)行邏輯思維表達(dá)的過程中具有結(jié)構(gòu)清晰、易于編譯、高效運(yùn)行等優(yōu)點(diǎn),而且其能夠儲(chǔ)存各種類型的數(shù)據(jù),具有非常靈活的應(yīng)用性。因此對(duì)于初學(xué)者來說,對(duì)C語言模塊化的學(xué)習(xí)能夠更好地幫助學(xué)生鍛煉邏輯思維能力,這也是在中職院校中開設(shè)C語言課程的目的。
目前國內(nèi)的大部分中職院校中都將C語言程序設(shè)計(jì)作為計(jì)算機(jī)、自動(dòng)控制專業(yè)的一門基礎(chǔ)性課程。但是受傳統(tǒng)教學(xué)模式的影響,其并沒有達(dá)到理想的教學(xué)效果。首先,由于C語言本身的邏輯性很強(qiáng),學(xué)生對(duì)該門課程并沒有學(xué)習(xí)的興趣,再加上有部分學(xué)生對(duì)現(xiàn)在較為流行的語言開發(fā)程序并不是很了解,因此會(huì)認(rèn)為C語言本身并沒有什么用處。其次,在C語言的教學(xué)過程中仍然注重對(duì)語法、語句等細(xì)節(jié)內(nèi)容的講解,卻忽略了對(duì)學(xué)生設(shè)計(jì)能力和邏輯能力的培養(yǎng),這樣與實(shí)際的教學(xué)目標(biāo)之間存在很大差異,學(xué)生被動(dòng)接受知識(shí),參與程度不高。最后,C語言具有較強(qiáng)的實(shí)踐能力,但是教師過分注重理論知識(shí)教學(xué),導(dǎo)致上機(jī)課教學(xué)效果不理想,許多學(xué)生在上機(jī)課時(shí)過分依賴課本,不具備獨(dú)立編程的能力。
總之,由于多種因素的影響,導(dǎo)致教師在進(jìn)行C語言教學(xué)的過程中不能有效吸引學(xué)生的注意力,也不能讓學(xué)生具備獨(dú)立編程能力,導(dǎo)致最終的教學(xué)效果不理想。
受多種因素的影響,中職院校在進(jìn)行C語言教學(xué)時(shí)存在諸多問題,以下就從六方面進(jìn)行教學(xué)模式研究。
1. 精心設(shè)計(jì)導(dǎo)課
在新課改的形式下教師在開展教學(xué)活動(dòng)之前都會(huì)進(jìn)行課程導(dǎo)入,主要目的是為了更為深入地了解當(dāng)前學(xué)生的學(xué)習(xí)現(xiàn)狀,從而為教學(xué)內(nèi)容找到合適的切入點(diǎn),因此教師要精心設(shè)計(jì)導(dǎo)課。導(dǎo)課在內(nèi)容上可以分為兩部分,第一部分就是從C語言的基礎(chǔ)知識(shí)入手,讓學(xué)生了解C語言的關(guān)鍵作用,學(xué)會(huì)如何利用C語言解決其在實(shí)際應(yīng)用過程中的運(yùn)行模式和思維方式。第二部分就是對(duì)教材經(jīng)典案例進(jìn)行分析和效仿,了解C語言的數(shù)據(jù)類型、表達(dá)式、基本語句、基本結(jié)構(gòu)、數(shù)組、指針、函數(shù)直至整個(gè)程序的編寫方式和流程,使學(xué)生最終能夠利用這些技巧進(jìn)行整個(gè)程序的編程。這樣經(jīng)過導(dǎo)課的精心設(shè)計(jì),能夠有效吸引學(xué)生的注意力,從而讓學(xué)生能夠自主學(xué)習(xí)知識(shí)。
2. 深入挖掘案例
C語言中的概念、基本語法等都是一些概念性的知識(shí),具有較強(qiáng)的邏輯性,如果單純地對(duì)這些知識(shí)進(jìn)行學(xué)習(xí),學(xué)生很難理解其內(nèi)容,也不會(huì)靈活運(yùn)用,再加上C語言的許多語言之間差別非常小,學(xué)生只通過理論知識(shí)的學(xué)習(xí),很難區(qū)分這些差別。因此在針對(duì)這些內(nèi)容進(jìn)行教學(xué)時(shí),教師就可以深入挖掘案例,以案例為基礎(chǔ)進(jìn)行教學(xué)內(nèi)容的講解。
比如說while()和do while()語句,兩者在進(jìn)行應(yīng)用時(shí)所使用的環(huán)境以及所表達(dá)的內(nèi)容大致相同,但是其所使用的初始條件是不相同的,因此在進(jìn)行應(yīng)用時(shí)可以將兩者分別設(shè)置為初始條件“真”和“假”的例子,然后進(jìn)行程序的運(yùn)行,最終會(huì)出現(xiàn)兩種不同的效果,同時(shí)在進(jìn)行教學(xué)時(shí)結(jié)合具體的案例進(jìn)行知識(shí)點(diǎn)的挖掘,這樣學(xué)生就會(huì)明白,當(dāng)程序的初始條件為“假”時(shí),do while()語句就會(huì)多執(zhí)行一次。這樣,經(jīng)過案例的分析,學(xué)生可以將兩種相似的語法區(qū)分開來,還能夠加深對(duì)知識(shí)的運(yùn)用程度,從而提高整個(gè)課堂教學(xué)效果。但是值得注意的是,在進(jìn)行案例選擇時(shí)要根據(jù)教學(xué)進(jìn)度安排進(jìn)行合理選擇,并逐漸加深案例的難度,這樣才能夠起到鍛煉能力的作用。
3. 巧設(shè)錯(cuò)誤陷阱
對(duì)于計(jì)算機(jī)語言來說,每一個(gè)語句、語法的應(yīng)用都具有一定的規(guī)則,而且這些規(guī)則適用于所有的編程人員,如果違背了這些規(guī)則,所編寫的程序在進(jìn)行編譯時(shí)就會(huì)報(bào)錯(cuò)。但是由于自身能力的限制,中職院校的學(xué)生并不具備準(zhǔn)確避免編譯錯(cuò)誤的能力,再加上教師在進(jìn)行教學(xué)時(shí),不能夠?qū)@些編譯不規(guī)范的行為進(jìn)行提醒,從而導(dǎo)致學(xué)生在實(shí)際編程的過程中就很容易掉入陷阱。針對(duì)此類問題,教師在教學(xué)時(shí)可以巧設(shè)錯(cuò)誤陷阱,從而對(duì)學(xué)生起到警示作用。
比如說在進(jìn)行C語言編程時(shí),以求三角形面積的程序?yàn)槔M(jìn)行教學(xué),教師就可以為學(xué)生設(shè)置錯(cuò)誤陷阱。將正確的程序故意寫錯(cuò):
#Include
main( )
{float a,b,c,p,s;
printf(“輸入三角形的三條邊長(用逗號(hào)隔開):”);
scanf(“%f,%f,%f”&a,&b,&c);
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf(“\n三角形的面積為: %d”,s);}
在課堂上運(yùn)行該程序運(yùn)行時(shí),將三角形的三個(gè)邊輸入到程序中,如果程序正確,學(xué)生可以運(yùn)算出三角形的面積。但是運(yùn)行以上的程序就會(huì)發(fā)現(xiàn),該程序并不能夠運(yùn)行,這是為什么?程序在邏輯上并沒有什么錯(cuò)誤,也沒有語法上的錯(cuò)誤,那為什么程序就不能夠運(yùn)行出正確的答案呢?這時(shí)教師就可以幫助學(xué)生進(jìn)行分析,對(duì)其中數(shù)據(jù)的輸出類型進(jìn)行分析,發(fā)現(xiàn)其類型并不一致,輸入的三個(gè)邊數(shù)據(jù)類型為“%f”,但是最后求的三角形的面積數(shù)據(jù)類型則是“%d”,然后試著將其中的“printf(“\n三角形的面積為: %d”,s );}”中的“%d”改為“%f”再次進(jìn)行程序運(yùn)行,就可以得出結(jié)果。通過這樣的一個(gè)例子,學(xué)生就會(huì)在以后的編程中能夠仔細(xì)對(duì)待。
4. 理論與實(shí)踐結(jié)合
C語言本身具有非常強(qiáng)的邏輯思維能力,如果在進(jìn)行教學(xué)時(shí)只注重對(duì)學(xué)生進(jìn)行理論知識(shí)的傳授,很難讓學(xué)生真正學(xué)會(huì)運(yùn)用知識(shí),因此在教學(xué)時(shí)要將理論知識(shí)教學(xué)與實(shí)踐能力鍛煉有機(jī)地結(jié)合在一起,從而更好地提升C語言教學(xué)效果。這就意味著教師在進(jìn)行教學(xué)的過程中要摒棄滿堂灌的教學(xué)方法,利用一些現(xiàn)代化的教學(xué)方式將理論與實(shí)踐結(jié)合在一起。教師可以將一些實(shí)踐知識(shí)借助多媒體的形式在課堂上進(jìn)行編程和運(yùn)行,展示程序運(yùn)行的效果,這樣通過學(xué)生在課堂上的真實(shí)反應(yīng),教師能夠及時(shí)地掌握學(xué)生的學(xué)情況,從而更有針對(duì)性地進(jìn)行教學(xué)重難點(diǎn)調(diào)整,從而及時(shí)解答學(xué)生的疑惑之處。同時(shí)多媒體這樣的新穎教學(xué)方式還可以有效吸引學(xué)生的注意力,從而激發(fā)學(xué)生的學(xué)習(xí)興趣。
比如說,教師在進(jìn)行教學(xué)時(shí)應(yīng)該根據(jù)教學(xué)內(nèi)容設(shè)計(jì)不同的實(shí)踐內(nèi)容,并結(jié)合學(xué)生自身的特點(diǎn),進(jìn)行課堂展示,這樣能夠利用實(shí)踐的作用吸引學(xué)生的注意力。同時(shí)將理論與實(shí)踐結(jié)合,能夠讓學(xué)生在實(shí)踐中加深對(duì)理論知識(shí)的記憶,在實(shí)踐中驗(yàn)證理論的正確性,最終提升學(xué)生的編程能力。
5. 合理利用上機(jī)時(shí)間
在中職院校C語言程序設(shè)計(jì)課程中都會(huì)設(shè)置專門的上機(jī)課,其主要的目的是為學(xué)生提供一個(gè)良好的操作能力鍛煉平臺(tái),從而讓學(xué)生有機(jī)會(huì)鍛煉自己的上機(jī)編程能力,同時(shí)也能夠檢驗(yàn)學(xué)生對(duì)理論知識(shí)的掌握程度。學(xué)生在上機(jī)課中進(jìn)行編程才能夠暴露出自己在學(xué)習(xí)過程中的不規(guī)范行為和錯(cuò)誤編程習(xí)慣。但是就目前來說,C語言課程任務(wù)重,時(shí)間有限,大部分的時(shí)間還是花在理論知識(shí)的講解上,因此學(xué)生上機(jī)時(shí)間是非常有限的,這就要求教師在上機(jī)之前著重強(qiáng)調(diào)上機(jī)的重要性,并布置對(duì)應(yīng)的上機(jī)作業(yè),要求學(xué)生明確自己上機(jī)的目的和作用。上機(jī)的任務(wù)要有難有易:利用簡單的任務(wù)鞏固學(xué)生對(duì)理論知識(shí)的學(xué)習(xí),加深其記憶程度,鍛煉其編程能力,樹立其成就感和自信心;利用較難的任務(wù)挑戰(zhàn)成績好的學(xué)生,從而調(diào)動(dòng)其創(chuàng)造性。這樣才能充分發(fā)揮上機(jī)課的作用。
就目前來說,在上機(jī)課中學(xué)生所處的編譯環(huán)境是Visual C++,而且在該環(huán)境中所有提示都是英文的。為了讓學(xué)生快速發(fā)現(xiàn)自己的錯(cuò)誤并自行糾正,在上機(jī)之前,教師就需要對(duì)常見的提示語進(jìn)行解釋和說明,這樣學(xué)生在看到對(duì)應(yīng)的提示語之后就能夠有針對(duì)性地分析自己的錯(cuò)誤之處,從而減少對(duì)上機(jī)時(shí)間的浪費(fèi)現(xiàn)象,提高上機(jī)課效率。另外教師在教學(xué)時(shí)還需要對(duì)學(xué)生在上機(jī)課中遇到的錯(cuò)誤操作進(jìn)行歸納,讓學(xué)生在上機(jī)鍛煉時(shí)能夠時(shí)刻注意程序編寫的規(guī)范性,端正自己上機(jī)的態(tài)度,這樣才能夠有效降低在上機(jī)時(shí)出現(xiàn)錯(cuò)誤的次數(shù),最終提高學(xué)生上機(jī)課的效果。
總之,在中職院校中進(jìn)行C語言程序設(shè)計(jì)教學(xué)的過程中應(yīng)該打破傳統(tǒng)教學(xué)模式的弊端,在教學(xué)的過程中深刻認(rèn)識(shí)到C語言程序設(shè)計(jì)的特點(diǎn),然后精心設(shè)計(jì)導(dǎo)課,吸引學(xué)生的注意力;深入挖掘案例,鍛煉學(xué)生的能力;巧設(shè)錯(cuò)誤陷阱,糾正學(xué)生的錯(cuò)誤行為;理論與實(shí)踐結(jié)合,鍛煉學(xué)生的操作能力;合理利用上機(jī)時(shí)間,提升學(xué)生的操作水平,最終提升學(xué)生的C語言編程能力。
參考文獻(xiàn):
[1]陳戰(zhàn)勝. C語言課程創(chuàng)新教學(xué)模式研究與實(shí)踐[J]. 教育教學(xué)論壇, 2015(3).
[2]馮運(yùn)仿. C語言程序設(shè)計(jì)課程教學(xué)模式的研究與實(shí)踐[J]. 福建電腦, 2012, 28(1).
[3]郭曉俐, 湯克明. 研究性教學(xué)模式在C語言教學(xué)中的實(shí)施[J]. 計(jì)算機(jī)教育, 2010(2).
[4]王曉光. C語言教學(xué)的教學(xué)模式改革策略解析[J]. 電腦知識(shí)與技術(shù), 2013(10).
(作者單位:邢臺(tái)技師學(xué)院)