摘要:傳統的《C程序設計》教學方法存在很多不足,提出一種新的基于案例的教學方法。該方法采用“案例-理論和概念”的教學模式,具有突出實踐性,體現真實性,實現互動性,發揮學生主體性等顯著特點。案例設計是該方法的前提和基礎,指出了設計案例時需注意的問題,并結合實例進行了說明。案例教學可極大提高學生學習的興趣,增強學生在課堂上的參與感,改變原來課堂“滿堂灌”現象,從而提高教學質量。
關鍵詞:C程序設計;案例教學;認知負荷
中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2008)17-21500-02
1 引言
C 語言是既得到美國國家標準化協會(ANSI)標準化又得到工業界廣泛支持的計算機語言之一,幾乎任何一種機型、任何一種操作系統都支持 C語言開發[1]。《C程序設計》是計算機、信息管理以及電子商務等專業的一門重要基礎課,一旦掌握了C語言,就可以較為輕松地學習其它任何一種程序設計語言,為后續的《面向對象程序設計》、《數據結構》、《計算方法》等課程的學習打下基礎。
目前,在傳統的《C程序設計》課程的教學中,存在一些不足。首先,在教學方式上,教師利用多媒體講解說明各個知識點,更多的只是注重教的過程,而忽然了非常重要的學生學的過程,教學缺乏直觀性、生動性,教學效果不理想。其次,在教學內容上,C語言的內容繁多,在有限的課時內課本內容要面面俱到,必然會造成重點不突出,實用性不強等問題。另外,該課程一般在低年級開設,學生大部分初次接觸程序設計,綜合能力還比較弱。這些都使得教學質量不高,培養的學生分析、閱讀、設計程序的能力不強。
2 案例教學
案例教學是目前國內外比較流行的一種教學方法,已被廣泛應用于醫學、法學、管理信息系統等教學中。所謂案例教學是指教師本著理論和實踐有機整和的宗旨,依據教學目的和要求,以案例為基本素材,將學生引入一個特定的真實情景中,通過師生、生生之間雙向和多向互動,積極參與,平等對話和探討,重點培養學生的批判反思意識以及團體合作能力,并促使學生充分理解問題之復雜性、變化性和多樣性等屬性的教學方法[2-3]。
結合《C程序設計》課程體系本身特點,其案例教學具有以下特點:
1) 突出實踐性:注重培養學生的實際操作能力、實踐應用能力和創新能力。
2) 體現真實性:案例教學可縮短理論與實際應用之間的差距,是教學通向現實的一個橋梁,可使學生更快地適應以后的實際工作。
3) 實現互動性:案例教學是互動式教學,使學生的學習由被動接受知識變為主動探索。它訓練的是決策藝術,鍛煉學生以積極主動的心態解決問題,從而提高學生分析和解決問題的能力,提高學生的綜合素質。案例教學把抽象的原理和概念具體化,把知識點置于一定的案例中,再采用啟發式教學,將教師講與學生課堂討論有機結合起來,從而開闊學生思路、活躍課堂氣氛、激發學生學習興趣,有利于培養學生獨立思考問題的能力。
4) 發揮學生主體性:案例教學主要目的是培養學生綜合能力,在整個教學過程中,自始至終都以學生為主。學生自己分析案例,找出解決思路,寫出解決方法,然后進行小組討論或者班級討論,最終確定解決方法。解決方法可以有多種,每個學生解決方法可能不同,所以案例教學拓寬了學生思路。教師創造機會讓學生表達自己的思維,使學生形成富于壓力的學習機制,有利于調動學生學習的積極性和主動性,使學生的能力在學習過程中得到鍛煉和提高。
3 教學案例設計
傳統的教學方法是“概念-理論-應用”教學模式,教師一般先講解C語言語法規則,再舉例說明應用,由于語法知識點非常繁多,學生在解決實際問題時很難掌握。而案例教學與傳統的教學方法完全相反,采用“案例-理論和概念”的教學方法,教師先設計案例,然后由學生分析解決方法,教師由案例引出新的知識點,學生討論解決方法,最后綜合討論結果,總結解決方案[4]。其中,組織好學生參加案例討論是案例教學實施的一個關鍵,教師在這個環節擔當著組織者、引導者、講授者等多種角色。而經過學生討論后,教師應該及時做出點評,肯定問題的多種解決方案,并講授本案例中所需用到的理論知識和技能。在這里,我們只重點研究第一個環節,即案例設計,它是整個案例教學的前提和基礎。
案例并不是簡單的舉例,它應該具有系統性、針對性、可實踐性等特點,在設計案例時應注意如下幾個問題:
3.1 難易合適
心理學中的認知負荷理論認為[5],問題解決或者學習過程中的各種認知活動均需消耗認知資源,若所有活動所需的資源總量超過了個體所具有的資源總量,則存在資源分配不足的問題,從而影響學習或者問題解決的效率,這就是認知負荷過重。所以案例設計應該符合當前階段學生的認知水平,如果案例設置過于復雜,則會挫傷學生學習的積極性。例如在給學生講解數據類型的數值范圍時,由于這是本課程的開始內容,學生尚無任何基礎,所以應該給學生設計簡單的案例,可首先讓學生分析如下程序的輸出結果:
void main()
{
char c=129;
printf(\"c is %d\\",c);
}
教師在學生分析時要進行指導,如提示學生此程序是否正確,最后的結果是否是129等,并在經過學生討論分析后,給出學生正確的結果-127。這個案例難易合適,并包括了很多知識點,如字符類型和整型數據的區別和聯系,原碼補碼的轉換,輸入輸出的控制字符等。
3.2 趣味性
認知負荷理論的核心觀點是盡量降低因學習材料的組織和呈現方式所導致的無關的外部認知負荷,如果內在認知負荷很高,即學習的內容比較復雜困難,同時外在的認知負荷也很高,那么全部認知負荷將超過總的智力資源,學習可能失敗。而在C程序設計中,語法知識點繁多,學生要學習的算法與要解決的實際問題交織在一起,它們在學生頭腦中形成高水平的內在認知負荷,為了避免失敗,選擇的案例應貼近學生生活或者學習的興趣點,減輕學生的外部認知負荷,從而使學生提高學習興趣,加強理解能力。如在講解運算符時,可讓大家分析體育比賽的案例,即5位跳水高手參加10米高臺跳水決賽,有好事者讓5人據實力預測比賽結果。A選手說:B第二,我第三;B選手說:我第二,E第四;C選手說:我第一,D第二;D選手說:C最后,我第三;E選手說:我第四,A第一。決賽成績公布之后,每位選手的預測都只說對了一半,即一對一錯。請編程解出比賽的實際名次。這個案例對于愛好體育運動的學生有一定的趣味性,同時又考察了C語言中各種表達式和循環語句的使用等。
3.3 大小合適
小案例適用于平時基礎知識的講授,雖然案例應盡可能接近現實應用,但由于內容的限制,小案例與現實應用會有較大的差距,甚至可能沒有任何應用價值。故應至少設計一個貫穿整個課程的大案例系統,學生在教師的指導下,每次完成該系統的一個模塊或一部分,這樣才能鞏固基礎知識,貫通課程內容,培養學生將基礎知識結合起來解決復雜現實問題的能力。如學生成績管理問題,能考察數據類型、數組、指針、排序、結構體等知識的綜合運用。
4 總結
計算機及相關專業人員熟練掌握一門程序設計語言非常重要,但更重要的是具有編程思維能力和開發能力。本文提出的基于案例的程序設計教學,可極大提高學生學習的興趣,增強學生在課堂上的參與感,改變原來課堂“滿堂灌”現象,對培養學生的編程思維能力和提高他們的軟件開發能力有很大的幫助。但這種教學方法有很多要求,如案例設計,因為目前普通本科學生接觸實踐較少,如何選擇學生較為熟悉、又有一定實用價值的案例顯得比較困難,同時,案例教學也給教師提出很多新的要求,尤其對于年輕教師來講,如何做好案例教學的設計者和組織者,都需要再進一步探討。
參考文獻:
[1] 譚浩強. C程序設計(第3版)[M]. 北京:清華大學出版社,2005.
[2] 莊亞俊, 徐人鳳, 聶哲. 印度NIIT模式在高職軟件教育中的借鑒與深化[J]. 計算機教育,2006,(10).
[3] 陳建潮. 在程序設計課程中導入“案例式”教學方法[J]. 計算機教學,2007.(4).
[4] 李洛, 吳紹根. 基于印度培養模式的二年制高職軟件人才培養思路[J]. 高教探索,2004,(2).
[5] 張慧. 認知負荷理論綜述[J]. 教育研究與實現,1999,(4).