[摘 要]C語(yǔ)言是一門系統(tǒng)設(shè)計(jì)的中級(jí)語(yǔ)言,是重要的計(jì)算機(jī)基礎(chǔ)課程,在教學(xué)中,利用各種手段方式在較短時(shí)間內(nèi)使學(xué)生的編程能力得到做大提升,是C語(yǔ)言課程追求的目標(biāo)。本文中筆者介紹C語(yǔ)言教學(xué)要與軟件設(shè)計(jì)相結(jié)合。
[關(guān)鍵詞]新概念 教學(xué)方法 能力培養(yǎng)
教師在教學(xué)設(shè)計(jì)中應(yīng)堅(jiān)持以程序設(shè)計(jì)為主,將理論課與實(shí)驗(yàn)課作為整體考慮,教學(xué)過程中,以編程應(yīng)用為驅(qū)動(dòng),采用“案例引入。上級(jí)實(shí)踐,質(zhì)疑解惑”的方式。以下就C語(yǔ)言教學(xué)與軟件設(shè)計(jì)相結(jié)合方面談?wù)勛约旱囊恍┛捶ê妥龇?
一、將語(yǔ)言的特點(diǎn)和軟件設(shè)計(jì)相結(jié)合
一個(gè)好的軟件能成功走向市場(chǎng),除了應(yīng)具有強(qiáng)大獨(dú)特的功能外,下面幾點(diǎn)也是必要的:(l)較好的移植性。其設(shè)計(jì)與硬件無關(guān),這一特點(diǎn)使一個(gè)軟件的裝機(jī)量,不會(huì)因硬件關(guān)系而減少。(2)較快的運(yùn)行速度。使用一個(gè)軟件過程中等待時(shí)間的稍微增加,都會(huì)增加用戶的不耐煩,從而降低對(duì)軟件使用的興趣。(3)易維護(hù)、易升級(jí)。一個(gè)軟件是否能跟上計(jì)算機(jī)技術(shù)的日新月異,例如一個(gè)For Dos的軟件是否能很快地變成For windows的軟件,這也是一個(gè)軟件能否長(zhǎng)期擁有用戶和發(fā)展新用戶的關(guān)鍵。
用C語(yǔ)言設(shè)計(jì)的程序,應(yīng)用面寬、通用性和可移植性好,目標(biāo)代碼效率高。在教學(xué)過程中,應(yīng)注意結(jié)合軟件設(shè)計(jì)的要求講授C語(yǔ)言的特點(diǎn)。
C語(yǔ)言在軟件工程方法上了提供了其設(shè)計(jì)的集成環(huán)境。如:建立自己的函數(shù)庫(kù)、工程文件等。在講授C語(yǔ)言程序設(shè)計(jì)時(shí)也應(yīng)講授它的集成環(huán)境,強(qiáng)調(diào)如何按工程的方式開發(fā)和設(shè)計(jì)一個(gè)軟件。總之,講授C語(yǔ)言程序設(shè)計(jì)應(yīng)站在軟件設(shè)計(jì)的角度,而不是站在僅僅學(xué)一門新語(yǔ)言的立場(chǎng)上。
二、強(qiáng)調(diào)新概念,弄清相似概念
任何一門計(jì)算機(jī)語(yǔ)言都有兩個(gè)特性—即繼承性和擴(kuò)展性。一門計(jì)算機(jī)語(yǔ)言與其他語(yǔ)言比較,總會(huì)有相同的概念、相似的概念和新概念。例如C語(yǔ)言中相同的概念有程序結(jié)構(gòu)中的順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、算術(shù)運(yùn)算及優(yōu)先級(jí)、常量、變量、數(shù)組、出數(shù)、文件等等。相似的概念有字符串、關(guān)系運(yùn)算和邏輯運(yùn)算的真與假、指針和指針運(yùn)算、數(shù)據(jù)結(jié)構(gòu)、流和文件。新概念有位和位運(yùn)算、增量、減量、前置、后置等運(yùn)算,變量的存儲(chǔ)類型和可見性、函數(shù)原型、類型定義、運(yùn)算符的結(jié)合性等等。在教學(xué)中,應(yīng)點(diǎn)出相同的概念,比較相似的概念,著重強(qiáng)調(diào)新概念。這樣學(xué)生就不會(huì)在相同概念上花太多時(shí)間,在相似的概念上糾纏不清,在新概念上存在模糊認(rèn)識(shí)。
三、采用多種教學(xué)方法,提高教學(xué)效果
為了使學(xué)生真正掌握C語(yǔ)言程序設(shè)計(jì)的精髓,一定要讓他們充分理解C語(yǔ)言的概念并能靈活運(yùn)用。在教學(xué)中,采用學(xué)生上臺(tái)講述,老師補(bǔ)充;答題競(jìng)賽;難點(diǎn)疑點(diǎn)課堂討論等多種教學(xué)方式。對(duì)于那些在其他語(yǔ)言中接觸過的概念和語(yǔ)言特征,讓學(xué)生斷學(xué),抽一部分同學(xué)上臺(tái)講解,老師再作補(bǔ)充。這樣做可激發(fā)學(xué)生的學(xué)習(xí)主動(dòng)性,同時(shí)可使學(xué)生認(rèn)識(shí)模糊的概念暴露出來,由老師加以更正、補(bǔ)充講解,加深認(rèn)識(shí)。答題比賽則是將一個(gè)班分成若干組,要求他們把學(xué)習(xí)中,上機(jī)操作過程出現(xiàn)的問題以及一些基本概念的應(yīng)用搜集起來,在每一章學(xué)習(xí)完后抽出一節(jié)課時(shí)間,相互提問題和回答問題。提出一個(gè)問題得一分,正確回答一個(gè)問題也得一分,看誰(shuí)提出的問題多,誰(shuí)回答的問題多,將來都記入成績(jī)中。這樣做的目的是集思廣益,吸收別人學(xué)習(xí)的經(jīng)驗(yàn)教訓(xùn),
增加對(duì)新概念的理解。這一方式,形式活潑,很受學(xué)生歡迎。課堂討論也是加深學(xué)生對(duì)某一復(fù)雜概念認(rèn)識(shí)的一種方式。例如講到數(shù)組與指針這一難點(diǎn)時(shí),對(duì)它的表現(xiàn)形式,互換性、效率、函數(shù)間傳遞方式等進(jìn)行集中討論,使問題越辯越清,道理越講越明。
四、博采眾長(zhǎng),講義不能是教材的翻版
目前,C語(yǔ)言的教材很多,大致可分為三類。第一類偏重于概念的深入淺出,難點(diǎn)分散,例題豐富,易懂易學(xué)。這類教材非常適合于初學(xué)者和非計(jì)算機(jī)專業(yè)人員,以譚浩強(qiáng)先生編著的(C語(yǔ)言程序設(shè)計(jì))最為著名。第二類偏重于系統(tǒng)程序設(shè)計(jì),例題也站在這樣的角度選取,實(shí)用性很強(qiáng),學(xué)完之后能很快地應(yīng)用C語(yǔ)言進(jìn)行軟件開發(fā)工作。這一類書籍適合于計(jì)算機(jī)專業(yè)人員,以徐德民先生編著的(最新C語(yǔ)言程序設(shè)計(jì))為代表。第三類書籍是C語(yǔ)言用戶手冊(cè)。C語(yǔ)言的版本很多,著名的有Microsoft C和Turbo C,這類書籍對(duì)于上機(jī)操作和深入應(yīng)用是必不可少的。教學(xué)過程應(yīng)結(jié)合專業(yè)要求選取教材,推薦參考書目。每一本教材都有一定的局限性。講義不能是教材的翻版。要精心設(shè)計(jì)派一堂課的教學(xué)方法、教學(xué)內(nèi)容、教學(xué)風(fēng)格等。既要有理論部分也要有上機(jī)操作部分,還要有針對(duì)上課內(nèi)容設(shè)計(jì)的作業(yè)、以及學(xué)習(xí)過程的種種問題,掛圖和表格等。總之,講義應(yīng)是教學(xué)過程的綜合反映。
五、實(shí)驗(yàn)課應(yīng)注意軟件工程設(shè)計(jì)能力的培養(yǎng)
上機(jī)是計(jì)算機(jī)語(yǔ)言教學(xué)的重要組成部分,備課時(shí)不能忽略這一環(huán)節(jié)。針對(duì)不同的學(xué)習(xí)內(nèi)容和要求,部署好上機(jī)作業(yè)是保證教學(xué)成功的重要部分,也是引發(fā)學(xué)生學(xué)習(xí)興趣的一個(gè)重要手段。軟件設(shè)計(jì)的技能只有通過大量的編程訓(xùn)練和上機(jī)實(shí)習(xí)才能獲得。為此,必須提供盡可能多的機(jī)時(shí),讓學(xué)生進(jìn)行程序的編輯、編譯、調(diào)試和運(yùn)行實(shí)踐。
上機(jī)過程尤其應(yīng)注意如下幾個(gè)問題:
1. 培養(yǎng)良好的編程風(fēng)格,適應(yīng)軟件工程設(shè)計(jì)的要求。
一個(gè)好的軟件源程序必須是自己容易讀懂、別人也容易讀懂的程序,它應(yīng)有盡可能詳細(xì)的注釋,使用說明,模塊化設(shè)計(jì),清晰的層次結(jié)構(gòu)。上機(jī)過程一定要注意培養(yǎng)學(xué)生良好的編程風(fēng)格,不要濫用C語(yǔ)言的靈活性。
2. 注意培養(yǎng)調(diào)試和測(cè)試程序的能力。
C語(yǔ)言是一個(gè)很靈活的語(yǔ)言,較少的限制,既是優(yōu)點(diǎn)也是缺點(diǎn)。有時(shí)候,編譯器指出的錯(cuò)誤地點(diǎn),也許并不是真正錯(cuò)誤所在。然而,一個(gè)調(diào)試程序的過程,也是一個(gè)深入理解C語(yǔ)言的過程。所以,指導(dǎo)老師不能急于指出錯(cuò)誤所在,應(yīng)引導(dǎo)學(xué)生自己排除錯(cuò)誤。
3. 設(shè)計(jì)和編寫一個(gè)實(shí)際系統(tǒng)的應(yīng)用程序。
分工、分組共同完成一個(gè)實(shí)際系統(tǒng)應(yīng)用程序設(shè)計(jì),是當(dāng)今軟件開發(fā)工作的特點(diǎn)。單槍匹馬個(gè)人奮斗是搞不好軟件開發(fā)的。應(yīng)在實(shí)際操作中培養(yǎng)學(xué)生的團(tuán)隊(duì)協(xié)作精神,這也是軟件工程中所必需的。
總之:C語(yǔ)言和其它事物一樣在不斷發(fā)展,學(xué)習(xí)掌握新的語(yǔ)言設(shè)計(jì)程序是增加學(xué)生程序設(shè)計(jì)能力、實(shí)際工作能力的一個(gè)重要方面,在計(jì)算機(jī)專業(yè)中開設(shè)的C語(yǔ)言課程將進(jìn)一步的向綜合化與精細(xì)化發(fā)展。
參考文獻(xiàn):
[1]譚浩強(qiáng):C語(yǔ)言程序設(shè)計(jì).清華大學(xué)出版社,1994.
[2]徐德民編著.最新C語(yǔ)言程序設(shè)計(jì).電子工業(yè)出版社,1994.