摘要:本文從3個編程教學(xué)方面的常見問題和通過與基礎(chǔ)理論學(xué)科教學(xué)的結(jié)合性兩方面,探討了在校生進(jìn)行Python語言編程學(xué)習(xí)的可能性,將一門通常作為程序愛好者廣泛使用的,易學(xué)易用的編程語言進(jìn)行一定范圍的教學(xué)嘗試。通過本文的探討,期望運用在教學(xué)中能夠提高計算機理論與實際工作的耦合度,提高學(xué)生學(xué)習(xí)相關(guān)課程的趣味和動力、提供給學(xué)生進(jìn)行自我學(xué)習(xí)的技巧。
關(guān)鍵詞:Python;偽代碼;TCP/UDP
Python是一種面向?qū)ο蟮闹弊g式計算機程序設(shè)計語言,由Guido van Rossum:]:1989年底發(fā)明,第一個公開發(fā)行版發(fā)行于1991年。Python語法簡潔而清晰,可以很輕松的調(diào)用其它語言(如c或c++)編寫的模塊(dll文件),由于開發(fā)速度很快,在計算機編程普及的一些國家它的應(yīng)用很廣,但在中國還處于起步階段。
1、傳統(tǒng)編程教學(xué)活動的特點
傳統(tǒng)編程教學(xué)活動存在一些顯而易見的問題:
1.1 冗長的語法學(xué)習(xí)過程
目前在高等教育學(xué)校的編程學(xué)習(xí)中,幾乎無一例外的以C、c++、C#、VB.net或java等為主,其中VB.net相對還是比較好掌握的編程語言,而C、c++所屬強類型編程語言語法的復(fù)雜,及大量出現(xiàn)的語法陷阱使得學(xué)生在大多數(shù)的時間里成為一個“糾錯者”,在學(xué)習(xí)過程中花費不菲的時間來修正代碼中的錯誤和漏洞,而忽視了編程思想的培養(yǎng),容易造就會編程語言工具、不會實現(xiàn)編程工作的現(xiàn)象。c#雖然是—種較好的面向?qū)ο缶幊陶Z言,但在實現(xiàn)上對計算機環(huán)境的配置要求還比較高,對一些資金上比較緊張的學(xué)校機房來說,更新設(shè)備的代價太大,同時由于c#不支持除windows以外的平臺,造成某些欲在非windows系統(tǒng)環(huán)境下學(xué)習(xí)的學(xué)生缺乏相關(guān)的學(xué)習(xí)環(huán)境。
1.2 校內(nèi)授課制度的局限
編程語言的學(xué)習(xí)是一個長期和持續(xù)的過程,往往對時間上的需求較多。而學(xué)校教學(xué)活動的局限性,如為避免課程與課程的沖突、不能對編程課程進(jìn)行集中授課,而是像學(xué)習(xí)歷史、政治一樣分節(jié)學(xué)習(xí)。造成上節(jié)課學(xué)習(xí)的內(nèi)容這節(jié)課就忘記的現(xiàn)象比比皆是。編程類課程在客觀上本就容易令學(xué)生產(chǎn)生厭學(xué)情緒和學(xué)習(xí)的枯燥感,而學(xué)生迫于就業(yè)壓力往往產(chǎn)生在校內(nèi)學(xué)習(xí)、課外還報修各種社會編程學(xué)習(xí)班的普遍現(xiàn)象。
1.3 對學(xué)生自身學(xué)習(xí)背景的強烈依賴不利于非計算機專業(yè)學(xué)生的自修
學(xué)習(xí)上歷來是“師傅領(lǐng)進(jìn)門,修行在個人”,教師不論教學(xué)能力多高,最終起到的還是一個啟蒙的作用。然而,一門過于難以掌握的語言大幅度提高了學(xué)生自己持續(xù)學(xué)習(xí)的難度。比如C語言的學(xué)習(xí),要求學(xué)生具有較扎實的計算機背景,對堆棧、內(nèi)存、指針、數(shù)組等有較深入的了解,對代碼的書寫有諸多嚴(yán)格的要求。對外專業(yè)或計算機背景知識不扎實的學(xué)生來說,查看程序代碼如看天書,書寫產(chǎn)生錯誤的時候又找不到究竟是書寫錯誤還是邏輯錯誤。一來二去很容易就此放棄。
2、PythOn在教學(xué)中能起到的作用
2.1 降低了學(xué)習(xí)的難度
Python的代碼書寫規(guī)則與計算機算法中的“偽代碼”極其相似,由于其最初被發(fā)明的時候就是為了增強其易用性(Guidovan Rossum參考了ABC語言的特性進(jìn)行了開發(fā)),其語言的書寫接近于日常英語,可以說只要略加學(xué)習(xí),就可以迅速掌握。這對教學(xué)資源的節(jié)約起到很好的作用;python unicode字符集全面支持,我們不用去考慮ascii字符集的字節(jié)存儲空間問題(unicode字符在其它語言中都存在較復(fù)雜的轉(zhuǎn)換問題),而直接編寫出可以被執(zhí)行的小程序;由于python強大的序列(Python的序列包括各類定長數(shù)組、動態(tài)數(shù)組、字符串等等的特性)操作能力,使得在同一個序列中放置不同數(shù)據(jù)類型的數(shù)據(jù)成為輕而易舉的事,我們不必再進(jìn)行復(fù)雜的組合變量聲明和處理;python隱藏了所有指針的行為,所有的變量值都是引用類型,令我們掌握起來更加容易。
N-Python自身的IDLE不論是在windows上還是在UNIX上都有很好的支持。只需要對python進(jìn)行簡單的入門學(xué)習(xí),就可以迅速在短時間內(nèi)書寫出執(zhí)行效率高的代碼。
2.2 增強學(xué)生學(xué)習(xí)的動力
由于拋開了對專業(yè)背景的過度依賴,使得非計算機專業(yè)的學(xué)生也有可能快速掌握并進(jìn)行編程實踐,極大地提高了學(xué)生對編程思想的理解。在國內(nèi)存在著數(shù)量龐大的編程愛好者,這些愛好者往往沒有經(jīng)過系統(tǒng)的計算機理論的學(xué)習(xí),而Python的易用性基本可以克服這種對專業(yè)知識的過分依賴,面向用戶的設(shè)計和偏重程序邏輯的編碼方式讓人從“計算機式思考”解脫出來,進(jìn)入提升編程思路的良性循環(huán)中來。
2.3 強大的類庫降低編程的復(fù)雜性
Python有強大的各種類庫的支撐,大量開源、免費的編程資源的存在和便于布置使得很容易快速實現(xiàn)開發(fā)和測試。Python是開源的,這意味著為了工作的方便性,我們可以自行擴展Python的庫,實現(xiàn)有自己風(fēng)格特色的類庫。
3、Python的未來需求
就業(yè)作為高校教學(xué)目的之一,未來必然會逐步加強對學(xué)生就業(yè)能力的培養(yǎng)。Python作為一門較新的編程語言,經(jīng)過最近幾年的逐步推廣,現(xiàn)在已漸漸成為一門熱門的程序語言,未來的就業(yè)前景廣闊。Python貼合自然語言的偽代碼風(fēng)格和注重編程邏輯的編程方式,注定會在未來有廣闊的應(yīng)用。學(xué)生通過不同課程、不同知識采用它來編寫小程序,來理解相關(guān)理論知識,對學(xué)生理論聯(lián)系實際的能力的提高具有—定作用,同時對其它編程語言的學(xué)習(xí)也起到較強的輔助作用。