王 冰
文章編號:1672-5913(2009)02-0142-03
摘要:本文探討并提出了C語言程序設計課程的一種新的理論教學和實踐教學的方法,該方法能增強學生對本課程的興趣以及提高教學質量,提高學生用C語言解決實際問題的綜合能力。
關鍵詞:善于培養興趣;善于總結歸納;善于互動交流;善于發現問題;善于合理施壓
中圖分類號:G642
文獻標識碼:B
1引言
我院C語言程序設計課程是面向非計算機專業本科生開設的,是計算機基礎系列課程中的一門,屬于公共基礎課,也是計算機基礎系列課程中的基礎課,很多后續課程如計算機軟件技術基礎等都以該課程為先修課。這門課程的教學目標是使學生較全面、系統地理解和掌握程序設計的基本概念和方法,具備運用程序設計語言、數據結構和算法進行基本的結構化程序設計和面向對象程序設計的能力。通過本課程的學習培養學生利用計算機處理問題的思維方式,啟發學生主動將計算機引入到其他基礎課和專業課。很多大學生在大學四年的學習過程中都會選修這門課程,來提高自己的計算機編程水平。
在學習這門課程的過程中,教師要在課程規定學時內講解C語言的語法和語義以及這門語言方方面面的規定,學生不但要在較短的時間內記住大量瑣碎的知識點,還要經過知識的日積月累,能靈活運用這些知識點,融會貫通,達到由能編程序解決簡單問題到能編程序解決復雜實際問題的過渡,進一步能和自己所學專業知識有機結合。由于計算機技術的發展和普及,學生腦海中對學好計算機技術的重要性還是有清醒的認識的,在開始學習這門課程時,興趣還是很高的,但是如果教師在教學過程中只是照本宣科,理論脫離實際,一味“填鴨式”灌輸,學生就會逐漸感覺到學習這門課程內容條條框框的枯燥。學生的學習興趣就會在學習過程中隨時間而減退或消失,這樣一般就都難于取得好的教學效果。經過幾年的教學實踐、觀察總結以及研究嘗試,本文針對以上問題,總結提出幾點建議來改善課堂教學和實驗教學的效果,與大家共勉。
2教學方法的探討
(1) 善于培養興趣
愛因斯坦有句名言:“興趣是最好的老師。”古人亦云:“知之者不如好之者,好之者不如樂之者。”興趣對學生的學習有著神奇的內驅動作用,能變無效為有效,化低效為高效。充分激發學生的學習興趣是當前開展素質教育,優化課堂教學,減負提質的最根本、最有效的途徑之一。興趣的產生來源于興趣源,興趣源必須由教師來創造,并貫穿于教師授課全過程的各個環節中。針對C語言程序設計這門課程的特點教師可采用以下方法提高學生的對本課程的興趣。
首先,教師可以在講授第一次課時,就演示一兩個用C語言來解決某個實際問題的綜合程序,吸引學生的眼球,當然這些演示的綜合程序要教師預先精心設計好。比如“職工檔案信息管理系統”、“實用的小型通信錄”等,這樣來引起學生對學完本課程后自己所具有用C語言編程能力的憧憬。
其次,課堂上講解某個重要的知識點時,可以不失時機地展示給學生一兩個運用此知識點開發好的用于解決某個問題的小程序或是游戲程序,讓學生感受到編寫出的程序的魅力,提高學生的聽課注意力,激發學生主動學習的積極性。例如,在講解了程序控制結構的選擇和循環兩種結構后,可以演示一個利用此知識點的程序,比如“使用菜單選擇趣味程序”,來展示所學的這兩種結構在程序中是如何發揮作用的。當然有些程序因涉及的知識點多,學生全面理解有時有困難,教師要適當選擇和靈活掌握,搞清演示程序的目標是什么,是為引起學生的興趣,還是要通過此案例詳細講解某個知識點。
再者,課后要針對本節課所講的重點知識留些思考題和隨堂提問。孔子說:“學而不思則罔,思而不學則殆。” 教師要多提出“…可否?”、“如果這樣編寫…行嗎?”、“程序為何這樣寫?”,“結果為何這樣?”“你將如何編程實現?”等問題,充分發揮學生的想象力和創造力,培養學生的開拓精神和獨立解決問題的能力。例如switch語句的語法結構中如果沒有break和default語句對switch語句所表達的語義有何影響?自己編寫了一個與printf同名函數可以調用嗎?等等。
另外,在實驗教學中,老師在布置作業時一般要難易適當,使學生在經過努力后,基本都能編程實現,這樣學生編完程序后就有一種成就感,這也是提高學生對本課程興趣的好辦法。如果作業太簡單,學生輕松實現,印象不深,成就感不強烈,覺得太容易,沒有興趣。如果作業太難,學生難于實現,就會出現放棄或抄襲現象,也會喪失學習本課程的興趣,更無從談起學生的成就感。
總之,教師要善于不失時機的運用各種方法培養學生對課程的學習興趣。
(2) 善于總結歸納
教師在講解相關章節時,應善于對學生已學過知識點的進行總結。眉毛胡子一把抓,學生就會覺得要理解和記憶的內容太多,感覺無從下手,所以教師要善于給學生歸納總結所講解的知識點,便于學生加深對相關知識點的理解,提高學生對知識的記憶力。
首先,要注意相關知識點的融會貫通。例如,在C語言程序設計這門課程中,涉及到算術運算符、賦值運算符、關系運算符、邏輯運算符、自增自減運算符、條件運算符、取地址運算符、逗號運算符等很多運算符,這些運算符之間不但存在優先級的高低問題,而且同級之間又存在結合性的左右結合問題。教師在講授課程中,每講到一種新的運算符,就將其與前面學生已學過的運算符做一個優先級和結合性的比較,這樣就如同滾雪球一樣,隨著授課進展,最后將本課程中所有涉及到的運算符的知識點全部聯系到一起,學生在學習過程中既學到了新的知識點同時又復習了舊的知識點。另外,通過把已學到的運算符進行歸納,也達到了知識點強化的目的,便于學生的記憶和理解。
其次,每個章節講解后,教師都應歸納本章節學生應要掌握的知識點。一般在每個章節講解前教師要明確本部分內容要解決的主要問題,因為學生這時還沒有學習這部分的具體知識,對所涉及知識點的講解一般不宜太細,主要以明確解決的問題為目標。在每個章節講授完成后,教師應及時地歸納總結本部分所涉及的知識點,以便于學生在課后有的放矢地復習鞏固。
再者,在實驗教學中,注意總結歸納,讓學生上機少走彎路。編程容易,調試難。因學生理論知識接受能力和掌握程度的不同,學習認真程度的差異,C語言自身的特點等原因,即使要解決同一個問題,學生解決問題的設計思路也會不同,學生編程所用C語言的語句也會有差異,所以學生編寫出來的程序千差萬別,遇到的編程問題,出現的編譯、鏈接和運行錯誤也千奇百怪。有些問題和錯誤只是個別學生出現的,但是也有許多是學生遇到的共性問題和錯誤,教師在輔導上機實驗時,要注意區別對待。對于共性的問題和錯誤,要進行歸納總結,課上給學生展示錯誤并及時講解解決辦法;對個別學生出現的問題和錯誤,教師要單獨輔導講解。
另外,教師在講授一門課程的過程中,應及時將學生不易理解的問題、上機實驗中經常出現的錯誤進行總結歸納,這樣日積月累,經過對同一門課程的幾輪授課,教師就可以形成針對本課程的問題庫。在下一輪授課過程中,教師就可以有的放矢地對以前授課中學生不易理解的問題重點講解;就可以目標明確地對上機實驗中經常出現的錯誤,在學生上機之前用案例演示并提出解決方案,以免學生再犯同樣的錯誤,讓學生少走彎路。
總之,教師要充分利用總結和歸納的方法來提高學生的知識點的理解和記憶。
(3) 善于互動交流。
在講課過程中,教師要精心設計教學環節,環環相扣,要善于提出問題與學生互動,努力創造一個和諧的教學環境。教師可以采用以下方式與學生交流互動。
首先,采用不定時隨堂練習的辦法。在講授某個知識點后,教師及時出一道小題目,隨堂練習此知識點的使用,每個學生做完后,將答案及時上交。這樣一舉三得,既增強學生對所學知識點的鞏固,又了解學生上課出勤的情況,同時一定程度上也避免了學生逃課、曠課現象的發生。
其次,采用錯誤案例教學的辦法。“吃一塹,長一智。”人們對事物的認識和認知,有時出錯、碰壁比不犯錯誤、一帆風順更能增加對事物的印象,更容易記住。有時教師在講解一個例題時,在容易出錯和模糊的知識點處故意沿著錯誤的方向講解,然后詢問學生這樣做或理解對嗎?看看學生能否發現問題或錯誤,這便于教師掌握學生對知識點的掌握程度,同時也使學生加強對知識點的印象。
再者,采用上課適時點名提問問題的方法。一方面,雖然上課點名提問問題表面上是在檢查某個學生,其實此時也是在檢查全班學生,因為教師問題提出后,所有聽課學生在沒有確定老師點名提問誰之前,都會集中注意力,抓緊時間思考,這可作為提高學生聽課注意力的方法。另一方面,上課點名提問問題也是對學生所學新舊知識點的檢查和復習,以便教師確定下一步的授課進度安排。
另外,采用上課過程中學生可隨時提問問題的方法。上課的過程中要允許學生隨時提問問題,學生有不明白的地方,可以舉手提問。因為如果學生不能馬上把不明白的問題提出來,可能影響其后續聽課接受新知識。同時,雖然別的學生沒有提出來此問題,但也很可能沒有聽明白,所以要允許學生上課時及時向教師提問問題。
總之,老師要努力創造一個互動交流的和諧授課氛圍。
(4) 善于發現問題
“當事者迷,旁觀者清。”教師一般授課前對所講課程都是精心準備的,在講課過程中,自我感覺一般都是不錯的。但是學生聽課效果如何呢?這決不是教師自己感覺良好,就良好,那是掩耳盜鈴,自欺欺人。在教學過程中,老師要多和學生進行交流,向學生征求授課中所存在的問題和意見,請學生給老師指出教學中所存在的問題,教師及時改正。
首先,教師可以采用課間或課后和部分學生交流的方式。為了消除學生給老師提建議的顧慮,也可以采用無記名的交字條的方式進行。學生還可以給老師發送電子郵件,隨時可以把自己的意見和建議反映給老師。
其次,教師更要傾聽教學督導老師的意見和建議,努力提高自己的教學水平。教學督導老師一般都是具有多年授課經驗的老教師,他們授課經驗豐富,看問題比較準確,教師要多和督導老師交流,虛心聽取他們的意見和建議,發現問題,及時改正。
再者,“三人行必有吾師。”無論你與其他教師是否教授同一門課程,每位教師授課都有其特色,我們要積極認真地去聽其他教師的授課,“取人之長,補己之短。”這樣我們才能進步。
總之,教師要通過不斷綜合學生和教學督導老師意見和建議以及其他教師的教學特點和經驗來提高自己的授課水準。
(5) 善于合理施壓
沒有壓力,就沒有動力。施壓,但不超壓。現在大學生參加的課外活動多,個別學生混學分的現象存在,部分學生對選修課重視不夠;再者,許多老師都知道,如果沒有實際的問題需要解決,只是抱著一本書看看學學,簡單練習練習,只編寫針對各知識點的小程序,一般是不能把一門計算機語言的知識點融會貫通的,更無法把其學深學透學精。
在開始講授C語言程序設計課程第一堂課時,教師可以在演示一兩個用C語言編寫解決實際問題的應用程序的同時布置一個綜合程序設計大作業,比如“學生成績信息管理系統”等,讓學生帶著壓力和問題學習,將一個綜合程序設計大作業的壓力分散到整個學期的學習過程中,時時有壓力,時時有動力,同時壓力分散,壓力強度不大。為避免抄襲拷貝、網上下載等現象的發生,可以在學期末拿出一定的時間進行課堂抽查(當然如果課時允許還可以進行全面檢查),由老師對抽查學生所做程序代碼,隨機指定一段,讓學生講解,這樣也可更好地督促學生學習。
3結束語
在C語言程序設計教學目標和教學任務確定之后,教師應對教材內容做到心中有數,對學生學習C語言的過程要充分了解,對學生學習中存在的問題必須有清醒的認識,要善于將以上“五個善于”有機結合應用,合理安排理論和實驗教學環節,就一定能有效提高講授C語言程序設計這門課程的教學效果。
參考文獻
[1] 嚴悍,衷宜,趙學龍. 編程語言教學實踐中QDeV方法探討[J]. 計算機教育,2008,(5):56-58.
[2] 嚴悍,衷宜,張琨. Adept:啟發程序求解能力的一種有效途徑[J]. 中國當代教育,2006,(5):1-5.
[3] 陳龍猛,王保桂,李吉忠,于仁師. 大案例教學法在Visual Basic程序設計教學中的探究[J]. 計算機教育,2008,(5):59-62.