摘要: 在中職計算機VB等程序設計語言的教學中傳統的教學方法很難適應中職學生現狀,對數學和英語功底較弱的中職學生來說,學習程序語言是力不能及,導致中職學生學習程序的興趣不濃。案例教學具有形象、生動、授課效果好的特點,因而被廣泛使用。筆者介紹了在計算機VB程序設計教學中選擇和使用案例教學的一些做法。
關鍵詞: VB程序設計 案例教學 教學方法 教學設計
一、引言
案例教學法是通過一個具體教育情景的描述,引導學生對這些特殊情景進行討論的一種教學方法。它改變傳統教學以本為本、從概念到概念的注入式教學方式,變成一種促進學生成為教學主體,學生自主學習、合作學習、研究性學習、探索性學習的開放式教學方式。
計算機VB語言是一門學生程序設計的入門課程,它的可視化界面能夠引起學生極大的學習興趣。但在傳統的VB語言教學中存在著以下問題:
(1)傳統VB語言基本上根據書本上的知識點進行教學,從一開始的VB語言變量、表達式,到順序程序結構、分支結構和循環結構這些基本語法開始學起,大量的理論很容易使學生在學習上產生倦怠,尤其是對于一個中職的學生來說,理論基本功相對較弱,講太多的理論語法和英文單詞不利于提升中職學生對VB語言的學習興趣。
(2)VB語言比最基本的QBASIC語言增加了可視化功能,VB是以可視化編程環境為平臺,向學生提出編程中最基本的概念:對象、屬性、方法、事件過程等概念。這些可視即可得的編程界面比QBASIC和C語言更容易學習,但我們很多教師拘泥于講解大量的控件、屬性和方法,使得學生只注意記憶各類控件屬性和英文單詞而忽略培養編程思想。
(3)我們從VB語言教學中發現,一開始學生對于可視化界面學習很有興趣,但是到課程后半階段一旦需要在程序中寫一段代碼,極大部分學生感覺比較困難;雖然有一部分能力強的學生較好地形成了編程的思維,但是涉及較大的實際編程問題時,還是無法學會如何把實際問題轉化為程序語言。這一問題是目前VB語言教學中普遍存在的。
針對上述問題,筆者認為,應該在VB語言教學中系統使用案例教學法,即放棄過度追求語言知識本身的系統化和細節化的做法,通過一系列精心設計的案例,讓學生在編程的過程中進行學習,做到“做中學”,在案例教學的經驗和活動中獲取知識,增進才干。
二、案例的選擇
1.案例應具實效性:一個好案例必須具有時代的特征,能反映當前具體的實際應用,可以使學生在以后的學習或工作中遇到此類問題時,借鑒該方法解決,對學生的學習具有舉一反三或事半功倍的效果。應盡量向學生介紹一些典型的案例,這些案例都是前人的經典之作、經驗之作,有助于學生經驗的積累,培養學生對程序設計的興趣,對思維方式的形成也大有裨益。
2.案例應具思維的拓展性:一個好的案例能夠把一些相關的知識點串連在一起,從而使學生能夠通過案例的學習來理解并掌握某一些理論的原理或基本概念,達到從例到理,再從理到例的轉換。要在案例教學中貫穿編程風格的訓練,讓學生在案例中學習,也讓學生在案例中反思、總結和不斷更新原有知識。
3.案例應具適用性:適用性是指案例的大小要合適、難易要合適。需要注意案例的大小,可以先從小的案例教學入手,一般這些小的案例只需要在課前15-20分鐘內進行,這些小案例涉及的知識點不多,但更容易突出授課目標,等到學生適應后再選用大的案例。在大的案例中可以培養學生將基礎知識應用于復雜的現實世界問題的能力。選擇案例時也要注意案例的難度,沒有難度,學生會沒有興趣;難度太大,學生又容易喪失信心,否則對授課不利。
三、案例的實施
案例的實施可以分為兩個階段,讓學生在案例中以例釋理,以例證理,從而獲得解決實際問題的能力。
第一階段是實現例到理的轉換。我們在設計這個階段的案例時往往采用相對比較小而又簡單的案例,但在這些小的案例中隱含著學生需要理解的各個知識點,如通過一個簡單的問候語句程序使得學生理解輸出語句的語法和格式,從而能在大的復雜案例中充分應用。所以在第一個階段應該以較快的速度,讓學生接觸程序基本結構、數據類型、函數等編程基本概念,但不必追求系統化和細節化;同時讓學生了解VB語言的可視化界面,對一些常用控件和屬性有一定的理解和掌握。在這些知識積累到一定程度后,應加以梳理和總結,使之達到一定程度的系統化。
第二階段是實現理到例的轉換。在第一個階段后學生已經通過一個個案例掌握了大量理論知識和控制概念及屬性,這個階段是在學生具備初步的編程經驗后,盡快進入提高階段。可以設計一些較大的案例程序進行分析和練習,在案例分析階段可以讓學生自主進行理論知識的復習和自學,例如對象、屬性、方法、事件等概念,在學習中讓學生提出自己對案例的理解和分析,然后教師進行糾正和補充。同時案例教學中可以采用層進式的教學方法,先要求學生讀懂程序,然后能夠修改程序的片斷,最后提出完全陌生的問題讓學生去解決。在案例的完成后總結一下所學到的知識,真正達到實現理到例的轉換、再回到理的理解和掌握。
在以上的兩個階段實施過程中,教師都要理清概念與案例的關系。案例是為概念學習服務的,案例必須恰當典型,每個環節的操作要都能為引出相關概念、理解概念服務。
四、具體案例分析
這里我們主要來介紹VB語言中跨模塊變量的使用案例。
1.案例內容和要求:設計簡易加減乘除計算器,要求能夠在可視化VB程序中實現計算器的簡單功能。如下圖:

