張亞平
摘要:本文以《C程序設(shè)計(jì)》在說明賦值符號、函數(shù)和指針三個概念為例,分析《C程序設(shè)計(jì)》這本教材在編寫過程中如何體現(xiàn)以人為本的教育理念。
關(guān)鍵詞:以人為本;賦值符號;函數(shù);指針
中圖分類號:G642文獻(xiàn)標(biāo)識碼:B
全國出版的C語言教材超過1000種,唯有譚浩強(qiáng)的《C程序設(shè)計(jì)》一枝獨(dú)秀,自1991年出版以來,銷量始終獨(dú)占熬頭,成為一本有重要影響的科技著作,受到社會各界的廣泛好評,這種情況不僅在國內(nèi)是獨(dú)一無二,而且在世界上也是十分罕見的。究其原因,譚老編寫的這本《C程序設(shè)計(jì)》以及其他計(jì)算機(jī)書籍都很好地體現(xiàn)了以人為本的教育理念,非常符合學(xué)生或讀者的認(rèn)知規(guī)律。
“以人為本”的教育理念是時代發(fā)展的產(chǎn)物,它主張把人放在第一位,以人作為教育教學(xué)的出發(fā)點(diǎn)?!耙匀藶楸尽弊鳛橐环N價值取向,其根本所在就是以人為尊,以人為重,以人為先,那么,在具體的教育實(shí)踐中,就是以學(xué)生或讀者為重,用學(xué)生或讀者能接受的方式方法和認(rèn)知心理,把要傳授的知識、道理詮釋出來,使其能靈活運(yùn)用所學(xué)知識和技能。
學(xué)習(xí)任何一門新語言,讀者必須理解和認(rèn)識構(gòu)成每一門語言當(dāng)中的概念和語法規(guī)則,C語言同樣有其關(guān)鍵的概念和語法規(guī)則,如果對這些關(guān)鍵的概念不能理解透徹,就無法真正地弄懂C語言,更別說用C語言編寫的程序。在這些概念的闡述上,譚老都認(rèn)真地分析讀者的心理,以讀者為先,以讀者為重,在編寫這部教材的體系結(jié)構(gòu)上,按照初學(xué)者的認(rèn)識規(guī)律作了細(xì)致的安排,讀者能循序漸進(jìn)地逐步深入,同時將難點(diǎn)分散,讓初學(xué)者在學(xué)習(xí)每一章時都不會感到太困難。下面我就舉若干個例子談?wù)劇禖程序設(shè)計(jì)》是如何體現(xiàn)“以人為本”的教育理念。
1對“=”賦值符號的說明
“=”在傳統(tǒng)數(shù)學(xué)上就是一個等號的概念,如果學(xué)生一直停留在“=”與等號混為一談的認(rèn)識上,就會妨礙他們對計(jì)算機(jī)程序的閱讀,像a=a+1這樣的賦值運(yùn)算就理解不了。譚老在這一節(jié)里先用圖例介紹計(jì)算機(jī)存儲單元的標(biāo)志方式:地址和名字,指出在計(jì)算機(jī)里,地址就像人的身份證號一樣具有唯一性,唯一的標(biāo)識了每一個存儲單元,而其名字實(shí)際如同人的名字,方便稱呼和引用,在計(jì)算機(jī)里它就是變量名,它既表示某個存儲空間,又表示該存儲空間所存儲的數(shù)據(jù);然后對“賦值”進(jìn)行了明確的定義,即向變量所代表的存儲單元傳送數(shù)據(jù)的操作就是賦值,在C語言中,就用“=”表示,與傳統(tǒng)數(shù)學(xué)中的等號完全不同,已經(jīng)具有了全新的含義,而實(shí)際等號概念在C語言中用“= =”來表示。最后用若干個實(shí)例進(jìn)行解釋性說明,讓讀者對“=”有一個感性認(rèn)識;接著在“說明”部分對賦值符號和賦值運(yùn)算進(jìn)行詳細(xì)地總結(jié),又從理性上讓讀者完整地認(rèn)識“=”。這種先感性認(rèn)識后理性升華的闡述方式就很符合人的認(rèn)知過程,蘊(yùn)涵了知人,以人為本的教育理念。學(xué)生一旦對變量和“=”真正理解后,C程序的編寫也就開始入門了。每當(dāng)有對“=”和“= =”混淆不清的學(xué)生,我就先按照譚老的思路對其講解一遍,然后讓其反復(fù)閱讀這一節(jié),這樣一來學(xué)生們沒有弄不懂的。
2對“函數(shù)”的說明
初學(xué)C的學(xué)生希望完整了解C程序是什么樣子的心情迫切,鑒于學(xué)生的這種心理,譚老在《C程序設(shè)計(jì)》這本書的開始就展示了一個完整的C程序是什么,它就是由函數(shù)組成的,函數(shù)又是什么?完成某個相對獨(dú)立功能的一段程序代碼,它有一個名字,可供別的函數(shù)來調(diào)用。C程序的入口就是主函數(shù)main( ),C程序總是從main函數(shù)開始的。在這里學(xué)生還只是對函數(shù)有一個大致的印象。這個時候不可能鋪開來講,因?yàn)閷W(xué)生的知識背景還不夠,但又不能不點(diǎn)一下,因?yàn)槿珪睦佣际钦{(diào)試通過的C語言小程序,要讓學(xué)生理解。在介紹了數(shù)據(jù)描述及其基本操作和語句流程的三種控制結(jié)構(gòu)后,譚老才專門詳盡剖析何為函數(shù)。函數(shù)的英文為“Function”,實(shí)際就是“功能”的意思,與數(shù)學(xué)中“函數(shù)”的概念是不同的,這種描述即使對非計(jì)算機(jī)專業(yè)的學(xué)生也很容易理解。然后,再以一個教務(wù)管理軟件為例講述對函數(shù)的調(diào)用,就像飯店點(diǎn)菜一樣,每道菜的味道色香都是不一樣的,同樣地,每個函數(shù)的功能也是不一樣的,這樣去展示函數(shù)就跟用戶使用軟件一樣,界面很友好。這樣完全站在讀者和用戶的角度去執(zhí)筆,去完成程序結(jié)構(gòu)和程序設(shè)計(jì)的講解,自然讓讀者讀來感覺淺顯易懂了,這樣才是真正的“深入淺出”。
3對“指針”的說明
譚老在這節(jié)首行寫到:“指針是C語言中一個重要的概念,也是比較難掌握的一個概念。正確而熟練地掌握了指針的概念和指針的使用就能設(shè)計(jì)出復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和高效的程序?!边@實(shí)際在告訴讀者,指針這一章的重要性。
存儲單元有兩種引用方式,變量名和地址。通過變量名或地址訪問存儲空間的方式稱為直接訪問,有了直接訪問,自然就有了間接訪問,從而為引出新的變量作了鋪墊。這樣對比著講非常符合人的正常思路,再加上形象的圖例很好地表示了間接訪問存儲空間的邏輯關(guān)系,讓讀者一下就吃透指針變量就是一種特殊的變量,只能存放變量的地址而不能用來存放其他類型的數(shù)據(jù)。通過指針得到一個變量的地址,再由該地址找到最終要訪問的這個變量。這不就是間接訪問嘛!
既然指針是變量,自然有其類型,它的類型就是它所指向的實(shí)體的類型。而實(shí)體的類型不僅有基本類型:整型、實(shí)型、字符型等C語言中預(yù)定義的類型,而且有一維數(shù)組、二維數(shù)組、結(jié)構(gòu)、共用體等由基本類型組成的構(gòu)造類型,更有函數(shù)、指針本身。這諸多的不同自然產(chǎn)生不同的視角,譚老接著由簡到繁、由淺至深逐漸鋪開來講述指針的方方面面。讀者跟著譚老,在譚老的徐徐指引下,在重巒疊嶂中,在云霧環(huán)繞間漸漸地看清指針的各個層面,加深了對指針的認(rèn)識。最后譚老的指針數(shù)據(jù)小結(jié)似乎是讀者在這趟旅行中的小憩,使他們對這趟旅行駐足留連,回味再三,再一次加強(qiáng)讀者對指針的全面認(rèn)識。讀者對C語言的認(rèn)識在提高,讀者的編程能力也在提高。
像這樣從多角度、運(yùn)用多種方法貼心讀者或?qū)W生的考慮,全書俯拾皆是。在《怎樣走向成功之路》一書中譚老說道:“要與讀者將心比心,運(yùn)用逆向思維的方法,站在讀者的立場上來思考問題,充分設(shè)想讀者在學(xué)習(xí)中會有什么困難,用讀者易于理解的方式和語言去講清復(fù)雜的概念”,正是這種站在讀者的立場上,以讀者為重,以讀者為先,以讀者為上帝的以人為本的教育理念,成就了譚老,譚老成為了我國計(jì)算機(jī)普及和高校計(jì)算機(jī)基礎(chǔ)教育開拓者之一,開創(chuàng)了計(jì)算機(jī)書籍貼近大眾的新風(fēng),把千百萬群眾帶入計(jì)算機(jī)的大門,英國劍橋國際傳記中心將他列入“世界名人錄”,是“20世紀(jì)最有影響的IT人物”10個人之一。他在平凡的工作中做出了不平凡的業(yè)績。
參考文獻(xiàn):
[1] 譚浩強(qiáng). C程序設(shè)計(jì)[M]. 北京:清華大學(xué)出版社,1991.
[2] 譚浩強(qiáng). C程序設(shè)計(jì)[M]. 2版. 北京:清華大學(xué)出版社,1999.
[3] 譚浩強(qiáng). C程序設(shè)計(jì)[M]. 3版. 北京:清華大學(xué)出版社,2005.