【摘 要】本文結(jié)合C語言課程的特點(diǎn),分析了當(dāng)前在教學(xué)中存在的問題,提出了一些有效的教學(xué)方法,幫助學(xué)生激發(fā)學(xué)習(xí)興趣,提高實(shí)踐動(dòng)手能力和團(tuán)隊(duì)協(xié)作能力。該研究成果取得了良好的教學(xué)效果,受到學(xué)生的普遍歡迎。
【關(guān)鍵詞】C語言教學(xué) 教學(xué)方法 程序設(shè)計(jì)
一、引言
“C語言程序設(shè)計(jì)”課程是信息類專業(yè)的一門重要專業(yè)基礎(chǔ)課程,在整個(gè)課程體系中占有重要的地位。C語言學(xué)習(xí)的好壞,將直接影響著學(xué)生進(jìn)一步學(xué)習(xí)其它與編程相關(guān)的課程的學(xué)習(xí)效果。因此,作為學(xué)生接觸到的第一門計(jì)算機(jī)語言,C語言成為了學(xué)生學(xué)習(xí)其它相關(guān)課程的基礎(chǔ)和必備技能,學(xué)生必須認(rèn)真對(duì)待,將C語言學(xué)好。
為了實(shí)現(xiàn)這個(gè)目標(biāo),教師在教學(xué)時(shí)采用的授課方式和管理方法將起著關(guān)鍵的作用。在本文中,我們結(jié)合多年的教學(xué)經(jīng)驗(yàn),首先分析了初學(xué)者面臨的一些問題,然后提出了相應(yīng)的教學(xué)改革措施。這些方法在近幾年的教學(xué)實(shí)踐中不斷總結(jié)與完善,獲得了很好的教學(xué)效果。
二、初學(xué)者面臨的問題
計(jì)算機(jī)語言是人與計(jì)算機(jī)進(jìn)行交流的語言,它的學(xué)習(xí)方法與人類的語言的學(xué)習(xí)方法有很大的相似之處,都是需要掌握一些詞匯、語法,然后進(jìn)行大量的實(shí)踐,才會(huì)掌握這門語言。
對(duì)于初學(xué)者,如果一開始就專注于語法,就會(huì)覺得C語言學(xué)習(xí)起來很費(fèi)勁,甚至?xí)霈F(xiàn)厭學(xué)情緒,極大地削弱了學(xué)習(xí)的積極性。因此,在剛開始接觸C語言時(shí),不要花費(fèi)太多的精力去學(xué)習(xí)語法,而是要采用模仿的方式,學(xué)會(huì)使用一些常用的語句,解決與例題相似的問題即可。另外,初學(xué)C語言時(shí),要將重點(diǎn)放在閱讀程序上,而不要一開始就去編寫程序,因?yàn)樵诶斫饬艘恍┏R姷某绦蛑?,學(xué)生一方面學(xué)習(xí)了常用的表達(dá)法,另一方面,也熟悉了解決問題的步驟與方法,有了這些基礎(chǔ),再去編程解決其它問題就會(huì)容易得多。
當(dāng)然上面提到的兩個(gè)問題,是為了讓初學(xué)者好入門,在學(xué)習(xí)的過程中采用循序漸進(jìn)的方式,使學(xué)生在保持積極性的前提下學(xué)會(huì)一些基礎(chǔ)知識(shí)。對(duì)于C語言中的重難點(diǎn)部分,如函數(shù)和指針,如何讓學(xué)生理解它們的用法,則需要一定的教學(xué)方法進(jìn)行輔助,才能達(dá)到較好的效果。
三、教學(xué)方法與改革措施
(一)板書、多媒體和現(xiàn)場(chǎng)編程教學(xué)方式的結(jié)合
傳統(tǒng)的教學(xué)方式是通過板書來進(jìn)行的。這種方式可以將知識(shí)點(diǎn)講得很細(xì)致,容易被學(xué)生所接受。然而,板書式教學(xué)不是很適合操作性很強(qiáng)的課程的教學(xué),因?yàn)檫@些課程需要給學(xué)生作一定的演示,才能獲得好的效果。于是,多媒體教學(xué)應(yīng)運(yùn)而生,教師只要事先做好幻燈片,在課堂上,按一定的順序演示給學(xué)生看就可以了。這種方式可以引入圖文聲像等各種素材,讓學(xué)生了解圍繞所講內(nèi)容的很多信息。不過這種方式也有些問題,需要教師把握好進(jìn)度,因?yàn)樾畔⒘亢芏?,就要考慮學(xué)生能否接受的問題了。對(duì)于編程課程,教師還需要在編程環(huán)境中給學(xué)生做好現(xiàn)場(chǎng)編程測(cè)試,學(xué)生才會(huì)明白具體的操作方法,便于學(xué)生進(jìn)行重復(fù)。
為了達(dá)到好的教學(xué)效果,我們通常是將這三種方式進(jìn)行結(jié)合,取它們的優(yōu)點(diǎn)。比如,在講解表達(dá)式計(jì)算的例子時(shí),我們將表達(dá)式寫在黑板上,用傳統(tǒng)教學(xué)法對(duì)計(jì)算順序進(jìn)行分析,學(xué)生也會(huì)跟著一起思考,這樣就可以將問題講得透徹;在給學(xué)生講遞歸程序時(shí),我們會(huì)將事先做好的遞歸分析的幻燈片展示給學(xué)生看,讓學(xué)生明白其中包含的遞推和回歸兩個(gè)階段;在給學(xué)生演示調(diào)試方法時(shí),我們會(huì)將一個(gè)有些錯(cuò)誤的程序在編程環(huán)境中進(jìn)行編譯,發(fā)現(xiàn)錯(cuò)誤,分析并改正錯(cuò)誤,然后再編譯,如果發(fā)現(xiàn)錯(cuò)誤再進(jìn)行修改,如此往復(fù),直到整個(gè)程序沒有錯(cuò)誤為止。在這個(gè)過程中,我們通過現(xiàn)成的例子,給學(xué)生展示了查錯(cuò)和排錯(cuò)的全過程,比起另外兩種教學(xué)方法,通過直接現(xiàn)場(chǎng)演示將更加直觀。
(二)測(cè)試驅(qū)動(dòng)開發(fā)
測(cè)試驅(qū)動(dòng)開發(fā)是一種新的快速軟件開發(fā)方法,它的基本思想是用測(cè)試推動(dòng)整個(gè)軟件開發(fā)的進(jìn)行。在C語言教學(xué)中引入測(cè)試驅(qū)動(dòng)開發(fā),可以給學(xué)生提供了一種新的解決問題的思維模式。這種方法的基礎(chǔ)步驟是:首先編寫一段個(gè)人認(rèn)為能夠解決問題的程序,接著運(yùn)行程序,如果出錯(cuò),就檢查并排除錯(cuò)誤,循環(huán)往復(fù),直到?jīng)]有語法錯(cuò)誤。然后,挑選一些典型的測(cè)試用例對(duì)程序進(jìn)行測(cè)試,看是否能夠得到想要的結(jié)果,如果某些例子的運(yùn)行結(jié)果出現(xiàn)錯(cuò)誤,這就是語義上的錯(cuò)誤了,需要對(duì)源程序進(jìn)行修改,直到所有的測(cè)試用例都通過為止。
另外,測(cè)試與調(diào)試是密不可分的。調(diào)試中要進(jìn)行大量的測(cè)試,測(cè)試中(特別是白盒測(cè)試)也要借鑒調(diào)試的方法。采用測(cè)試驅(qū)動(dòng)開發(fā),通過列舉一些典型的測(cè)試用例,讓學(xué)生重視調(diào)試和測(cè)試,深入理解程序運(yùn)行過程,確保程序的正確性與質(zhì)量。
(三)項(xiàng)目引導(dǎo),分組練習(xí)
學(xué)習(xí)編程的目的就是用來解決實(shí)際問題的。為了提高學(xué)生的實(shí)踐動(dòng)手能力,我們?cè)诘谝淮握n就給學(xué)生布置了一個(gè)項(xiàng)目——學(xué)生成績(jī)管理系統(tǒng)。這是學(xué)生非常熟悉的問題,對(duì)該問題的需求分析就很容易獲取了。隨著課程的推進(jìn),我們會(huì)要求學(xué)生用不同的數(shù)據(jù)結(jié)構(gòu)和算法來完成這個(gè)項(xiàng)目,可以將整個(gè)課程的內(nèi)容都融合到項(xiàng)目中,讓學(xué)生對(duì)實(shí)際問題的解決方法有了一定的了解。
在給學(xué)生布置任務(wù)時(shí),我們進(jìn)行了分組,其目的是提高學(xué)生的分工協(xié)作能力。我們要求學(xué)生2到4人為一組,寫清楚每個(gè)成員要完成的任務(wù),分開進(jìn)行編程后,再合并成一個(gè)大的程序。對(duì)于做得好的小組,還會(huì)給予一定的獎(jiǎng)勵(lì)。在分組練習(xí)過程中,學(xué)生可以互幫互助,分工協(xié)作,很好地鍛煉了他們的團(tuán)隊(duì)意識(shí)和實(shí)踐動(dòng)手能力。
四、總結(jié)
本文針對(duì)C語言教學(xué)中出現(xiàn)的問題,將多種教學(xué)方法、測(cè)試驅(qū)動(dòng)開發(fā)、項(xiàng)目引導(dǎo)和分組練習(xí)引入到C語言課程的教學(xué)中,讓學(xué)生較好地掌握了基礎(chǔ)知識(shí),同時(shí)實(shí)踐動(dòng)手能力得到了鍛煉,培養(yǎng)了學(xué)生的團(tuán)隊(duì)協(xié)作能力。實(shí)踐證明,通過對(duì)教學(xué)方法進(jìn)行改革與探討,可以大幅度提高教學(xué)效果,受到學(xué)生的普遍歡迎。
參考文獻(xiàn):
[1]伍鵬. 淺析C語言初學(xué)者應(yīng)注意的幾個(gè)問題[J]. 電腦知識(shí)與技術(shù). 2011(12): 9123-9125.
[2]伍鵬, 謝凱. 基于測(cè)試驅(qū)動(dòng)開發(fā)的C語言教學(xué)研究[J]. 軟件. 2012(05): 103-104.
[3] 譚浩強(qiáng). C語言程序設(shè)計(jì)(第四版)[M]. 北京:清華大學(xué)出版社. 2010.03.
作者簡(jiǎn)介:
伍鵬(1978-),男,碩士,講師,現(xiàn)主要從事計(jì)算機(jī)應(yīng)用方面的教學(xué)及研究工作。
杜紅(1964-),女,碩士,副教授,現(xiàn)主要從事計(jì)算機(jī)應(yīng)用方面的教學(xué)及研究工作。
謝凱(1975-),男,博士,教授,主要研究方向是圖像處理與三維可視化。
基金項(xiàng)目:
本文系長(zhǎng)江大學(xué)重點(diǎn)教學(xué)研究項(xiàng)目(JY2012009)