摘 要:計(jì)算機(jī)語言種類繁多,在進(jìn)行教學(xué)時需要有所選擇,并同時加強(qiáng)學(xué)生的數(shù)學(xué)能力的培養(yǎng),以動手上機(jī)為主要手段,注重多寫多練多想,才能有所收獲。
關(guān)鍵詞:教學(xué)語言;數(shù)學(xué)基礎(chǔ);學(xué)習(xí)手段
中圖分類號:TP393.07
計(jì)算機(jī)語言伴隨著計(jì)算機(jī)而誕生,作為人與計(jì)算機(jī)之間傳遞信息的媒介,計(jì)算機(jī)語言分成機(jī)器語言,匯編語言,高級語言三大類。匯編語言的實(shí)質(zhì)是和機(jī)器語言一樣的,都是直接對硬件進(jìn)行操作,其區(qū)別是匯編語言的指令采用了英文縮寫的標(biāo)識符,雖然同樣需要將每一步具體的操作用命令的形式寫出來,但是比之機(jī)器語言更容易識別和記憶。但是匯編語言的使用也有明顯的缺點(diǎn),匯編源程序一般比較復(fù)雜冗長、容易出錯,要求程序員有極高的計(jì)算機(jī)專業(yè)知識水平,因此高級語言才是程序員們普遍使用的編程語言。計(jì)算機(jī)語言的教學(xué),是為了讓學(xué)生通過程序設(shè)計(jì)的學(xué)習(xí)進(jìn)行各種硬件軟件的應(yīng)用開發(fā)。
1 選好教學(xué)語言
先說說教學(xué)語言的選擇,高級語言的種類很多,但真真適合入門教學(xué)的卻不多。現(xiàn)實(shí)中我們通常把面向過程的語言安排在入門階段么,選擇有三個:BASIC、C和PASCAL。BASIC語言,就名稱的含意來看,是\"適用于初學(xué)者的多功能符號指令碼\",是計(jì)算機(jī)早期發(fā)展史上應(yīng)用最為廣泛的程式語言。優(yōu)點(diǎn)是構(gòu)成簡單、功能較全、適用面廣、執(zhí)行方式靈活,缺點(diǎn)是結(jié)構(gòu)不夠嚴(yán)謹(jǐn),同時采用的是解釋器翻譯程序,費(fèi)時較多。在后期的面向?qū)ο蟮恼Z言的學(xué)習(xí)中,BASIC銜接的是VisualBasic,而VisualBasic雖然簡單易學(xué),但是運(yùn)行時需要調(diào)用的動態(tài)連接庫非常巨大,平臺的移植性也非常差。而Pascal語言,最初就是被嚴(yán)格的設(shè)計(jì)成教學(xué)之用,目的就是強(qiáng)行要編程者使用結(jié)構(gòu)化編程。從這一點(diǎn)上來說,Pascal是最初接觸計(jì)算機(jī)語言的入門者們很不錯的選擇。但是相對于它嚴(yán)謹(jǐn)?shù)谋蝗朔Q道的結(jié)構(gòu),Pascal的操作符不如C語言簡潔易懂,同時也使得一些低級操作,如“位”操作變得較為困難。Pascal的升級是Delphi,許多人會說Delphi比較容易上手,但是如同沒有白吃的午餐。Delphi的工業(yè)標(biāo)準(zhǔn)和可移植性遠(yuǎn)遠(yuǎn)及不上C++。取代了輝煌一時的Pascal語言的是C,C的編譯器更快,并具有優(yōu)秀的內(nèi)置編輯器和調(diào)試器。很容易與匯編語言結(jié)合,不僅僅是在軟件開發(fā)上,各類科學(xué)研究中都有對C語言的廣泛應(yīng)用。C++語言是具有面向?qū)ο筇匦缘腃語言的繼承者。跟流行的Java比,C++的效率要高很多。在應(yīng)用上,數(shù)據(jù)庫應(yīng)用程序開發(fā)、通信、手機(jī)等嵌入式系統(tǒng)和服務(wù)器端后臺編程,幾乎都是C++的天下。
2 打好數(shù)學(xué)基礎(chǔ)
相對于人類所說的自然語言,編程語言是一種專門設(shè)計(jì)來表達(dá)計(jì)算過程的形式語言。
有著嚴(yán)格的語法規(guī)則。不同于英語等外語的學(xué)習(xí),需要語境語感的培養(yǎng),計(jì)算機(jī)語言類課程的學(xué)習(xí),必須預(yù)先打好的基礎(chǔ)是數(shù)學(xué)。計(jì)算機(jī)語言是計(jì)算機(jī)科學(xué)的分支,而計(jì)算機(jī)科學(xué)實(shí)際上卻是數(shù)學(xué)的一個分支。程序設(shè)計(jì)的過程,就是解決問題的過程,而且是通過數(shù)學(xué)的方式來解決問題,編程只是用程序語言把你解決問題的方法寫下來而已。程序設(shè)計(jì)重在設(shè)計(jì)二字。翻開我們的教學(xué)課本就會發(fā)現(xiàn),在學(xué)習(xí)之初,問題的解決方法都是提供給學(xué)生的,學(xué)生只要照著給定的思路把文字語言翻譯成計(jì)算機(jī)語言而已,到了課本的后面,這種解題方法的給出就很少出現(xiàn)。程序=數(shù)據(jù)結(jié)構(gòu)+算法。所以說,編程語言其實(shí)只是工具,具體解決問題的時候還是靠算法,這個算法就是數(shù)學(xué),有些算法很難,需要高深的數(shù)學(xué)知識,在學(xué)習(xí)了一段時間之后,學(xué)生的編程的能力就會逐步拉開檔次,這就緣于各人解決問題的能力高低,這其中數(shù)學(xué)能力就是一個很重要的因素。
在計(jì)算機(jī)誕生初期,能夠編寫程序的都是數(shù)學(xué)家。時至今日,計(jì)算機(jī)已經(jīng)進(jìn)入了各個行業(yè),程序的編寫也在各種領(lǐng)域都有著廣泛的應(yīng)用,大部分的程序編寫并不是要有很高深的數(shù)學(xué)知識,更多的是要求能夠應(yīng)用相應(yīng)的數(shù)學(xué)方法,就是從眾多的對象中找到共同屬性的方法。結(jié)構(gòu)化的程序的設(shè)計(jì),無論多么復(fù)雜,總是由順序、選擇和循環(huán)這三種結(jié)構(gòu)來實(shí)現(xiàn)的。從這個角度來看,我們的程序套用這三種結(jié)構(gòu)其實(shí)就像是在使用三個不同的數(shù)學(xué)公式一樣,只不過不是簡單的挨個使用,而是循環(huán)交替的套用而已。
3 動手上機(jī)運(yùn)行是最重要的學(xué)習(xí)手段
無論什么樣的語言,最終的目的都是在于應(yīng)用,要想揮灑自如的應(yīng)用新知識新語言,實(shí)踐練習(xí)永遠(yuǎn)是必不可少的一個環(huán)節(jié)。計(jì)算機(jī)語言的教學(xué)中,既有理論又有實(shí)踐,既講方法又講動手能力。但是教師們會發(fā)現(xiàn)對于學(xué)生而言,語法和結(jié)構(gòu)是那么的枯燥乏味,對象、屬性、方法和事件又是多么的抽象難懂。所以很多學(xué)生會覺得,計(jì)算機(jī)語言太難懂太難學(xué)了,在這種想法下,我們的教學(xué)效果也就可想而知了。因此在“教”的這一方面,改用從簡單的實(shí)例入手,讓學(xué)生觀看、模仿,在實(shí)際解決問題的過程中去領(lǐng)悟這些概念,就更加能體現(xiàn)出計(jì)算機(jī)語言的應(yīng)用能力來了。
在“學(xué)”的這一方面,學(xué)習(xí)計(jì)算機(jī)語言同樣沒有捷徑可走,只有先從最簡單的程序開始動手寫,而且必須要自己親自動手寫,即使是打印出“Merry Christmas!”這樣的簡單語句,都必須親自動手操作一遍,有時候書上看得是很明白,往電腦面前一坐大腦就短路了,上機(jī)一寫不是這里錯就那里錯!有的同學(xué),把程序?qū)懺谧鳂I(yè)本上,發(fā)現(xiàn)了問題,就在作業(yè)本上把程序修改了一遍又一遍,還不一定能通過編譯,倒不如老老實(shí)實(shí)地把代碼輸入電腦,看看是不是能運(yùn)行,運(yùn)行得到的結(jié)果是不是和預(yù)期的一樣。有錯誤有問題,到電腦上去修改,修改完就編譯,再去查看結(jié)果。當(dāng)然也不是機(jī)械式的照著老師抄完就完了,而是寫完要多去想想,為什么要這么想,多問幾個為什么,多去理解解題的思路。比如是輸出某個圖形這樣的題目,在完成之后,我們也可以在正確的程序上對某些語句進(jìn)行修改,再看看修改后輸出的圖形會有怎樣的變化。諸如此類的練習(xí),經(jīng)過一段時間之后,我們對于語句和算法的掌握肯定是要勝于那些喜歡在紙上談兵的同學(xué)的。
4 學(xué)習(xí)的是方法和思想
我們學(xué)習(xí)了一門或兩門計(jì)算機(jī)語言,不僅是學(xué)習(xí)了這種語言的語法和結(jié)構(gòu),更多的理解了編程的思想,學(xué)到的是用計(jì)算機(jī)語言去解決問題的方法,養(yǎng)成的是嚴(yán)謹(jǐn)?shù)木幊塘?xí)慣,不同計(jì)算機(jī)語言之間,差異的可能是語法、語句和命令,但是這樣的差異是非常表面的,內(nèi)里的編程思想是想通的,所謂“一法通萬法通”,在這里就是很適用的。掌握了學(xué)習(xí)的方法,抓住了編程的思想,之后學(xué)習(xí)任何其他的技術(shù)都會非常輕松。
5 “廣泛”的教,“精細(xì)”的學(xué)
今后發(fā)展的方向也實(shí)在是太多。因此,我們的學(xué)校總是會盡可能多的開設(shè)課程,總是希望這些課程能涵蓋所有的方向和領(lǐng)域。作為學(xué)生,毫無疑問的是要把這些課程都學(xué)習(xí)一遍的,但是這樣的學(xué)習(xí)應(yīng)該是有所側(cè)重的。學(xué)生要弄清楚自己的目標(biāo),最重要的是要確定自己的職業(yè)發(fā)展,然后,再有目的性的去學(xué)習(xí)知識比如說技術(shù)領(lǐng)域,有很多發(fā)展方向:網(wǎng)絡(luò)、數(shù)據(jù)庫、底層算法、框架、架構(gòu)、UI設(shè)計(jì),性能優(yōu)化,系統(tǒng)集成,太多太多。不需要漫無目的地學(xué),這樣也好,那樣也好,所以都去學(xué),結(jié)果學(xué)了又沒用上。人的精力畢竟有限,所有知識都盡力去學(xué)的結(jié)果就是所有的知識你都不精通。所以,要先確定目標(biāo),然后做出選擇,再制定計(jì)劃,有的是需要學(xué)到精通,有的只要了解即可。老師也應(yīng)該鼓勵引導(dǎo)學(xué)生各自選擇自己的發(fā)展方向,在廣泛的教學(xué)基礎(chǔ)上,鉆研性的學(xué)習(xí)。
教授計(jì)算機(jī)語言,就是教授編程,而編程,是一門技術(shù),它和語言學(xué)習(xí)一樣,有需要掌握的語法和詞匯;和數(shù)學(xué)一樣,有解決特定類型問題的流程方法;它像各種工藝和藝術(shù)創(chuàng)作一樣,有技術(shù)、工具以及人們經(jīng)年累月發(fā)展起來的最佳實(shí)踐方案。只要肯付出時間和耐心,“教”與“學(xué)”都將是一件非常有成就感的事情。
參考文獻(xiàn):
[1]李蕾.論信息技術(shù)教育的發(fā)展與教學(xué)變革[J].科技情報開發(fā)與經(jīng)濟(jì),2007,26.
[2]樊穎軍.淺談計(jì)算機(jī)語言教學(xué)[J].科技信息,2008,21.
[3]劉洋.計(jì)算機(jī)語言案例教學(xué)中的教學(xué)策略[J].中國科教信息,2006(8):280-281.
作者簡介:沈甜甜(1980-),女,江蘇無錫人,研究生,計(jì)算機(jī)專業(yè)教師,主要從事計(jì)算機(jī)語言和應(yīng)用軟件的教學(xué)工作。
作者單位:南京工程高等職業(yè)學(xué)校,南京 211135