李少華
(長江大學地球科學學院,湖北 荊州 434023)
《C語言程序設計》教學中的幾點體會
李少華
(長江大學地球科學學院,湖北 荊州 434023)
在C語言教學中適當補充計算機基礎知識,經常應用歸納小結,注意理論聯系實際,加強實驗環節,注重交互式教學,可以提高教學效果。
C語言;教學;效果
隨著信息革命的到來,計算機技術已經成為現代人必須掌握的基本技能,人們對計算機知識的需求也越來越強烈。C語言是當今世界上最流行的計算機程序設計語言之一。目前,各個學校的多數專業都不同程度地開設了C語言程序設計課程。通過學習C語言,學生們不僅能夠掌握一種實用的計算機編程語言,鍛煉抽象思維能力,掌握編程的技巧,同時也為今后學習C++打下了良好的基礎。
《C語言程序設計》課程為大一的學生開設。由于我系的新生多數來自農村,在上大學前對計算機方面的知識幾乎一無所知的大有人在,因此在教學過程中會遇到很多困難。很多學生對計算機基本的概念都沒有,比如什么是文件,什么是執行文件,文件的類型等等。而且C語言的上機實習環境是TC,是在DOS環境下運行的,而學生對于DOS的操作也很不熟悉。因此,為了提高后續學習的效率,保證上機實驗正常進行,針對我系學生的具體情況,補充一些計算機方面的基礎知識很有必要。
C語言是目前世界上使用最為廣泛的計算機語言之一。它是一種介于匯編語言與高級語言之間的編程語言,從1970年誕生之日起,一直被用來開發各種各樣的程序。C++是C語言改進后的產物,最初被稱作帶類的C,已經被用于各種軟件的開發C++是一種相對較新且仍在不斷完善的語言。Java是基于C++發展來的一門較新的語言之一,具有很多獨特的優點。應該說,學好C程序設計這門課,可為今后更好地學習C++、Java等語言打下一個很好的基礎。我系的學生今后主要從事GIS方面的開發工作,編程能力是一個十分重要的指標,學生認識到學習C的重要性能夠提高學習的主動性。
教學的基本任務是使學生掌握理論知識,培養編程的基本技能。眾所周知,C語言以簡潔、靈活高效而著稱,尤其是它的指針部分特別靈活,是學習C語言的重點和難點。在講課中必須牢牢抓住基本概念講深講透,才能使學生們對課程的理解一通百通,收到事半功倍的效果。比如在講i++與++i的區別時,學生容易產生混淆。我就對他們講,區別很好記,誰在前面先用誰,i++就是先用i,然后再讓i增加一個;++i就是先讓i增加一個,然后再用i,這么一講學生們很快就理解了。
在教學中應經常使用歸納小結。每當學習完一章或一節,要及時小結,溫故而知新。C語言是我系學生學習的第一門程序設計語言,剛開始接收會比較慢,經常做小結歸納有利于更好的消化吸收。歸納可以是一條語句多方面(如功能、解決什么問題、格式、使用場合、注意事項等)的歸納,也可以是對一類語句的歸納。比如“{ }”出現的場合:函數體部分有“{ }”,復合語句有“{ }”,分程序(程序塊)有“{ }”,多分支選擇語句(switch)有“{ }”,結構體和共用體類型定義中有“{ }”,數組在定義的同時初始化中有“{ }”。這樣歸納以后,同學們就對“{ }”的使用有了較清晰的認識。小結可以是某一章節的小結,可以是某一部分內容的小結,形式多種多樣,重點、難點易混的地方應著重強調。通過適時的小結與歸納,不但能對學習過的知識加以鞏固,而且便于迅速地提高知識水平。
實踐出真知,從實踐中學習C語言。C語言課程實踐性很強,要學好這門課,光靠看書背語法是不行的,關鍵是活學活用,掌握實際編程的本領,這也是學生學習的最終目的。因此,在一開始上課的時候,就給學生講述一個大家很熟悉的故事,讓大家都明白,上機實踐是十分重要的,它是課堂教學的延伸和強化。
對同一道題,學生們編寫的程序往往五花八門。概念上的模糊、邏輯上的混亂都會從程序的錯誤中反映出來。從某種意義上說,指導上機比上課對教師的要求更高。指導上機時教師要應付各種各樣的問題,有些是事先無法準備的。學生運行不通的程序,也許只有一個小小的語法錯誤,也許整個思路一團糟,也許是某個字母大小寫的問題。教師要在學生急切的目光下,準確地指出問題的癥結,幫助學生解決燃眉之急,沒有成竹在胸的把握是很難做到的。這與其說依靠對理論的熟練掌握,倒不如說得益于經驗的積累。通過課堂講授和上機實習的有機結合,學生們從對語言一無所知,到能熟練地編寫有一定難度的程序,這種既動腦又動手的學習方法,極大地激發了學生們的學習興趣,而興趣又反過來成為他們最好的老師。一旦看到自己編寫的程序運行成功,那種喜悅和成功感便會油然而生。
學習的目的在于應用,如果所學的內容不能得到應用,那么我們努力要學習的東西就沒有多大的意義。計算機是一種輔助工具,如果不能用它處理實際問題,所學的知識也沒有意義。因此,在教學中應舉現實生活中或工作中所碰到的問題,這樣不但能提高學生學習的興趣,而且還能培養學生處理實際問題的能力,鞏固所學的基礎知識,有利于各學科之間的橫向聯系。如在數組應用中編程根據考生的成績選擇考生的問題,這個問題學生比較熟悉,但如何錄取考生卻又不太熟悉。通過例題使學生掌握數組的使用方法,弄清楚計算機處理問題的過程,從而利用二維數組處理矩陣之間的運算、矩陣求轉置、解線性方程組等,在介紹迭代法應用時,舉出定積分幾何定義、計算函數的積分等,通過舉例,提高了學生的學習興趣,也充分揭示了計算機課程與其它學科的聯系。
教師如何使學生們輕松活潑地學到知識,不僅是一個改革教學方法的問題,更是一個轉變教育觀念的問題,因為只有當學習充滿樂趣時,才最為有效。在教學過程中我發現,在講課中適當地采用競賽和游戲的方法,常常會使學生們興趣大增,收到意想不到的教學效果。例如,對于程序改錯,如果只是教師講,學生們反應比較平淡,若采用交互的方式,情況就大不相同了。將有若干錯誤的幾個程序投到屏幕上,讓各班級的學生主動上來改錯。看到前面的同學找不出錯誤時,下邊的同學個個摩拳擦掌,躍躍欲試,爭先恐后地舉手要求自己來改。在這種熱烈的氣氛中,當所有的錯誤被一一找出并改正后,整個過程在學生們腦海中就留下了深刻的印象。這樣的教學,使學生不僅僅是在聽課,同時也積極參與,使其能夠保持高度注意力。這樣一來,課堂上講的知識很容易掌握,課后學生也有更多的時間去擴充他們的知識面。
責任編輯 韓璽吾 E-mail:shekeban@163.com
book=5,ebook=57
G642
A
1673-1395(2010)05-0038-02
2010-07-10
湖北省教育廳青年基金(Z20062025)
李少華(1972—),男,湖北荊州人,副教授,博士,主要從事儲層建模與GIS研究。