黑龍江陳軍
C語言程序設計一直以來都是中職學校計算機應用與軟件專業的核心課程,它是理想的結構化程序設計語言,編寫出的程序結構緊湊、運行效率高,是培養學生邏輯思維能力、進行算法等編程素質訓練的最好語言。但是中職學生還是以初中畢業生為主,文化理論基礎薄弱,而C語言涉及的概念比較復雜,規則繁多,使用靈活,初學者難以掌握并且容易出錯,很多初學者根本不明白C語言有什么作用,為什么要學習C語言以及怎樣能讓基礎較差的中職學生更好地了解、學習、掌握C語言等等,這些都是中職學校C語言教學過程中需要解決的問題。
筆者在多年來C語言教學過程中,應用軟件培訓領域經常采用的3W1H的教學方法,逐步培養學生的邏輯思維能力,遵循從簡到難逐步深入的原則,讓每一個學生每向前邁進一步,都能獲得成功的體驗,而且穩步提高學生的學習興趣,收到了一定的效果,現將從教學實踐中得來的心得體會總結如下。
所謂3W1H教學法是北大青鳥ACCP在多年教學實踐中總結出來的一個有效、實用的教學方法,可以使沒有計算機基礎的學生也能充分的掌握計算機技能,并在學習過程中獲得實際的工作經驗。
3W1 H教學法主要是將講授內容總結為WHAT、WHY、WHERE 和 HOW,通過該教學法,使得教師更加明確教學任務,高效快速的展開教學環節,同時也可以讓學生在課堂上明確學習目標,清楚地知道它的應用環境和應用場合,能夠更快地結合實際社會需要,投入到實際的開發工程中去,從而為實現個性化的開發和探究式學習奠定基礎。
在3W1H教學法中第一個“W”是WHAT。應用時,要求教師講解清楚所學的知識點是什么。例如,在講解C語言中的數組概念的時候,就要解釋清楚數組是把具有相同數據類型的若干變量按有序的形式組織起來,以便于程序處理的數據元素集合。
第二個“W”是WHY。在教學過程中,要求教師能夠講出為什么要引入這個知識點,用于解決什么問題。當需要處理大量的數據時,用基本的數據類型和簡單的變量顯得力不從心,所以C語言提供了組合類型的數據,這樣一來既便于命名,起一個名字就夠了,又便于統一處理。
另一個“W”是WHERE。在教學過程中,要求教師能夠講出這個知識點用在什么地方。當需要處理大量相同類型的數據的時候,比如:對大量的學生成績或者姓名進行排序和統計的時候,數組就可以充分發揮它的優勢。
在3W1H教學法中“H”就是HOW。在教學過程中,要求教師能夠講出如何使用這個知識點。比如:數組如何定義,怎樣調用以及使用規則等等。
3W1 H中前兩個比較容易實現,但后兩個卻很難做到,現實生活中也是這樣。有這樣一個例子,一個快速切菜器的推銷員,這個推銷員時常在附近的超市門口推銷它的快速切菜器。有意思的是,在他背后的超市里也售賣這種切菜器,而且價格還比他的便宜。奇怪的現象發生了,我發現超市里的切菜器根本沒人買,而購買他商品的人卻絡繹不絕。問題出在哪里?難道是因為這個推銷員特別能“忽悠”?不是!原因就在于推銷員是一邊演示他的商品一邊賣,而超市只是把商品放在那里。推銷員的演示告訴人們怎樣使用這種新型切菜器,這就是問題的根本。如果一個人不知道怎樣使用這個商品,那買回去又有何用。同樣,一節課在介紹知識的時候能否告訴學生這個知識怎樣用、用在哪里也至關重要,一個學生如果學習到不知道如何使用的知識那就是在浪費時間。
3W1 H教學法與傳統教學法的比較,傳統的教學方法是建立在“傳遞——接受”教學理論和行為主義的“刺激——反應”學習理論上,主要特點是教師是主動的施教者,是知識的傳授、灌輸者,學生是外界刺激的被動接受者,是知識的灌輸對象。傳統的教學通常都是“三部曲”,即:提出概念——解釋概念——舉例說明。
3W1 H教學法通過創設特定的情景,不僅讓學生了解學習的內容“是什么”和“為什么用”,更重要的是讓學生知道這個知識點“用在哪里”和“怎么用”,最后做到舉一反三,更好地實現教學過程和生產過程的對接。
3W1 H教學法在教學過程中的應用。當需要處理大量的數據時,用基本類型數據(簡單變量)就顯得力不從心,所以C語言提供了組合類型的數據。數組就是構造類型數據之一,它是所有程序設計語言中都有的數據類型,它占用連續的若干存儲單元。下面我們將展示在數組這節課的教學中3W1H法的具體應用。
1.WHY:為什么需要數組。使用問題來引入:如果要記錄一名學生的某科目的考試成績,需要定義一個變量。如果我們要記錄一名學生在校期間的所有考試成績,是不是就需要定義二十幾個變量。那如果我們要記錄10名學生的所有考試成績,是不是就需要定義二百多個變量呢?C語言有沒有好辦法能解決這個問題?當需要處理大量的數據時,用基本的數據類型和簡單的變量顯得力不從心,所以C語言提供了組合類型的數據,這樣一來既便于命名,起一個名字就夠了,又便于統一處理。
2.WHAT和WHERE:首先為學生講解數組的抽象定義:(1)數組中存儲的數據稱為數組元素;(2)不管數組中含有多少個元素,該數組都只有一個名稱;(3)數組元素在數組里順序排列編號;(4)數組的容量是有限的。(5)數組按照下標個數的不同,可以分成一維數組,二維數組等等;然后,展示具體的一個一維數組的例子intscore[MAX];強調這就是一個一維數組。最后,數組通常應用在需要處理大量數量的地方,結合求最高分和起泡法排序,來說明使用數組可以縮短和簡化程序。
3.How:如何使用數組。從聲明數組、分配數組空間、賦值和對數據進行處理這幾個部分講解數組的應用。首先怎樣定義一個數組?舉例intscore[MAX];它表示數組名為score,類型為整型,有一個下標因此是一維數組。并且C語言規定數組的小標從0開始,當MAX=5時,其值的范圍是0~4。Score包含5個元素,分別是score[0]、score[1]、score[2]、score[3]和 score[4]。怎樣使用數組中的元素?C語言規定只能逐個使用數組元素而不能引用整個數組。
例如:
intscore[6];
if(score[i]>=60)printf(“%d ”,score[i]);
必須遵循先定義后使用的原則。這部分結合學生成績管理示例演示和現場編程教學,并在演示的過程中強調容易出現錯誤的地方。
3W1 H教學法在軟件編程的教學中使用非常廣泛,對中職的計算機教學尤其是軟件類和設計類的課程,使用此方法更是能達到事半功倍的效果。從教師方面而言:教師要從學生的實際水平出發,既要傳授必要的理論知識,還要兼顧學生的興趣,創設良好的情境,使學生積極參與知識的探索過程。這就要求教師對每一節課做好更加充分的準備,不僅在知識結構上不斷更新,更要在教育教學觀念上更新;不斷進行總結和反思,時常開展“3W1H”自省,即對“教什么(what)”、“怎樣教 (how)”、“為什么這樣教(why)”和“哪里用(where)”進行思考,批判性地進行優劣抉擇比較,提出和設計改進意見,以改進教學方法和策略,逐步積累形成新的教學思想與教學實踐方法,促進自我發展。
從學生方面而言:讓學生的明確學習目的,學習的積極性大大提高。主體意識明顯增強,綜合應用能力和創新能力得到了很好的發展,自我探究能力也在不斷提高;其次,學生在完成“項目”的過程中,時刻想到這是什么?為什么?怎么用?哪里用?同時有很多問題可以自由討論、相互幫助,增強了團隊的合作意識,增進了學生的友誼。
最后,C語言程序設計是一門概念復雜、使用靈活和規則繁多的課程,具有很強的抽象性和實踐性。因此在實際的教學過程中,仍需要不斷地總結和改進,找出一套更加適合當前中職教育大環境和中職學生特點的教學方法,真正的實現專業與產業、職業崗位對接,專業課程內容與職業標準對接,教學過程與生產過程對接,學歷證書與職業資格證書對接,職業教育與終身學習對接。