高職程序設(shè)計(jì)課程課程枯燥無(wú)味,學(xué)生積極性不高,并且,對(duì)于課本上的例題容易理解,但當(dāng)編程時(shí)往往感到無(wú)從下手,更談不上舉一反三。對(duì)此,筆者在VB程序設(shè)計(jì)的教學(xué)過(guò)程中,把多種教學(xué)方法合理地結(jié)合起來(lái),按照學(xué)生的認(rèn)知規(guī)律組織教學(xué),并根據(jù)教學(xué)過(guò)程的實(shí)際情況,靈活地調(diào)整,獲得了滿意的教學(xué)效果。筆者主要從以下幾個(gè)方面進(jìn)行了探索。
一、采用實(shí)例教學(xué)法,增進(jìn)教學(xué)的直觀性和調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性
多數(shù)VB程序設(shè)計(jì)教材都是先介紹對(duì)象、對(duì)象的屬性、方法和事件的概念及VB語(yǔ)言基礎(chǔ)等比較抽象難懂的概念,然后才介紹程序的建立和調(diào)試運(yùn)行。從學(xué)生的認(rèn)知規(guī)律角度考慮,學(xué)生在毫無(wú)知識(shí)背景的前提下,要完全理解這些概念比較困難,同時(shí)也容易挫傷學(xué)生學(xué)習(xí)編程的積極性。因此,筆者打破教材原有的以知識(shí)的邏輯結(jié)構(gòu)體系為順序組織課堂教學(xué)的方式,改用以經(jīng)典實(shí)例講解為教學(xué)主線。通過(guò)讓學(xué)生觀看、模仿教師所演示的教學(xué)實(shí)例這一教學(xué)形式,讓學(xué)生在輕松愉快的氣氛中接受新知識(shí),在實(shí)際操作中,筆者設(shè)計(jì)了一個(gè)“任意輸入長(zhǎng)方形的長(zhǎng)和寬求其面積”的直觀程序?qū)嵗糜?jì)算機(jī)房中的多媒體教師機(jī)和投影儀,一邊講解一邊演示并同時(shí)讓學(xué)生一起做。
第一,在當(dāng)前窗體內(nèi)分別添加三個(gè)標(biāo)簽、三個(gè)文本框和三個(gè)命令按鈕控件。第二,設(shè)置各控件屬性分別為:三個(gè)標(biāo)簽的標(biāo)題依次為“長(zhǎng)、寬、面積”;三個(gè)文本框的本文屬性分別設(shè)置為空白;三個(gè)命令按鈕標(biāo)題屬性分別設(shè)置為“計(jì)算、清除、退出”。第三,分別在三個(gè)命令按鈕的單擊事件過(guò)程中,輸入相應(yīng)的程序代碼并講解相應(yīng)功能(代碼略)。第四,按F5鍵運(yùn)行程序。
在上述的操作過(guò)程中,讓學(xué)生思考并找出本例中各個(gè)對(duì)象的名稱、不同的屬性、方法和事件過(guò)程,再適當(dāng)加以歸納并理解“對(duì)象、屬性、方法、事件”的概念。在此基礎(chǔ)上,引導(dǎo)學(xué)生總結(jié)出創(chuàng)建VB應(yīng)用程序的4個(gè)步驟為:設(shè)計(jì)界面、設(shè)置屬性、編寫(xiě)代碼、調(diào)試運(yùn)行。至此,幾個(gè)難以理解的抽象概念問(wèn)題便迎刃而解。
實(shí)例教學(xué)法打破了以概念知識(shí)為中心的傳統(tǒng)教學(xué)模式,而是以精選出的程序?qū)嵗秊橹行模褜W(xué)習(xí)的重點(diǎn)放在具體實(shí)例的講述上,把要學(xué)習(xí)的程序設(shè)計(jì)語(yǔ)法知識(shí)和概念融入到具體實(shí)例中來(lái)講解。整個(gè)教學(xué)過(guò)程中強(qiáng)調(diào)學(xué)以致用,在應(yīng)用中學(xué)習(xí),從而避免了枯燥、繁雜的理論說(shuō)教,不僅能調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性,而且對(duì)提高學(xué)生綜合分析和解決實(shí)際問(wèn)題的能力也大有幫助。
二、采用問(wèn)題驅(qū)動(dòng)法,激發(fā)學(xué)生的學(xué)習(xí)主動(dòng)性和加深對(duì)一些概念的理解
在VB程序設(shè)計(jì)教學(xué)過(guò)程中,有些編程知識(shí)如果只通過(guò)教師講述,學(xué)生雖然可以接受,但在理解深度上往往難以達(dá)到令人滿意的效果,如果能設(shè)計(jì)出一系列問(wèn)題,讓學(xué)生在實(shí)踐和解決問(wèn)題的過(guò)程中自己去探究和體驗(yàn),情況將完全是另一個(gè)樣子。例如,VB中“不同的數(shù)據(jù)類型對(duì)數(shù)據(jù)取值范圍的影響”,這是一個(gè)比較抽象令學(xué)生難懂的問(wèn)題,為了讓學(xué)生切身感受整型變量、單精度型變量、雙精度型變量所能保存數(shù)據(jù)范圍的不同,筆者設(shè)計(jì)了如下的實(shí)驗(yàn)過(guò)程:
首先,讓學(xué)生在窗體的單擊事件過(guò)程中編寫(xiě)一段程序求5的階乘。學(xué)生很快編寫(xiě)好如下程序:Dim I As Integer,n As Integer:Dim X As Integer: X=1:n=5:for I=1 to n:X=X*I:Next I:Print “X=”;X,按F5鍵調(diào)試運(yùn)行,得出的階乘的正確結(jié)果。其次,讓學(xué)生把程序稍微修改一下,求10的階乘,這時(shí)很多學(xué)生迅速把程序中的語(yǔ)句n=5改為n=10,按F5鍵運(yùn)行之后,發(fā)現(xiàn)屏幕上并沒(méi)有輸出預(yù)期的正確結(jié)果,而是顯示一個(gè)“數(shù)據(jù)溢出”的錯(cuò)誤提示對(duì)話框,這時(shí)學(xué)生紛紛提問(wèn)。筆者適時(shí)地進(jìn)行點(diǎn)撥,提示學(xué)生將變量X的數(shù)據(jù)類型由整型修改為單精度實(shí)型。程序修改后運(yùn)行,計(jì)算機(jī)則給出了正確結(jié)果。此時(shí),學(xué)生已基本體驗(yàn)到了不同數(shù)據(jù)類型對(duì)數(shù)據(jù)取值范圍的影響。
在本例中,程序整體變化不大,但通過(guò)如此一個(gè)操作過(guò)程,學(xué)生對(duì)整型、單精度型和雙精度型數(shù)據(jù)之間的區(qū)別一目了然。另外,由于整個(gè)過(guò)程都要求學(xué)生自己動(dòng)手動(dòng)腦設(shè)計(jì),他們?cè)诓僮鬟^(guò)程中探究和解決問(wèn)題的積極性和主動(dòng)性得到了充分調(diào)動(dòng)。
三、采用條件遷移法,拓展學(xué)生的編程思路及提高學(xué)生綜合編程能力
條件遷移法是指在教學(xué)過(guò)程中,注意通過(guò)在書(shū)本原有程序的基礎(chǔ)上逐漸改變和增加條件的方法來(lái)提高學(xué)生對(duì)程序的分析理解和舉一反三的綜合能力。
例如,學(xué)生在學(xué)習(xí)For……Next循環(huán)語(yǔ)句時(shí),書(shū)本內(nèi)給出了一段求1到100之間所有整數(shù)和的程序。代碼如下:Dim S as Integer: Dim I as Integer:S=0: For I=1 to 100 Step 1: S=S+I:Next I:Print “S=”;S ,這段程序在學(xué)生弄懂FOR……NEXT循環(huán)語(yǔ)句之后,理解起來(lái)并不困難。為了提高學(xué)生的綜合編程能力,筆者給出以下幾個(gè)問(wèn)題,要求學(xué)生編程:求1到100之間所有偶數(shù)的和,要求步長(zhǎng)為2;求1到100之間所有整數(shù)的倒數(shù)和;求1到100之間所有奇數(shù)的倒數(shù)和;求1到100之間所有奇數(shù)的倒數(shù)和。其中,奇數(shù)項(xiàng)為正值、偶數(shù)項(xiàng)為負(fù)值。
這里第⑴小題和原程序相比難度不大,只要將循環(huán)控制變量I的初始值由1改為2,步長(zhǎng)為Step 2即可,學(xué)生通過(guò)模仿就可以完成。第⑵小題增加了難度,在編程過(guò)程中,需要做兩點(diǎn)變化:一要將變量S定義為雙精度類型,即Dim S As Double,二要修改循環(huán)體,將循環(huán)體語(yǔ)句變?yōu)镾=S+1/I。第⑶小題在第⑵小題的基礎(chǔ)上只需將步長(zhǎng)改為Step 2即可。第⑷小題在第⑶小題的基礎(chǔ)上,需再引入一個(gè)新的整型變量T,用以表示正負(fù)號(hào)的變化,并在循環(huán)體中變號(hào)T=-T,第⑷小題代碼如下:Dim S as Double: Dim I as Integer,T as Integer:S=0:T=-1: For I=1 to 100 Step 2:T=-T: S=S+T/I:Next I:Print “S=”;S ,編程時(shí)的這些變化,加深了學(xué)生對(duì)循環(huán)語(yǔ)句的深刻理解并能創(chuàng)造性地予以拓展運(yùn)用,通過(guò)練習(xí),學(xué)生充分體會(huì)到程序設(shè)計(jì)是有規(guī)律的、講究算法的,一種編程算法往往可以解決一系列類似的編程問(wèn)題。因此,可以得出結(jié)論:凡是編程求若干項(xiàng)的和,都可以歸納為使用循環(huán)語(yǔ)句結(jié)合求和通式S=S+T來(lái)實(shí)現(xiàn)。至此,通過(guò)強(qiáng)化訓(xùn)練,學(xué)生的編程思維得到拓展,綜合編程能力得到明顯提高。
四、采用師生換位的教學(xué)方法,加深學(xué)習(xí)印象,提高學(xué)習(xí)的興奮性
師生換位法是指在教學(xué)過(guò)程中,請(qǐng)部分學(xué)生來(lái)?yè)?dān)任教師角色講解某些編程問(wèn)題。這樣,既可以鍛煉學(xué)生的編程思維及表達(dá)能力,又可以加深學(xué)生的學(xué)習(xí)印象。
例如,在定時(shí)器控件內(nèi)容的教學(xué)過(guò)程中,有一個(gè)“用定時(shí)器控件制作滾動(dòng)字幕”編程實(shí)例,其中的“字幕”可以有多種滾動(dòng)方向:通過(guò)編程可以使其沿直線水平向左、向右、垂直向上、向下等多個(gè)方向的滾動(dòng)。教師先講解水平從右向左滾動(dòng)的編程及操作,然后請(qǐng)學(xué)生按幾個(gè)組次分別擔(dān)當(dāng)教師的角色,講解并演示使字幕從左向右方向滾動(dòng)、從上向下、從下向上滾動(dòng)的編程及上機(jī)實(shí)現(xiàn)過(guò)程,遇到問(wèn)題時(shí),同一組學(xué)生共同商量解決,若本組學(xué)生不能解決則換成另外一組繼續(xù)完成。這樣,學(xué)生們都在積極地思考并高度關(guān)注同學(xué)們的講課內(nèi)容,調(diào)動(dòng)了學(xué)生學(xué)習(xí)的興奮性,使課堂氣氛既活躍又有序。對(duì)于學(xué)生們來(lái)說(shuō)這是一個(gè)很好的鍛煉機(jī)會(huì),他們將終生難忘。
(作者單位:廊坊職業(yè)技術(shù)學(xué)院計(jì)算機(jī)科學(xué)與工程系)