徐 凱,宋麥玲,薛思清
(中國地質大學(武漢)計算機學院,湖北武漢,430074)
C語言是國內外使用最廣泛的高級程序設計語言之一。C語言功能豐富、表達能力強、使用方便靈活、應用面廣、目標程序執(zhí)行效率高、可移植性好,既具有高級語言的優(yōu)點,又具有低級語言的許多特點,特別適合于編寫系統(tǒng)軟件[1],也可用于編寫應用軟件。因此很多高校把“C程序設計”作為計算機各專業(yè)的主干基礎課程之一,可見其地位和作用是非常重要的。通過“C程序設計”的教學,目的是使學生能夠很好地理解C程序設計的基本語法和規(guī)則,掌握C語言程序設計的基本思路和算法,熟悉程序調試環(huán)境,從而培養(yǎng)學生養(yǎng)成良好的編程思想、編程習慣、設計規(guī)范和風格,為后續(xù)專業(yè)課程及其它程序設計課程的學習和應用奠定堅實的基礎。
傳統(tǒng)的“C程序設計”教學方式是:“提出概念―解釋概念―例題講解―習題”,在課程教學過程中主要是以教師為主導的“填塞式”的教學方式,而大部分學生基本上是以被動接受的方式在教師指導下完成學習,學生學習的主動性與積極性都不強。同時,由于這門課程的知識點多,信息量大,邏輯思維能力要求很強。因此,學生普遍認為C語言程序設計的語法復雜,知識零亂,枯燥難懂,全部課程學完以后,大多學生只能看懂程序,而不會編寫程序,不會應用C語言解決實際問題。本文結合課題組教師的教學實踐,提出在“C程序設計”課程中采用項目驅動式案例教學法,并對教學案例的選擇、實施以及在教學中應注意的問題進行了探討。
項目驅動教學法來源于建構主義學習理論,與其相適應的項目驅動教學模式為:“以學生為中心,教師在整個教學過程中起組織和指導的作用,利用情境、協(xié)作、會話等學習環(huán)境要素,充分發(fā)揮學生的主動性、積極性和創(chuàng)新精神,最終達到使學生有效地掌握當前所學的知識的目的?!痹谶@種模式中,教學關注的重點是學生達到的程度,指導教師的任務是根據學生已有的經驗、知識、水平和興趣來選取適合他們的項目,使學生置身于探索知識的情景之中,即在真實世界中運用知識解決問題。從根本上將傳統(tǒng)課堂中老師滿堂灌,轉變?yōu)椤皩W生為主體,教師為主導”的教學模式[2]。
案例教學法(Case Study)是19世紀70年代美國哈佛大學法學院院長蘭德爾首創(chuàng)的,最早是應用于醫(yī)學領域,后來廣泛運用于工商管理、法學、軍事學、教育學、理學以及工學等學科。所謂案例教學法是指教師在教學過程中,根據教學目的和培養(yǎng)目標的要求,以案例為基本素材,把學生帶入特定的情景中進行分析問題和解決問題,從而培養(yǎng)學生運用理論知識進行分析研究,提出自己的見解,做出判斷和決策,提高學生解決問題的能力的一種理論聯系實際的啟發(fā)式教學方法[3]。它是一種生動、靈活、多樣化的教學方法,通過師生、生生之間雙向和多向互動,積極參與,平等對話和研討,重點培養(yǎng)學生的批判反思意識及團體合作能力,并促使學生充分理解問題的復雜性、變化性、多樣性等屬性的重要教學形式。
本文提出的項目驅動式案例教學法,其核心是用一個完整的項目貫穿“C程序設計”課程的所有教學內容,并采用逐步擴張法進行項目的開發(fā),同時,把項目拆分為若干個典型案例,在課程教學中以典型案例劃分單元教學內容,以案例引導學生學習不同的知識點。這樣,將項目開發(fā)與課程教學交叉融合、相輔相成,從而實現“C程序設計”的教學目標,并培養(yǎng)學生形成完整的編程思想與編程風格。與傳統(tǒng)的教學方法相比,項目驅動式案例教學法具有從解決實際問題出發(fā),理論聯系實際,能夠活躍學習氣氛,調動學習主動性與積極性,使課堂更具有趣味性。
“C程序設計”課程的教學目的是向學生介紹結構化程序設計的基本思想與方法,通過學習這門課程,讓學生了解用計算機解決問題的一般方法步驟,重點掌握編寫和調試簡單應用程序的技能,培養(yǎng)學生的實際動手能力和探究、創(chuàng)新能力。為此,根據“C程序設計”課程的教學目的與內容,我們將這門課程分為兩個階段來實施項目驅動式案例教學。第一階段是基礎教學,主要包括程序基本結構、數據類型、操作符基本的語言要素,通過對這個階段的學習,讓學生能夠掌握C程序設計的基本知識,初步讀懂程序,其目的是培養(yǎng)學生的興趣。第二階段主要包括函數、指針、結構體、文件等語言要素,通過這個階段的學習,讓學生能夠獨立編寫程序,其目的是理論與實踐相結合,提高學生的實際應用能力。
根據以上安排,筆者設計了由“學生信息管理系統(tǒng)”項目來驅動C程序設計的課程教學。在實際教學過程中,把“學生信息管理系統(tǒng)”項目拆分為20個案例,如程序結構、數據類型、操作符、數組、字符串、函數等,每個案例對應一個知識點。在56學時的教學過程中,40學時完成教師與學生互動的項目驅動的案例教學過程;16學時用于完成項目實踐,即仿照“學生信息管理系統(tǒng)”項目完成“本班學生檔案管理”。
在每節(jié)課程的教學過程中,以教師為主體,采用案例分析教學法,通過對案例的演示、講授和分析,將案例與所講授的課程知識點融為一體,形成一個完整的課程內容體系。以數組這一部分為例,首先,給學生演示用數值實現的案例——“學生信息管理系統(tǒng)”,向學生演示學生成績的輸入、查詢、排序、刪除、輸出等與數組案例相關的內容。同時,教師在演示的過程中向學生提出相關問題,讓學生思考的同時引出數組的知識點。其次,講授數組的語法及功能,重點對數組概念、語法進行講授。講授完后,讓學生結合“學生信息管理系統(tǒng)”,自己總結數組的功能。再次,根據學生的理解程度,再進一步深入剖析“學生信息管理系統(tǒng)”案例中與數組相關的內容,可以采用從上至下的方式,帶領學生對案例的算法、語法及功能進行分析,讓學生充分理解和領會數組在“學生信息管理系統(tǒng)”案例功能模塊中的主要作用。最后將整個案例中所用到的知識點進行匯總,使學生更好地理解數組的理論知識,也為后續(xù)的實踐學習打下良好的基礎。
在整個教學過程中,教師與學生的交互貫穿整個流程。教師起主導作用,也就是教師根據教學內容將所有案例與所要教授的知識點緊密結合,并流程化,分階段實施,由淺入深,層層遞進。而學生作為學習的主體,在整個項目的實施階段,學生隨時要主動學習和理解案例,以及相關的知識點,并且要熟練掌握編程思想與設計規(guī)范。
案例的實現是項目驅動式案例教學法中極為重要的一步,因此,要求學生在實踐課上親自編程來實現案例教學中提到的案例,這樣才能讓學生真正地將各個知識點融入到實踐中,體會理論與實踐的有機結合。教師根據案例涵蓋知識點的多少及難易程度,合理安排實踐課的內容。一般情況下,每一學時實踐課實現案例的一至兩個功能模塊。
為了讓學生更好地學好C語言程序設計,同時,也為了更好地發(fā)揮項目驅動式案例教學法的作用,在“C程序設計”課程中使用項目驅動式案例教學法時,應該注意如下四點:
第一,項目的設計。項目的設計應涵蓋C語言程序設計教學的所有知識點,并能激起學生興趣與求知欲。同時,項目難度要適宜,確保大多數同學能夠完成,項目完成后應能看到具體的效果,這樣能調動學生探索知識的積極性和主動性。
第二,案例的選擇。案例是讓學生在真實的環(huán)境中完成任務,達到提高學生分析問題、解決問題的實踐動手能力,因此案例選擇時應考慮如下方面:(1)案例的選擇要能包含盡可能多的知識點,不能脫離相關知識點,否則案例的選擇沒有意義;(2)案例應具有代表性與可擴展性,學生能夠從案例中得到啟發(fā),進行拓展性思考,這樣能讓優(yōu)秀的學生有發(fā)揮的空間;(3)案例選擇的大小和難度要適宜。難度和規(guī)模太小,難以豐富編程內容,達不到應有的效果;同樣,難度和規(guī)模太大,又會超出學生的實際知識水平與能力,使學生產生挫敗感,同樣影響教學效果;(4)案例教學中要貫穿編程風格的訓練,這是編程內容中不可或缺的一部分,它反映了一個人編程的思維品質與編程的設計風范。因此,編程風格的訓練應該從一開始就加以重視,并貫穿整個課程的始終[4]。
第三,案例的講解與總結。案例的講解是案例實施的指導,案例總結是案例實施的歸納,是項目驅動式案例教學的重點和精華部分,教師應該重點講解。
第四,案例的銜接與項目的完成。通過一條主線,把案例銜接起來,最終完成整個項目,并讓學生看到完成后的效果。
教學實踐證明,在“C程序設計”課程教學中采用項目驅動式案例教學法,能把理論與實踐緊密結合,能增加課堂教學信息量,提高教學質量。同時,能夠充分調動學生的積極性,激發(fā)學生學習的興趣,對提高學生分析問題、解決問題,以及培養(yǎng)學生的創(chuàng)新思維與實踐的能力都具有重要的作用。
總之,項目驅動式案例教學法是一種具有啟發(fā)性、實踐性,能開發(fā)學生智力,提高學生決策能力和綜合素質的新型教學方法。合理、有效地使用項目驅動式案例教學可將枯燥的抽象的概念變得生動、具體,重點突出,簡單明了,既活躍了課堂氣氛,又調動了學生的積極性[5]。所以在“C程序設計”課程的教學中使用項目驅動式案例教學,容易使教學過程充滿挑戰(zhàn)性、趣味性,很好地解決傳統(tǒng)教學中遇到的問題。值得一提的是,對于部分理論知識,教師還應該按照教學的實際情況,運用傳統(tǒng)教學方法進行系統(tǒng)的講授,不能完全由項目驅動式案例教學法來替代。因此,今后,我們將進一步探索項目驅動式案例教學法在“C程序設計”中的應用,進一步去尋求傳統(tǒng)教學法與項目驅動式案例教學法的最佳結合點,各取所長,既要能系統(tǒng)化地傳授教學內容,又要能提高學生學習的主動性、創(chuàng)造性,從而追求更高的教學效果。
[1] 譚浩強.“C程序設計”[M].3版.北京:清華大學出版社,2005.
[2] 郭新,孟昭文,王業(yè)君.項目驅動教學法在高校Linux人才培養(yǎng)中的應用[J].職業(yè)圈,2007(21):116-117.
[3] 鄭金洲.案例教學指南[M].上海:華東師范大學出版社,2000.
[4] 范勁松,黃友初.案例教學法在C語言教學中的系統(tǒng)應用[J].鄖陽醫(yī)學院學報,2005,24(3):191-192.
[5] 任華.案例教學法在計算機C語言教學中的作用探究[J].信息科技,2011(1):183-184.