摘要:本文基于NCRE和C語言的部分特點,嘗試了一種全新的模板式教學(xué)方式,使學(xué)生能快速掌握C語言,提高編程能力,順利通過NCRE考試。
關(guān)鍵詞:C語言;NCRE;模板式教學(xué);編程能力
C語言是一種計算機程序設(shè)計語言。它既具有高級語言的特點,又具有匯編語言的特點,它可以作為系統(tǒng)設(shè)計語言,編寫工作系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計語言,編寫不依賴計算機硬件的應(yīng)用程序。因此,它的應(yīng)用范圍廣泛。
同時C語言也是高等院校的重點課程之一,是工科專業(yè)學(xué)生的基礎(chǔ)課程,是計算機、軟件、電信、自動化等專業(yè)接觸的第一門重要專業(yè)基礎(chǔ)課,學(xué)好C語言對培養(yǎng)學(xué)生的編程能力有著非常重要的作用[1]。
1C語言在NCRE中的作用
全國計算機等級考試(National Computer Rank Examination,簡稱NCRE),是由教育部考試中心主辦,面向社會用于考查計算機應(yīng)用知識與能力的全國性計算機水平考試體系。NCRE證書是具有基本計算機使用能力的社會通用標(biāo)準,是職務(wù)晉升、職稱評定、崗位競聘的重要依據(jù)[2]。
目前NCRE考試中C語言主要用在二級C語言和三級信息管理、網(wǎng)絡(luò)、數(shù)據(jù)庫的上機考試中。二級C語言分填空(30分)、改錯(30分)和編程(40分)三個大題。三級中只有一個編程大題(100分)。由分值的分布情況來看,C語言編程能力對考試的通過與否有著極其重要的作用,特別是三級考試顯得更為重要。
2007年上半年的統(tǒng)計數(shù)據(jù)顯示,二級C語言的考試人數(shù)在二級考試的所有語種中占38.24%,VFP占37.33%[3]。但C語言的通過率卻只有VFP的一半左右。因為C語言是一門實踐性非常強的課程,不僅要在課堂上理解每個知識點,還必須通過大量的上機實驗進行融會貫通,這才能真正的掌握它,而目前大學(xué)的教學(xué)計劃普遍設(shè)置為70~80課時左右,按理論和上機1︰1的配置來說課時量顯然是不夠的,加之課堂上的內(nèi)容無法當(dāng)堂全部消化,所以必須要求學(xué)生在課外花大量時間去實踐,但由于種種原因,大量學(xué)生并不能達到這個目的。同學(xué)普通對C語言產(chǎn)生了畏難心理,信心受到一定打擊,當(dāng)學(xué)到指針時,許多學(xué)生都很難一次性聽懂,這導(dǎo)致部分同學(xué)放棄了后面的學(xué)習(xí)。有的考生在二級C語言上機考試中甚至都只做填空題和改錯題,放棄了編程題。100分試卷變成了60分,由此可以想象通過的可能性肯定會降低很多。
基于此,在現(xiàn)有的教學(xué)模式下,筆者在一個NCRE二級C語言考試培訓(xùn)班中進行了一次模板式教學(xué)的嘗試,以期待一個更好的教學(xué)效果。
2模板式教學(xué)的實踐
2.1什么是模板式教學(xué)
其實模板對學(xué)生來說并不陌生,經(jīng)歷過高考的學(xué)生大部分都背過英語作文模板;PowerPoint也提供很多現(xiàn)成的幻燈片模板;特別是在網(wǎng)頁制作上,模板更是異常流行。
“模板”在新華字典中的解釋為:澆灌混凝土用的模型板,一般用木料制成。現(xiàn)在“模板”的概念已經(jīng)廣泛應(yīng)用于分子生物學(xué)、遺傳學(xué)、網(wǎng)站、Microsoft Office辦公軟件、面向?qū)ο蟪绦蛟O(shè)計等領(lǐng)域,如在Microsoft Office辦公軟件領(lǐng)域,模板是指一個或多個文件所包含的結(jié)構(gòu)和工具構(gòu)成的已完成的文件樣式和頁面布局等元素。如Word 模板能夠生成單個文檔,而FrontPage 模板可以形成整個網(wǎng)站;在面向?qū)ο蟪绦蛟O(shè)計領(lǐng)域,模板是建立通用的與數(shù)據(jù)類型無關(guān)的算法的重要手段。如C++國際標(biāo)準ISO14882將模板正式引入標(biāo)準庫,要求用模板類取代傳統(tǒng)C++中定義的類。由此可見,模板在現(xiàn)代社會中是非常重要的。
模板式教學(xué)就是讓學(xué)生在一定的基礎(chǔ)上利用一些固定的套路來解題,可以把它理解為足球中的長傳沖吊、下底傳中等戰(zhàn)術(shù)?,F(xiàn)在有的觀點認為教學(xué)模板是應(yīng)試考試的產(chǎn)物,沒有什么實際意義,甚至于約束了學(xué)生的思維,不利于學(xué)生的發(fā)展。但筆者的觀點恰恰相反,教學(xué)模板是教師多年教學(xué)經(jīng)驗的總結(jié),學(xué)生不僅可以利用模板迅速解題,甚至自己也可以在實踐的過程中創(chuàng)立適合于自己的新的模板,這樣的話可以使學(xué)生融會貫通各個知識點,快速的掌握C語言。
在NCRE二級C語言上機考試時,可以先讀懂題目含義、理清思路、分析考點,判定本題具體應(yīng)該應(yīng)用哪個模板,然后先把模板寫出來,再去填空。這樣的話,編程題實際上就已經(jīng)變成了一個填空題,那么它的難度相對來說就小了許多,不至于一見到題目就有一種茫然的感覺。經(jīng)過對目前二級C語言上機考試中出現(xiàn)的編程題的分析,發(fā)現(xiàn)所有的編程題均可以大致分為以下六個種類:字符串、數(shù)組、結(jié)構(gòu)體、鏈表、自然數(shù)取位數(shù)、數(shù)學(xué)公式等。這六個種類也基本上涵蓋了所有C語言的考點,只有掌握所有知識點,并進行靈活應(yīng)用,這樣才能輕松解答所有考題。
下面就用三個模板實例來講解模板式教學(xué)是如何進行的[4]。
2.2部分模板實例和解題思路
實例一:二維數(shù)組模板。
for(i=0;i for(j=0;j { …… } 這個模板的作用是依次遍歷二維數(shù)組中的所有元素,模板中M和N是可以動態(tài)變化的。它可以應(yīng)用在求解二維數(shù)組最大值、最小值、平均值,二維數(shù)組轉(zhuǎn)存一維數(shù)組等多種題目上。具體二級考題如題1所示。 題1:請編寫一個函數(shù)fun,它的功能是:求出2×M整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。 解題思路:簡單分析題目后不難發(fā)現(xiàn),這是一個需要遍歷兩行M列二維數(shù)組的題目,在定義完初始變量后,可以馬上輸入二維數(shù)組模板,再在模板中用IF判斷語句篩選出最大值,即可輕松解完此題。完整參考代碼如下。 fun (int a[][M]) { int i,j, max=a[0][0]; for(i=0;i<2;i++)