2.案例實現方法
在本案例中有幾個教學重點和難點:控件數組中INDEX屬性的使用,變量作用域的正確申明,形狀變量的使用技巧。在一個案例中如涉及太多的教學重點和難點會使得案例偏難,學生學習興趣減弱,為此可分兩階段進行:
第一階段:使用一個小的案例,如先設計一個顯示9個按鈕控件上數字的程序,程序要求如下圖:

通過這個案例使學生基本理解控件數組INDEX的作用,熟悉并理解數組的定義和在程序的應用,如第一個控件的INDEX屬性為0,第二控件的INDEX屬性為1……這樣依次類推,在引用的時候可以用“控件名(INDEX)”,例如:command1(3)表示引用第四個按鈕控件。
第二階段:在理解控件數組INDEX的涵義后,接下去的階段就能夠應用INDEX控件數組了,所以在本案例中第二階段關注的重點是變量作用域范圍的正確使用,可以通過案例的層層深入教學來使得學生清晰地理解變量在不同作用域范圍內產生的作用是不同的。
在本案例中,我們可以先計算2+3兩個變量單次的加減乘除計算,這樣程序相對比較簡單,可以通過以下三個步驟進行。
(1)單擊數字按鈕后,把相應數字顯示在文本框中,如顯示數字2。
(2)單擊運算符時,產生一個事件,記憶原來的數字給變量a,然后清除原來文本框中數字,準備顯示新的數字,如顯示數字3。
(3)單擊等號產生另一個事件,在這個事件中把a+3的計算結果顯示在文本框中。
思考:通過這個例子讓學生們進行思考和反思,單擊運算符時,清除原來的數字之前得把數字進行記憶,則需要把此值賦值為變量,那么這個變量應該定義在哪個模塊中?顯然通過實驗得出,應該把這個變量定義為全局變量,如果定義在某個模塊內,則這個變量到另一個模塊引用時會被重新賦值而無法達到真正在不同模塊內傳送變量值的作用。
接下去我們來計算2+3-4這個連續運算時,比前一個程序多了一個運算,但步驟仍舊一樣。
(1)單擊數字按鈕后,把相應數字顯示在文本框中,如顯示數字2。
(2)單擊運算符時,產生一個事件,記憶原來的數字給變量a,然后清除原來文本框中數字,準備顯示新的數字,如顯示數字3。
(3)單擊運算符(-)時,產生一個事件,清除原來文本框中數字,準備顯示新的數字,同時要計算剛才a+3的值,把計算結果賦給變量b。
(4)單擊等號產生新的事件,在這個事件中把b-4的計算結果顯示在文本框中。
思考:在進行第三個步驟時,又涉及變量b同樣需要定義為全局變量,此變量值能夠完成在不同模塊間數值的傳遞,這四個步驟完成了3個數字的連續運算。假如需要進行4個數字、5個數字等等更多數字的連續運算時,則每個運算符中的事件需要怎么樣改變?
對這個案例的思考,使學生理解定義一個變量的時候需要注意其作用域范圍,也使得學生領會局部變量和全局變量的區別。同時我們可通過這個案例的層層深入剖析、思考和反思來培養學生的編程思想。這個案例在生活中非常典型,應用性也廣泛,學生比較容易理解和掌握,所以學生通過操作實踐后感覺收獲頗多,心里有了成就感,興趣就慢慢濃了起來。
五、總結
學習VB語言的目的不是單純地為了獲取有關的知識,而是為在生活實際中得到應用,所以系統化的案例教學法更能讓學生在接近實際的一個個案例學習中走向實際生活應用,在整個學習階段保持高度地學習興趣,使本來難學難懂的VB程序語言課變得簡單易懂;同時案例教學法可以培養學生主體實踐能力和反思能力,使得學生能夠做到舉一反三,為接受新的知識打下扎實的基礎。實踐證明,通過這類系統化的案例教學法,在學期結束的技能達標中,大多數學生都能取得良好的達標成績,更有一部分學生能夠獨立自創一些小程序。
參考文獻:
[1]謝志江等.案例教學法在工科教學中的應用[J].高等工程教育研究.
[2]徐涵.行為導向教學中教師角色的轉換[J].中國職業技術教育,2006.
[3]鄭金州.案例教學指南[M].上海:華東師范大學出版社,2000.