張 升 孔令德
摘要:本文首先分析了“C程序設(shè)計”在計算機(jī)專業(yè)課程中的重要性以及學(xué)生在學(xué)習(xí)過程中經(jīng)常容易出現(xiàn)的一些問題,接著仔細(xì)剖析了譚浩強(qiáng)教授著《C 程序設(shè)計》一書的寫作特點,以及這些寫作特點在實際教學(xué)過程中對學(xué)生編程能力的培養(yǎng)所起到的良好作用。
關(guān)鍵詞:C程序設(shè)計;教學(xué)內(nèi)容;教學(xué)過程
中圖分類號:G642文獻(xiàn)標(biāo)識碼:B
1引言
目前,在大多數(shù)高校的計算機(jī)專業(yè)中,“C程序設(shè)計”作為學(xué)生入校后的第一門程序設(shè)計課程,對后續(xù)“數(shù)據(jù)結(jié)構(gòu)”、“面向?qū)ο蟪绦蛟O(shè)計”、“編譯原理”、“操作系統(tǒng)”等專業(yè)課程的學(xué)習(xí)有著非常重要的作用。但在實際的教學(xué)過程中,發(fā)現(xiàn)一些教材寫得不夠通俗易懂,不適合初學(xué)者使用,許多學(xué)生學(xué)習(xí)中感到困難,甚至逐漸喪失學(xué)習(xí)熱情。這就要求教師在教學(xué)過程中要選用合適的教材,采用有效的教學(xué)方法,突出重點,攻破難點提高教學(xué)質(zhì)量,在這方面譚浩強(qiáng)教授的著作《C程序設(shè)計》起到了引領(lǐng)的作用。
2學(xué)生學(xué)習(xí)中容易出現(xiàn)的問題
2.1實踐鍛煉不足
“C程序設(shè)計”是一門實踐性很強(qiáng)的課程,最終目的是要在計算機(jī)上編寫優(yōu)質(zhì)的程序,有些學(xué)生不能充分認(rèn)識到這點,無法轉(zhuǎn)變舊的學(xué)習(xí)習(xí)慣,不注重上機(jī)實踐鍛煉,只是進(jìn)行課本上的理論學(xué)習(xí)和習(xí)題的作答,上機(jī)操作能力不足。
2.2專業(yè)術(shù)語接受較慢
由于學(xué)生都是第一次接觸程序設(shè)計語言,一開始對課程中出現(xiàn)的許多名詞概念接受起來比較慢,理解不夠準(zhǔn)確、全面、透徹。
2.3算法基礎(chǔ)欠缺
程序設(shè)計中涉及到許多算法,大一學(xué)生缺少相關(guān)訓(xùn)練,學(xué)習(xí)起來感覺困難。
2.4思維方式難以轉(zhuǎn)變
程序設(shè)計是通過語句控制機(jī)器執(zhí)行,有些學(xué)生容易犯主觀錯誤,認(rèn)為我是這么想的,計算機(jī)就應(yīng)該這么執(zhí)行,而沒有認(rèn)識到是在和機(jī)器打交道,要嚴(yán)格按照規(guī)定的語法來進(jìn)行。
3 《C程序設(shè)計》的寫作特點
由譚浩強(qiáng)教授著、清華大學(xué)出版社出版的《C 程序設(shè)計》(第3版)是一本很好的科技著作,受到廣大師生的好評。筆者認(rèn)為該書有以下幾個特點值得贊賞。
3.1注重上機(jī)實踐
在C語言的教學(xué)過程中,上機(jī)實踐是非常重要的一個環(huán)節(jié),上機(jī)實踐情況直接決定著C語言的學(xué)習(xí)情況,只有學(xué)生熟悉上機(jī)操作環(huán)境,熟練上機(jī)操作過程,教師才能更好的開展C語言教學(xué),學(xué)生也才能提高C語言程序設(shè)計的水平,達(dá)到能夠使用C語言編寫程序的最終教學(xué)目的?!禖程序設(shè)計》一書中,在第1章第4節(jié)就以Turbo C++3.0集成環(huán)境為例,重點介紹C程序的上機(jī)運行步驟和方法,能夠使學(xué)生對整個上機(jī)過程有一個總體認(rèn)識,為以后的上機(jī)實踐打下堅實基礎(chǔ)。另外,在該書的最后一章,第14章還介紹上機(jī)過程中常見的錯誤和簡單的調(diào)試方法,這對學(xué)生上機(jī)實踐也有很大的幫助。在學(xué)習(xí)程序設(shè)計進(jìn)行上機(jī)實踐時,調(diào)試過程中難免會出現(xiàn)各種錯誤,而對于大一學(xué)生來說,由于英語水平和調(diào)試經(jīng)驗的不足,許多同學(xué)遇到錯誤感覺無所適從,不知道從何下手,不知道怎么查找錯誤。增加了常見錯誤和程序調(diào)試這一章后,一方面可以避免學(xué)生在上機(jī)的過程中出現(xiàn)這些錯誤,另一方面,當(dāng)在上機(jī)過程中出現(xiàn)錯誤的時候,通過介紹的程序調(diào)試方法的介紹可以很容易發(fā)現(xiàn)錯誤,改正錯誤。
3.2使用通俗易懂的語言介紹專業(yè)術(shù)語,通過形象的事例講解抽象概念
“C程序設(shè)計”教學(xué)過程中,涉及很多專業(yè)術(shù)語和抽象概念,如:算法、數(shù)據(jù)類型、函數(shù)、指針等,對于程序設(shè)計語言的初學(xué)者來說,這些術(shù)語和概念理解起來有些困難,《C程序設(shè)計》一書中使用通俗易懂的語言和形象的事例講解這些內(nèi)容,使初學(xué)者很容易就能夠理解。比如:該書在講解算法的概念時,為了說明什么是算法,舉了從北京到天津開會一步一步要怎么做,從這個事例中就很容易理解算法就是解決問題的步驟。在講解指針時,為了說明地址和內(nèi)容的概念舉了旅館中的房間號和房間中居住的旅客例子。在講解多維數(shù)組與指針時,為了說明二維數(shù)組的行地址和元素地址的概念,舉了軍訓(xùn)中排隊點名的例子,用班長點名和排長點名來形象的舉例講解,使學(xué)生很容易就理解了。該書中類似的例子還有很多,通過這些例子使抽象的概念變得形象,專業(yè)的術(shù)語變得通俗,更容易使學(xué)生理解接受,并激發(fā)學(xué)生的學(xué)習(xí)興趣。
3.3算法的講解條理清晰,表示規(guī)范
編寫一個完整高效的C程序,不僅要掌握語言的語法,還要有相應(yīng)的算法基礎(chǔ)?!禖程序設(shè)計》一書中不僅對C語言的相關(guān)內(nèi)容進(jìn)行了通俗易懂的講解,并且對算法的講解也十分詳盡。書中第2章對算法的相關(guān)內(nèi)容進(jìn)行了系統(tǒng)的介紹,通過幾個典型的例子,從算法的概念、算法的特性、算法的各種表示方法進(jìn)行了講解,雖然在本章內(nèi)容之前,學(xué)生并沒有任何的語言基礎(chǔ),但是通過算法的講解可以讓學(xué)生了解到使用計算機(jī)語言解決問題的過程,并且通過典型例子的提出,引起學(xué)生進(jìn)一步了解以后如何使用具體的C程序代碼解決它們的興趣;除此之外,本章還介紹了各種流程圖表示算法的方法,使用流程圖表示程序流程對初學(xué)者來說有很大的幫助,可以使設(shè)計思路更加清晰,避免由不熟練而引起的混亂。筆者認(rèn)為算法部分內(nèi)容的講解是該書的一大特點,許多C程序設(shè)計教材中都沒有相關(guān)內(nèi)容,而是在后面例題時,直接給出流程圖。
3.4例題選擇淺顯典型,習(xí)題豐富鍛煉能力
《C程序設(shè)計》一書中,各個章節(jié)例題的選擇上注重問題的連貫性和典型性。如第2章介紹算法時,舉了求階乘、判斷閏年、判斷素數(shù)等例子,并提出了解決這些問題的算法,畫出了流程圖,在后續(xù)控制結(jié)構(gòu)相應(yīng)章節(jié)中這些例子又出現(xiàn),給出了具體的代碼。通過這些前后呼應(yīng)的例子,可以使學(xué)生們帶著問題去學(xué)習(xí),提高了學(xué)生對內(nèi)容的關(guān)注度,并能夠使前后內(nèi)容貫穿起來,產(chǎn)生由點及面的效果。另外,各個章節(jié)例題的選擇也比較有代表性,難度不大,但能很好表達(dá)當(dāng)前要講解的內(nèi)容。對于初學(xué)者來說,要鞏固所學(xué)知識,提高編程水平,最好的辦法就是通過大量的練習(xí)來進(jìn)行,《C程序設(shè)計》一書每一章后面都提供了豐富的習(xí)題,這些習(xí)題相對于例題來說難度有一定提高,設(shè)計的算法更廣泛,對學(xué)生在課后應(yīng)用所學(xué)知識,挺高分析能力和編程能力有很大的幫助。
以上是筆者所總結(jié)的由清華大學(xué)出版社出版的譚浩強(qiáng)教授著作《C 程序設(shè)計》(第3版)一書中的特點,現(xiàn)在獲悉該書發(fā)行超越千萬冊,真是名至實歸。
4結(jié)束語
教材是課程之本,選擇一個好的教材,對于課程建設(shè)是非常重要的。由清華大學(xué)出版社出版的譚浩強(qiáng)教授的著作《C 程序設(shè)計》(第3版)內(nèi)容豐富,編排合理,通俗易懂,特點鮮明,在實際教學(xué)過程中深受廣大師生的喜愛,是一本難得的精品教材。它能夠針對初學(xué)者在內(nèi)容組織,文字表達(dá)上做相應(yīng)變化,非常適合首次學(xué)習(xí)程序設(shè)計語言時使用。教師在教學(xué)過程中使用該書,結(jié)合具體情況,采用不同的教學(xué)方法、方式,能夠取得更好的教學(xué)效果。
參考文獻(xiàn):
[1] 譚浩強(qiáng). C程序設(shè)計[M]. 3版. 北京:清華大學(xué)出版社,2005.
[2] 譚浩強(qiáng). C++程序設(shè)計[M]. 北京:清華大學(xué)出版社,2004.