摘要:程序設計課程目前幾乎是高校所有理工科專業的基礎課。為了提高教學質量,本文基于作者多年的教學經驗和軟件開發經驗,從學生、課程內容、能力培養等幾方面出發,以C語言為例,對程序設計語言的教學方式進行了探索。
關鍵詞:C語言;教學改革;教學質量;軟件開發
C語言是國內外廣泛使用的計算機語言,它兼顧了高級語言的易用性、可移植性好等優點,又具有低級語言效率高、可直接對硬件進行操作等大部分功能,是計算機應用人員應掌握的一種程序設計工具,同時也是高校理工科一門重要的課程。譚浩強的《C程序設計》教材發行量高達800萬冊,從這個數字上可以看出學習C語言的人數之多。
在C語言的教學中筆者經常考慮如何提高C語言的教學效果和學習效率問題。下面根據教學實踐和軟件開發經驗談談在C語言教學中的體會。
興趣培養是首要任務
做好一件事情的前提是要有興趣去做。如何提高學生學習C語言的興趣,一直是大家探討的問題。在開課的時候教師需要做的最重要的事情就是調動學生學習的積極性。目前很多老師常用的做法是講C語言的優點。筆者認為這樣做不能很好地達到目的,因為學生沒有接觸過其他語言,根本理解不了老師所講的優點。我們不妨從以下幾方面嘗試:
(1)給出生動具體的例子,通過實例告訴學生C語言可以做什么,我們可以用C語言做什么。
(2)強調能力的培養,告訴學生本課程除了可以學到C語言的知識外,還可以學到什么。
(3)告訴學生隨著計算機技術的發展,計算機應用于各行各業,大到國防工業,小到醫院掛號,餐館點餐。
(4)談談當前流行的各種語言。
(5)插入一些軟件行業成功人士的介紹,起到對學生“勵志”的作用。
當然,興趣培養不是簡單的說教,在整個課程的教學中時刻要注意如何激發和保持學生的學習興趣。
根據C語言的特性進行教學
由于程序設計語言的邏輯性強,語法、句式結構抽象。如果在教學方法上,沿襲傳統的教學模式,即以語言的語句體系為脈絡展開教學,詳細地講解其語句、語法,甚至一些細節內容,沒有注重程序設計的方法和算法的設計思想,必然使課程枯燥無味,而且造成學生理論基礎差,動手能力不強和缺乏創新思想。
C語言這門課程不同于數學類課程和一般的工科類課程,有其自己的獨特性。程序設計需要對問題作高水平的抽象,設計過程中又要考慮變量的存貯等很具體的問題。這是此課程的難點所在,也是我們在教學中必須強化的兩點。
盡管語言本身描述的是語法規則,但學習語言的直接目的是能夠使用它進行程序設計。所以如果緊緊圍繞如何設計程序來組織教學,必然收到事半功倍的效果。
(1)強化存貯概念——聯系編譯原理講解變量的定義和使。
(2)弱化公式表述——采用實例化方式講述語法。
(3)強化抽象能力的培養——程序設計始于對處理過程的本質抽象。
結合軟件開發經驗安排教學
C++的創始人Biame Stroustruv在《c++語言程序設計》一書中的致讀者部分指出:“在編程序時,你是在為你針對某個問題的解決方案中的思想建立起一種具體表示。讓程序的結構盡可能地直接反映這些思想”。做過軟件開發經驗的人對這句話都深有體會。當我們編寫程序解決某個問題時,首先要考慮的是這個問題的解決方案是什么,如何用程序實現這個解決方案。既要考慮如何處理數據,又要考慮采用什么樣的程序結構。
談到如何學習C++時Sjame Stroustrup指出:“在學習C++時,最重要的事情就是集中關注概念,不要迷失在語言的技術細節中。學習語言的目的是成為一個更好的程序員;也就是說,使自己在設計和實現新系統、在維護老系統時,能夠工作得更有成效。為此,掌握編程技術和設計技術遠比理解細節更重要;隨著時間和實踐,會理解細節的”。我認為對于C語言的學習也是這樣。經常見到許多的C語言學習指導書中大量的篇幅用于描述語言的細節,一個簡單的運算符“++”占據了很多篇幅,從不同的角度,不同的使用方法上講解這個運算符。這樣的安排會引導學生陷入細節中不能自拔,花費很多時間和精力去學習,但是仍然沒有學會編寫簡單的程序。
Bjame Stroustrup的這些觀點適合于任何一種程序設計語言的初學者。教師在安排C語言教學時,也應該注意這些,應該強調編程技術和設計技術,結合自己的軟件開發經驗安排教學。
(I)不能單純地講解語法,要注重程序流程的構造,合理處理細節問題。
(2)針對具體問題,注重數據結構的構造。
(3)強調軟件開發中經常遇到的知識點。
重視實踐提高學生的應用能力
程序設計語言是軟件開發的工具,教學中必須注重實踐,使學生學到的理論知識和實際密切結合,這樣不僅有利于知識的掌握,也利于學生興趣的提高。上機實踐不是簡單地輸入程序運行程序,還應該包含程序調試糾錯等過程。
C語言的教學效果直接影響到后續專業課的學習,也影響到學生對軟件開發的興趣,還能為學生學習其他高級語言奠定良好的基礎。這要求教師不斷探索積累,針對課程特點和學生現狀總結出更好的教學方法,提高C語言的教學質量。
參考文獻:
[1]譚浩強,C程序設計,北京:清華大學出版社,2005,ISBN:7302108536
[2]譚浩強,C語言程序設計上機指導,北京:清華大學出版社,2009,ISBN:7302112177
[3]Stroustrup,BjatTle.The C++Programming Language[M],3rd ed,Addison-Wesley,Reading,MA,1997
[4]齊治昌,從“計算機”到“計算”:計算機教育的發展與思考,中國大學教育,2004(11)