摘 要: 由于《C語言程序設計》實踐性較強,需要一定的編程練習才能鞏固和加深學生對課堂知識的理解,并且由于學生開始學習計算機編程語言,感覺較難學習,因此教師應采用“行動導向教學法”進行C語言的研究。本文作者采用行動導向教學法的項目教學法和案例教學法對普通高等教育的非計算機專業《C語言程序設計》課程的教學進行研究,以期探索提高學生學習和實踐的能力。
關鍵詞: 《C語言程序設計》 行動導向 項目教學 案例教學
1.前言
C語言具有簡潔、緊湊、使用方便靈活,以及生成目標代碼質量高、程序執行效率高、可移植性好等特點,并且學習C語言課程不僅能為學生程序設計打下基礎,而且能為學生應用計算機解決實際問題提供了一門高效的編程語言工具,由此,國內絕大部分理工科專業都將C語言的課程作為專業必修課。因此,《C語言程序設計》的教學水平對提高學生計算機水平與能力,以及進一步學習和工作都具有重要的作用。
然而,C語言的學習與Basic語言、Fortran語言等高級計算機語言相比較難學習。這是因為:首先,在學習C語言之前,絕大部分普通本科生都沒有學過任何程序設計語言,不能掌握正確的學習方法,因而感覺比較難學;其次,C語言課程的實踐性較強,只有通過大量的編程實踐,才能熟練掌握C語言的語法規則和編程技巧,在缺乏足夠的實踐練習情況下,學好C語言是比較困難的;最后,C語言課程本身的結構特點也決定了它比較難學,例如,C語言的中級語言特點雖然可以實現低級語言的一些功能,但要真正掌握諸如指針等的基本概念與基礎知識還是比較困難的,再如C語言的語法限制不太嚴格、程序設計比較自由,放寬了語法檢查,就導致初學者編一個正確的C語言程序可能會比其他高級語言難些。
因此,對《C語言程序設計》教學法的研究受到廣泛的關注[1-4]。盡管這些方法都在一定程度上改進了C語言的教學方法,對教學有較大的幫助,但對于新課程的學習還不能完全解決教學中存在的問題,學生對稍微復雜的編程問題仍無從下手。本文借助“行為導向教學法”,探索提高學生C語言學習和使用C語言進行較為復雜問題編程的能力。
2.行動導向教學法《C語言程序設計》實踐能力培養
2.1行動導向教學法
行動導向教學法是以學生活動和培養能力為中心的教學法,由師生共同確定的行動來引導教學組織過程,學生通過主動和全面的學習,達到腦力和體力勞動的統一。行動導向教學法不是指某一種具體的教學方法,而是由一系列教學方法及技術組成的,在實際使用中有大腦風暴法、項目教學法、張貼板教學法、引導課文教學法、案例教學法、角色扮演教學法、模擬教學法、未來設計法等。最初提出并推行行為導向教學法的是在德國職業教育領域,現在我國一些職業技術院校將其作為主要的教學方法,但將這種教學方法應用在普通本科院校的還比較少。本文采用行動導向教學法中的項目教學法和案例教學法作為例子研究針對普通全日制高等教育非計算機專業學生的《C語言程序設計》課程的教學方法。
2.2項目教學法C語言程序設計案例
項目教學法是一種將具體的項目或任務交給學生自己完成的教學方法,學生在收集信息、設計方案、實施方案、完成任務中學習和掌握知識,形成技能[5]。項目教學法首先要明確項目任務,通常由教師提出任務設想,由學生討論,并最終確定項目任務。其次由學生制定教學計劃,并由教師審查并給予指導。最后進行學生分組及分工,按照既定的工作步驟和程序工作。工作完成后,先由學生自我評估,再由教師進行評價。筆者采用以下例子說明項目教學法在C語言教學中的應用。
給學生布置任務:編一個學生成績管理系統的程序。這個項目對于一般的學生來說,由于不知道該從何處下手,因此通常都是照抄參考答案。解決這個問題可以將該實驗作為一個項目來處理。首先將學生分成一個一個小組,每個小組的小組長由該組的學生輪流擔任,小組學生在小組長的領導下完成項目的分工與協作。學生經過討論,會發現系統具有以下功能。
1.學生信息及成績輸入的界面;
2.存儲每個學生信息及各科的成績;
3.計算每個學生的平均分;
4.計算每門課的平均分;
5.找出所有50個分數中最高的分數所對應的學生和課程;
7.按學號或姓名查詢學生的成績;
8.對指定的成績進行排序。
在本項目中將一個大的任務分成八個小的程序,每個程序都是由一個獨立的函數組成,當四個學生都完成了,再組成一個完整的程序。因此對于每個學生來說,只是完成兩個小題目,顯然很容易。再使四個學生輪流更換所承擔的任務,直到每個學生都獨立編制各個函數,也就是完成了實驗的任務。采用這種方式進行實驗,一方面由于在第一輪實驗后,同學之間可以相互幫助,因此還可以解決目前指導老師少,要指導的學生多而教師指導不過來的問題,另一方面在較短的時間里就看到實驗結果,使學生有一定的成就感,從而可以激發學生的學習興趣,更重要的是鍛煉相互協作的能力,為學生將來在實際工作中開發較大的項目做好準備。
教師所起的作用只是確定任務,在實驗過程中及時地指導學生。在實驗完成后,對每組給出恰當的評價。作業提交后,對學生的協作結果進行評估,采用的評分規則是:個體所得分值=小組得分×(個體在組內得分/小組內所有個體得分的平均值)。小組得分是教師給出的分數。成員的組內得分則是在組長的組織下,由所有的成員對其打分取算術平均數。
2.3案例教學法
案例教學法是指籍由案例作為師生互動核心的教學方法。換言之,案例教學法指籍由案例作為教學材料,結合教學主題,透過討論、問答等師生互動的教學過程,讓學生了解與教學主題相關的概念或理論,并培養高層次能力的教學方法[6]。在C語言教學中恰當地引用案例,可以幫助學生理解較難的語法概念、算法和解決實際問題。例如,排序對于初學C語言的學生來說是比較難的,教師可以采用案例教學法進行教學。首先讓學生把實際的五個數據按照從小到大的順序進行排序,有的學生可能很快就將順序排出來了,但要問他是如何排出來的,就很難說清,因為這個排序的過程對于他來說太簡單了,而沒有考慮排序的算法。接下來我引導學生,在實際生活中有很多排序的例子,如上交的作業本、實驗報告就需要排序,學生成績需要排序,排序在算法中很重要。我先讓學生拿作業本作實驗,讓學生通過作業本的排序,獲得一些感性認識。然后告訴學生,實際上,我們采用的方法是選擇法排序,在五個數中一眼看出最大的數字(實際上是有和其余數的比較的過程),再將最大的數與最右邊的數字進行交換,然后找出次最大,依次類推,就可以完成排序的任務。編程語言的實現就是兩層循環,外循環控制循環的趟次,內循環是在每一趟中尋找最大值。除了選擇法排序以外,再介紹另外一種排序算法,就是冒泡法排序,最后講解相關的原理。在講解指針相關內容的時候,由于指針的概念難于理解,指針的使用常常與數組結合在一起,教師可以采用同樣的方法和例子,進一步幫助學生理解指針的概念。
3.結語
行動導向教學法在教學過程中可以激發學生的學習興趣,提高學生的實踐和團隊協作能力,在普通本科生的教學過程中適當地采用是有益的。從當前本科院校的狀況來講,這種增強學習和實踐能力的教學方法還需要加強,行動教學法中的項目教學法和案例教學法,需要準備典型的項目和案例,以幫助學生更好地學習C語言程序設計課程和提高實踐的能力。
參考文獻:
[1]張慶嵐.《C語言程序設計》教學方法新探.江漢石油學院學報(社科版),2002,4,(2):68-69.
[2]施金良,湯仕龍,余群威.“C語言程序設計”課程教學改革的探索與實踐.中國冶金教育,2003,(3):37-39.
[3]程艷.《C語言程序設計》教學中“類比”法的運用.職教論壇,2003,(18):34.
[4]王新芝.淺談大氣科學類專業《C語言》教學體會.氣象教育與科技,2007,30,(4):20-24.
[5]苑敏,蘇英志.行為導向教學法在專業課中的應用.教育與職業,2008,(8):104-105.
[6]張杰民.案例教學法——理論與務實.甘肅文化出版社,2005.