新課程改革要求課程教學(xué)以學(xué)生為主,Visual Basic程序設(shè)計語言教學(xué)的主要目的是使學(xué)生能從簡單問題出發(fā),設(shè)計解決問題的算法,并使用VB程序設(shè)計語言編制程序?qū)崿F(xiàn)算法解決問題。這種編程解題方式與數(shù)學(xué)解題方式有相同點,更存在著許多區(qū)別。數(shù)學(xué)解題一般是人利用數(shù)學(xué)方法直接解決某個具體問題,而編程解題是人要將他(她)的數(shù)學(xué)解題方法以程序(算法)的方式告訴計算機,然后由計算機執(zhí)行程序來解決問題。這對初學(xué)VB編程語言的學(xué)生來說可是不容易的。那么如何做好這門課的教學(xué)呢?下面談?wù)勎业淖龇ā?br/>
一、明確本課程的學(xué)習用途,消除學(xué)生畏難情緒
很多學(xué)生認為:軟件都是專業(yè)人員設(shè)計好的,普通人不需要學(xué)習編程。于是,我在第一節(jié)課就向?qū)W生介紹了自己工作中遇到的問題,即如何批量打印畢業(yè)證,具體如下:
例1:每學(xué)年的六月份是學(xué)校教務(wù)處最忙的時候,因為學(xué)校要為每一位畢業(yè)的學(xué)生通過電腦打印畢業(yè)證。如果利用Word軟件為每個學(xué)生輸入相關(guān)信息再打印畢業(yè)證。一個年段600多人,每人打印一份畢業(yè)證,要3000分鐘(50小時),工作量可想而知,且容易出錯。如何解決這個問題呢?
接著引導(dǎo)學(xué)生分析,既然學(xué)生的基本信息都已存,教務(wù)處一般都用Excel來處理,那么,我們可以利用現(xiàn)成的學(xué)生基本信息,編寫一個程序來解決這一問題。最后我演示并簡要解析了一下我的程序。
通過以上例子,我讓學(xué)生知道盡管現(xiàn)在已經(jīng)有各種各樣的軟件在幫助我們,使我們的工作效率不斷提高,但仍然會遇到一些現(xiàn)成軟件無法做到的事情,需要我們在原來軟件的基礎(chǔ)上進行二次開發(fā)。因此編程解題是很有必要的。
為消除學(xué)生對學(xué)習這門課的畏難情緒,我通過實例,簡要介紹程序設(shè)計語言的發(fā)展,讓學(xué)生知道了幾種常見的程序設(shè)計語言(機器語言、匯編語言和高級語言),同時讓學(xué)生感受到高級語言(如將要學(xué)習的VB語言)比起低級語言更容易學(xué)習和掌握。
以上內(nèi)容的安排,不僅讓學(xué)生進一步復(fù)習了編程解題的過程,更重要的是,向?qū)W生傳遞了“編程有用、編程不難”這樣的信息,不只是專業(yè)人員才能學(xué)編程,增強了學(xué)生學(xué)習本門課程的興趣與信心。
二、算法設(shè)計是程序設(shè)計的核心,引導(dǎo)學(xué)生從簡單問題出發(fā)進行算法設(shè)計
眾所周知,算法設(shè)計是程序設(shè)計的核心。對于任何一個問題,我們要想編程解決它,首先要將自己如何解決這個問題的方法用一定方式描述出來(這就是算法設(shè)計),然后再根據(jù)算法編寫出程序。學(xué)生學(xué)習這門課的一個很突出的困難就是設(shè)計算法。因此,我著重通過一些簡單的例子讓學(xué)生懂得如何進行三種結(jié)構(gòu)的算法設(shè)計。
1.從案例入手,引導(dǎo)學(xué)生歸納出自己的算法
例2:時間轉(zhuǎn)換
輸入一個以秒為單位的時間t,將其轉(zhuǎn)換成“x小時y分鐘z秒”的形式。用自然語言描述算法。
這是一個小學(xué)數(shù)學(xué)問題。首先讓學(xué)生看清題目,抽象出“已知什么,求什么”這樣的模型,即已知t秒,求x、y、z。接著我們讓學(xué)生思考如何解這個問題。但我們很快會發(fā)現(xiàn),學(xué)生仍無從下手。于是我將問題改為“3800秒是幾小時幾分幾秒”,學(xué)生很快算出答案“1小時3分20秒”。他們習慣于解決一個具體的數(shù)學(xué)問題,而不習慣解決一個帶變量的問題。這恰恰是數(shù)學(xué)解題與編程解題的一個區(qū)別。然后我引導(dǎo)學(xué)生進行歸納,將3800這個數(shù)換成t,再讓他們嘗試求法。經(jīng)過幾次修改,我們最后得到正確的算法。
通過以上例子,讓學(xué)生明白什么是算法設(shè)計,并且要想設(shè)計出算法,經(jīng)常可以從實例入手,逐步地把人的解題方法用盡量精確的方法描述出來,就能形成算法。同時為了能較準確地描述出算法,我們要像數(shù)學(xué)一樣適當使用記號(也就是后面學(xué)習中的變量)。
2.從與學(xué)生學(xué)習與生活緊密相連的問題出發(fā),進行算法設(shè)計練習
教學(xué)中注意選擇學(xué)生學(xué)習與生活中的實例作為學(xué)習活動的例子,有利于學(xué)生順利進入課程的學(xué)習。如學(xué)生學(xué)籍管理、VCD播放器以及各學(xué)科的學(xué)習問題,這些都與學(xué)生的學(xué)習與生活緊密相連。
在講解選擇結(jié)構(gòu)問題的算法設(shè)計時,我們從學(xué)生初中階段就知道的“求一元二次方程實根”的問題出發(fā),進行算法設(shè)計的訓(xùn)練。先讓學(xué)生自己來描述一下“求實根”問題的算法,由于學(xué)生對問題比較熟悉,同時有例2中的順序結(jié)構(gòu)算法設(shè)計的基礎(chǔ)和教師點撥,學(xué)生很快得出如下的算法描述:
?。?)