林小茶
摘要:“C語(yǔ)言程序設(shè)計(jì)”已經(jīng)成為現(xiàn)代大學(xué)生的一門(mén)必修課,也是大學(xué)生了解計(jì)算機(jī)和學(xué)習(xí)計(jì)算機(jī)知識(shí)的基礎(chǔ)。本文從教材的選擇,教學(xué)內(nèi)容的安排以及至案例的選擇等幾方面對(duì)“C語(yǔ)言程序設(shè)計(jì)”的教學(xué)方法作了一些研究和探討。
關(guān)鍵詞:C語(yǔ)言;程序設(shè)計(jì);教學(xué)方法
中圖分類號(hào):G642文獻(xiàn)標(biāo)識(shí)碼:B
1引言
隨著大學(xué)的擴(kuò)招,越來(lái)越多的普通學(xué)生進(jìn)入大學(xué)學(xué)習(xí),大學(xué)也從精英教育向普通教育過(guò)渡。不論理科還是文科,C語(yǔ)言程序設(shè)計(jì)成為很多大學(xué)生學(xué)習(xí)計(jì)算機(jī)知識(shí)的入門(mén)課程之一。這使我們這些長(zhǎng)期從事程序設(shè)計(jì)教學(xué)的人員,遭遇到了前所未有的挑戰(zhàn)。
如何挑選教材,如何安排教學(xué)內(nèi)容,如何選擇適當(dāng)?shù)陌咐鹊仁俏覀儽仨氁鎸?duì)的問(wèn)題。本文就這些問(wèn)題作一些探討。
2以往的教學(xué)經(jīng)驗(yàn)
多年來(lái),我一直在教學(xué)第一線教授C語(yǔ)言程序設(shè)計(jì),在以往的教學(xué)中,我要求自己做到以下幾點(diǎn):
第一,講課內(nèi)容要符合初學(xué)者的認(rèn)知規(guī)律,從簡(jiǎn)單到復(fù)雜,循序漸進(jìn)。
第二,通過(guò)實(shí)例講解相關(guān)的概念,重點(diǎn)在培養(yǎng)學(xué)生的程序設(shè)計(jì)能力。
第三,算法要盡量簡(jiǎn)單,有利于學(xué)生的理解。
第四,授課涉及的內(nèi)容,要講解透徹、詳盡。
譚浩強(qiáng)老師的《C程序設(shè)計(jì)》是我在教學(xué)中長(zhǎng)期選用的教材,因?yàn)樗軌蚝芎玫貪M足自己的教學(xué)思想和要求。
該教材的編寫(xiě)順序和內(nèi)容,非常符合初學(xué)者的認(rèn)知規(guī)律,難點(diǎn)分散,內(nèi)容的安排較合理,每一章都講解了新的概念,但又注意到不引入太多的新概念;為了避免從概念到概念,從理論到理論,教材中使用了大量通俗易懂的實(shí)例,并使用很多有意義的圖表來(lái)分析和講解概念,方便同學(xué)們對(duì)概念的理解;該書(shū)的內(nèi)容重點(diǎn)突出,對(duì)C語(yǔ)言中最基本和常用的部分進(jìn)行了詳細(xì)的分析和講解,為學(xué)生以后更深層次的學(xué)習(xí)打下了牢固的基礎(chǔ)。
學(xué)生們普遍反映《C程序設(shè)計(jì)》是一本非常好的教材,不但幫助他們掌握了程序設(shè)計(jì)的理念,還能真正動(dòng)手編寫(xiě)一些實(shí)用程序。只不過(guò),我以前的學(xué)生,大部分是錄取分?jǐn)?shù)超過(guò)一本的,《C程序設(shè)計(jì)》的難度和深度對(duì)他們很適合。最近幾年,由于擴(kuò)招和學(xué)校合并等原因,學(xué)生的水平越發(fā)參差不齊,給教學(xué)工作帶來(lái)了不少難度,也使自己更多地思考和嘗試搞好程序設(shè)計(jì)教學(xué)的方法。
3選擇適當(dāng)?shù)慕滩?/p>
有關(guān)C語(yǔ)言程序設(shè)計(jì)的教材,真可謂是百花齊放,百鳥(niǎo)爭(zhēng)鳴了,筆者并不認(rèn)為這是一件壞事情,恰恰相反,如果每個(gè)作者經(jīng)過(guò)自己多年的教學(xué)和科研,都對(duì)程序設(shè)計(jì)課程的教學(xué)方法有自己獨(dú)特的想法,同行們可以互相交流,取人之長(zhǎng)補(bǔ)己之短,何樂(lè)而不為呢?但不論如何,由于教材比較多(也確實(shí)有些教材水平不高),給教師們選擇教材帶來(lái)了難度。為此,譚浩強(qiáng)老師總結(jié)了自己多年的教學(xué)和寫(xiě)作經(jīng)驗(yàn),根據(jù)讀者的不同需求將C語(yǔ)言教材分為三種版本,以適應(yīng)不同的學(xué)生。
第一本就是發(fā)行了1000多萬(wàn)冊(cè)的新世紀(jì)計(jì)算機(jī)基礎(chǔ)教育叢書(shū)之《C程序設(shè)計(jì)》,已經(jīng)發(fā)行第三版了,該教材全面細(xì)致、深入淺出地介紹了使用C語(yǔ)言進(jìn)行程序設(shè)計(jì)的方法,語(yǔ)言生動(dòng)案例豐富,不僅講解了C語(yǔ)言的語(yǔ)法,還通過(guò)大量的例題講解了構(gòu)造程序和設(shè)計(jì)算法的基本要領(lǐng);第二本是普通高等教育“十一五”國(guó)家級(jí)規(guī)劃教材,“中國(guó)高等院校計(jì)算機(jī)基礎(chǔ)教育課程體系規(guī)劃教材”之《C程序設(shè)計(jì)教程》,這本書(shū)以《C程序設(shè)計(jì)》為基礎(chǔ),科學(xué)地減少了部分內(nèi)容,更加突出了教學(xué)重點(diǎn),采用了既通俗又精練的寫(xiě)法;第三本也是普通高等教育“十一五”國(guó)家級(jí)規(guī)劃教材,高等院校計(jì)算機(jī)應(yīng)用技術(shù)規(guī)劃教材應(yīng)用型教材系列之《C語(yǔ)言程序設(shè)計(jì)(第二版)》,與前兩本相比,內(nèi)容更加精練。三本書(shū)均采用了“提出問(wèn)題—解決問(wèn)題—?dú)w納分析”的寫(xiě)作思想,在講解程序時(shí),包括了提出問(wèn)題、解題思路、編寫(xiě)程序、運(yùn)行結(jié)果、程序說(shuō)明和深入思考等幾部分內(nèi)容。
筆者在教學(xué)工作中接觸了很多學(xué)生,有號(hào)稱“小清華”的本科學(xué)生,有普通本科學(xué)生,還有夜大的學(xué)生,實(shí)踐證明,將學(xué)生準(zhǔn)確分類,選擇適合他們的教學(xué)內(nèi)容和教材是非常重要的。上述第一本教材適合學(xué)生基礎(chǔ)好、學(xué)時(shí)較多(一般應(yīng)超過(guò)56學(xué)時(shí))、對(duì)程序設(shè)計(jì)的應(yīng)用要求比較高的專業(yè)的學(xué)生,例如軟件工程、信息安全等專業(yè);而第二本教材適合學(xué)生基礎(chǔ)一般、學(xué)時(shí)中等(一般為48學(xué)時(shí))、對(duì)程序設(shè)計(jì)的應(yīng)用要求不太高的專業(yè),例如通信工程、計(jì)算機(jī)審計(jì)等專業(yè);第三本教材適合學(xué)生基礎(chǔ)一般、學(xué)時(shí)較少(32學(xué)時(shí)左右)、對(duì)程序設(shè)計(jì)的應(yīng)用要求很低的專業(yè),例如管理科學(xué)等,對(duì)這些專業(yè),只要求學(xué)生能看得懂程序,了解計(jì)算機(jī)是怎么解決問(wèn)題的就達(dá)到教學(xué)目標(biāo)了。
而對(duì)于一些重點(diǎn)院校,尤其是學(xué)生的自學(xué)能力非常強(qiáng)的學(xué)校,如果教師自己的水平也足夠高,有很深的程序設(shè)計(jì)功底,不妨選擇吳文虎老師的《程序設(shè)計(jì)基礎(chǔ)》,這也是一本非常好的教材。
4靈活安排教學(xué)內(nèi)容
教材不是講稿,任課教師需要根據(jù)各自專業(yè)的特點(diǎn),對(duì)教學(xué)內(nèi)容做適當(dāng)?shù)娜∩?不需要面面俱到。盡管譚浩強(qiáng)老師的三種教材已經(jīng)根據(jù)學(xué)生的不同層次,將教學(xué)內(nèi)容做了重新取舍,但是教師的工作就是要因材施教,而不能照本宣科。
例如,對(duì)于位運(yùn)算的內(nèi)容,信息安全專業(yè)的學(xué)生必須掌握,該專業(yè)需要了解計(jì)算機(jī)低層的運(yùn)算,才能理解密碼學(xué)具體的實(shí)現(xiàn)方法以及網(wǎng)絡(luò)安全的實(shí)現(xiàn)細(xì)節(jié),而對(duì)于軟件工程專業(yè),位運(yùn)算可以少講,甚至不講。
又例如,盡管譚老師的《C程序設(shè)計(jì)》中寫(xiě)的最好的內(nèi)容是它對(duì)指針的解釋和描述,想當(dāng)年,我自己就是在閱讀了很多書(shū)都不得要領(lǐng)的情況下,通過(guò)學(xué)習(xí)《C程序設(shè)計(jì)》才理解什么是指針的。譚老師將C語(yǔ)言中的精髓—“指針”的概念描述十分清楚、透徹,尤其是對(duì)指針使用時(shí)一些細(xì)節(jié)問(wèn)題的描述,使我非常受益。但是,并不是所有的專業(yè)都需要將這部分內(nèi)容的全部作為教授的內(nèi)容,有些專業(yè)可以作適當(dāng)?shù)恼{(diào)整,例如那些偏文科的專業(yè):會(huì)計(jì)學(xué)、審計(jì)學(xué)等。對(duì)于這些專業(yè),只要通過(guò)簡(jiǎn)單的案例將指針的概念交代清楚就行了,畢竟這是C語(yǔ)言的精髓。
再比如,不論任何專業(yè),遞歸的概念對(duì)于大多數(shù)低年級(jí)學(xué)生來(lái)說(shuō)是很難掌握的,注意,這里說(shuō)的是掌握,那么,我們只要求他們能看得懂遞歸程序就可以了。也就是說(shuō),要明白遞歸是自己調(diào)用自己,而不是讓他們學(xué)會(huì)編寫(xiě)解決類似迷宮、八皇后或者是背包問(wèn)題的程序,這些內(nèi)容可以放到高年級(jí)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程的時(shí)候?qū)W習(xí)。
5精選與學(xué)生專業(yè)相關(guān)的案例
譚老師教材中的案例都是經(jīng)過(guò)精心挑選的,有很多有趣的問(wèn)題,例如國(guó)王的小麥、猴子吃桃、漢諾塔等等,這些對(duì)于學(xué)生們學(xué)習(xí)程序設(shè)計(jì)都是很好的例子。但是一本教材的容量畢竟是有限的,作為教師,應(yīng)該花一些時(shí)間,挑選更多的案例,幫助學(xué)生們舉一反三。程序設(shè)計(jì)思想的形成可以通過(guò)閱讀大量的程序,并經(jīng)過(guò)自己的思考和提練,最后達(dá)到掌握思想的目的。
挑選什么樣的程序作為案例,就是教師需要考慮的問(wèn)題。我認(rèn)為,除了教材上一些基本的案例,教師需要選擇與專業(yè)背景有關(guān)的案例。
例如,針對(duì)信息安全專業(yè)可以選擇凱撒密碼的實(shí)現(xiàn)方法、HILL密碼的實(shí)現(xiàn)方法、異或運(yùn)算實(shí)現(xiàn)加解密、簡(jiǎn)單的暴力破解口令、大整數(shù)的算術(shù)運(yùn)算、素?cái)?shù)的產(chǎn)生和使用、簡(jiǎn)單身份驗(yàn)證系統(tǒng)的實(shí)現(xiàn),等等。這些案例既可以作為教學(xué)的例子,也可以作為實(shí)踐環(huán)節(jié)的實(shí)現(xiàn)內(nèi)容。
使用與專業(yè)相關(guān)的案例進(jìn)行教學(xué)和實(shí)踐,不但可以極大地激發(fā)學(xué)生的學(xué)習(xí)興趣,還使他們學(xué)到了運(yùn)用所學(xué)知識(shí)解決問(wèn)題的方法及動(dòng)手能力。
6結(jié)束語(yǔ)
C語(yǔ)言程序設(shè)計(jì)的教學(xué)不僅僅是教一門(mén)語(yǔ)言,也是教程序設(shè)計(jì)方法,教材的選擇,課程內(nèi)容的安排,乃至案例的選擇不但要符合教學(xué)的要求,更要適合學(xué)生的特點(diǎn),還要兼顧不同的專業(yè)要求。
參考文獻(xiàn):
[1] 譚浩強(qiáng). C程序設(shè)計(jì)[M]. 3版. 北京:清華大學(xué)出版社,2005.
[2] 譚浩強(qiáng). C程序設(shè)計(jì)教程[M]. 北京:清華大學(xué)出版社,2007.
[3] 譚浩強(qiáng). C語(yǔ)言程序設(shè)計(jì)[M]. 2版. 北京:清華大學(xué)出版社,2008.