摘 要:隨著社會發展的迫切需要,編程教育被進一步提到重要的地位。對于初中生而言,程序設計學習是有相當難度的。本文介紹了筆者在初中VB教學中采用的一些改進教學效果的做法,愿與大家共同探討。
關鍵詞:程序設計;VB教學;初中計算機
VB是筆者所在地區初二學生的一門信息技術課程。程序設計在當今社會各行各業的應用越來越廣泛,有時起著相當關鍵的作用。掌握基礎的程序設計技能,為今后可能進一步的深造打好基礎,是師生共同的愿望和責任。但是在初二學生身處的認知發展的階段,通常對抽象的知識的學習普遍感到困難,再加之大多數學生自學的能力和習慣尚在培養形成當中,這就要求教師在VB教學當中,應該力求在教學設計上適合學生年齡特點,做到深入淺出,化難為易,如此可以保護學生對VB的興趣,帶領他們一步一步進入到編程的快樂世界。
筆者在長期的教學過程中,探索、嘗試了一些做法,取得了一定的有益效果,這里與各位同仁分享,共同探討。
一、用自然語言描述問題解決的步驟
VB作為高級語言,雖然與我們日常使用的自然語言較為接近,但是它的語言規范畢竟與日常語言有著很大差別,而且VB使用的“自然語言”詞匯也是采用的英語,很多詞初二學生英語課上還沒有學過。在我們使用VB來解決一個問題時,適宜先用漢語把操作步驟描述清楚,并指導學生掌握。有的老師提議用流程圖來表示問題解決過程,這個要看學生的實際情況,由于閱讀流程圖本身需要有一定的基礎,所以有的時候效果不一定很好。
比如說,“判斷一個正整數是不是質數”這樣一個問題,筆者把解決方案描述如下:
輸入一個正整數,假定是X
把一個參數SF設定為0
從2開始到X-1,逐個試驗能不能整除X
如果能,把SF設定為1
最后看SF的值是多少,如果是0表示X是質數,如果是1表示X不是質數
在教學時,先不管VB語言,使學生理解這段文字描述的操作的含義,這是比較容易做到的。教師必須明確,這里的每一步操作,都是VB語言可以做到的,也就是說和一定的VB語句相對應的。等講清楚這段文字的含義后,再講解每一步操作所對應的VB語句。在教學中教師也要講明,之所以采用一些看起來比較“笨”的處理方式,是取決于計算機的快速運算的能力的。
教學實踐表明,經過這樣一種自然語言的過渡,學生的接受程度普遍有所提高,學習的自信也得到增強。當然,當學生有了一定的基礎后,用自然語言來表達問題解決過程就未必只是一種很好的方式,但是初學階段是可取的。
二、操作步驟的結構化
對知識的結構化有助于把握學習內容。比如上一節中,我們講到試驗正整數a能否整除x,我們可以把這步操作再細化為:
計算x/a
計算int(x/a)
如果x/a=int(x/a)那么a整除x,否則不能
如果我們在任何操作步驟描述中都采用最細化的方式,則會造成內容過多,難以把握脈絡,難以記憶和掌握。
在教學中,筆者經常會采用思維導圖來描述解決問題的思路,例如我要求學生做的一個練習,在窗體上有一個標簽,其上的文字會在窗口打開后自動循環放大和縮小。效果我先展示給學生看。然后和學生一起研究解決的步驟(篇幅關系,此處不展示導圖):
第一層:
1. 窗體上放置標簽控件,設置好內容、大小
2. 放置定時器控件
3. 編寫窗體事件代碼
4. 編寫定時器事件代碼
第二層:
1. 窗體事件要做的事:Load事件:打開定時器,設置定時器時隔
2. 定時器事件要做的事:
(1)如果文字的大小超過120則縮小,如果小于20再增大
(2)按照(1)決定的方式縮小或增大
……
三、先實例再概括
筆者在剛開始從事VB教學的時候,講到固定次數的循環語句For-Next,在學生還沒有接觸到幾個實例的情況下,就試圖向學生講解該語句的語法。結果學生聽得云里霧里的居多。后來,在教學中,筆者對于語法,主要不采用講解的方法,而是提供不同的實例讓學生練習,讓他們自己去發現,去“悟”。我覺得教師不應該有一種想法,就是每時每刻講授的內容都必須是嚴謹的,還是要以學生易接受作為前提。
對于For-Next語句,我一開始不采用
For 循環變量 = 初值 To 終值 [Step 步長]
[循環體]
Next [循環變量]
這樣的形式講給學生聽,而是只要求學生熟練掌握一個實例,比如:
For i=1 to 10
print i
Next i
甚至這里的變量i可以用別的變量當時也沒有提。有的學生不滿于老師不夠精確的講述,他們會自行閱讀教材,或者從網下查閱資料了解,這樣反而又促進了部分學生的求學熱情,培養了他們的良好的學習習慣。
當然,在學生接觸了一定量的固定次數的循環語句的實例后,我還是會在適當的時候把它的語法提一下,這個時候學生理解起來就是水到渠成了。
正如篇頭所提,筆者這樣的做法是考慮到初中生的認知特點,他們學習編程語言的方式和我們教師是有所不同的,我們教師在教學中應該特別注意到這方面的因素,根據學生的認知特點授課。
四、語句編號,用編號序列表達語句流程
流程控制是程序設計中的基礎知識,但初中學生剛接觸此項內容,頗難理解。關于如果表達語句執行流程,筆者也看到過不少方法。最原始的方法是用手或教鞭指著板書,有的是用VB調試中的逐句運行,筆者還曾經專門為此編制過一個課件,可靈活進行語句的前后單步執行。后來發現,其實把語句進行編號,用編號序列表達語句執行次序就可以取得良好的效果,已經過課堂教學試用的驗證。比如說,下面這樣的一段語句:
i = 1
Do While i <= 10
Debug.Print i
i = i + 1
Loop
它的執行次序是怎樣的呢?
我給它們編上號,像這樣
(1)i = 1
(2)Do While i <= 10
(3)Debug.Print i
(4)i = i + 1
(5)Loop
講解執行次序:
(1)(2)(3)(4)(5)(2)(3)(4)(5)(2)……
通過這樣的方式,學生對于循環語句的運行原理很容易就理解掌握了。
五、小結
以上是筆者在VB教學過程中采用的一些做法的介紹,其實也算不上是什么技巧,如果能起到一個拋磚引玉的作用,引起大家的對VB教學的進一步的關注和探討,則筆者將深感欣慰。
參考文獻:
(美)鮑里奇.有效教學方法[M].南京:江蘇教育出版社,2002.