李慶霞
[摘? ? ? ? ? ?要]? 教學(xué)方法是教學(xué)過程重要的組成部分之一,是教師和學(xué)生實現(xiàn)教學(xué)目的、完成教學(xué)任務(wù)的途徑和程序,是師生之間相互有機(jī)聯(lián)系的活動方式。教學(xué)方法包括教的方法和學(xué)的方法兩個方面,但又不是二者的簡單相加,而是彼此結(jié)合、彼此適應(yīng)的。教學(xué)方法決定著教與學(xué)的效果,對提高教學(xué)質(zhì)量有著重要的理論和實踐。在Visual Basic程序設(shè)計教學(xué)中進(jìn)行了教學(xué)方法的探索,使原本枯燥乏味的程序設(shè)計語言教學(xué)變得直觀、形象,激發(fā)了學(xué)生的興趣,取得了較好的教學(xué)效果。
[關(guān)? ? 鍵? ?詞]? 程序設(shè)計;教學(xué);啟發(fā);算法;編程
[中圖分類號]? G712? ? ? ? ? ? ? ? ?[文獻(xiàn)標(biāo)志碼]? A? ? ? ? ? ? ? [文章編號]? 2096-0603(2020)25-0100-02
VB程序設(shè)計教學(xué)的關(guān)鍵是通過計算機(jī)教學(xué),進(jìn)而達(dá)到提升學(xué)生邏輯思維能力的目的,同時強(qiáng)化學(xué)生對程序的處理能力。但從教學(xué)經(jīng)驗來看,大多數(shù)學(xué)生在之前并未接觸過程序設(shè)計這門課程,導(dǎo)致學(xué)生在閱讀程序方面存在困難,且對編制程序毫無頭緒,長期以往,學(xué)生主觀上認(rèn)為VB程序設(shè)計這門課程枯燥無趣。而課堂教學(xué)這種教學(xué)方式且易需要教師根據(jù)學(xué)生接受能力以及課程特點構(gòu)建一套適應(yīng)課堂教學(xué),且易激發(fā)學(xué)生積極性的方法。VB程序設(shè)計這門課程在教學(xué)中注重對學(xué)生發(fā)現(xiàn)問題、分析問題以及解決問題能力的培養(yǎng),我認(rèn)為教學(xué)方法會直接影響教學(xué)效果,所以在多年的教學(xué)實踐中,談?wù)勎业腣B程序設(shè)計教學(xué)方法的妙用。
一、讀、說、寫教學(xué)
培養(yǎng)學(xué)生程序設(shè)計的思維是VB學(xué)科中最重要的一環(huán),它體現(xiàn)了一個學(xué)生的分析問題、解決問題的綜合能力。由于絕大多數(shù)學(xué)生缺乏相應(yīng)的知識背景,程序代碼設(shè)計有很大的困難。針對客觀實際,我在教學(xué)中采取了以下幾個措施。
(一)讀程序,理思路
程序設(shè)計教學(xué)要學(xué)會運用閱讀理解法。閱讀能力的培養(yǎng)可以潛移默化地提升學(xué)生的獨立思考能力與質(zhì)疑能力,使學(xué)生自身形成良好的管控能力,即學(xué)生自己能夠自主地按照實際情況調(diào)整學(xué)習(xí)進(jìn)度。在課堂之外,教師引導(dǎo)學(xué)生在課下大量地閱讀程序,并定期組織學(xué)生交流發(fā)言,讓學(xué)生談通過閱讀別人程序得到的編程算法與設(shè)計思想。通過課下引領(lǐng)學(xué)生閱讀發(fā)現(xiàn),讓學(xué)生大量地閱讀程序是一種高效的學(xué)習(xí)方法。結(jié)合在課堂上學(xué)生的實踐,指出他們所設(shè)計程序中的錯誤與問題,課上與課下的聯(lián)動,極大地提高了學(xué)生學(xué)習(xí)程序設(shè)計的積極性。
(二)說程序,明算法
說程序是程序教學(xué)中不可缺少的一環(huán),課堂上我采用同桌互說、小組討論、師生共說等形式,主要引導(dǎo)學(xué)生說算法,算法是程序設(shè)計的靈魂,算法就是指解決問題的方法和思路,算法的思路清晰才是最主要的,所以我重點指導(dǎo)學(xué)生說程序算法,并及時啟發(fā)和點撥,最后簡要做總結(jié)。例如:設(shè)計工程,已知圓的半徑r,求圓面積S。我要求學(xué)生說出自己的算法,半徑怎么輸入,用什么控件輸入,圓面積如何輸出?首先是學(xué)生自述環(huán)節(jié),學(xué)生1說:“半徑用文本框輸入,圓面積從窗體輸出”;學(xué)生2說:“半徑使用輸入框從鍵盤輸入,圓面積從標(biāo)簽輸出”;學(xué)生3說:“半徑從文本框1輸入,圓面積從文本框2輸出”;學(xué)生4說:“圓面積還可以從消息框輸出”等等,再讓學(xué)生討論、互述等環(huán)節(jié),使學(xué)生頭腦中的算法框架逐步完善、清晰、具體化,這樣編程問題也就能順利解決了。
(三)寫程序,提信心
對學(xué)生程序設(shè)計能力培養(yǎng)的目的是為了能夠確保學(xué)生通過一系列的學(xué)習(xí)可以獨立地完成編寫程序的任務(wù),而這也可以說是整個教學(xué)任務(wù)中最難以完成的內(nèi)容。為了提升學(xué)生獨立編寫程序的信息,第一步我挑選典型程序,給學(xué)生來閱讀理解,要求學(xué)生認(rèn)真閱讀程序,然后詳細(xì)分析其算法。第二步則要求學(xué)生自己基于自身學(xué)習(xí)情況與理解能力將上述程序進(jìn)行注釋,并給出程序的運行結(jié)果。綜合經(jīng)驗來看,學(xué)生如果理解了該程序,則意味著其能夠獨立完成程序的編程,所以說理解程序是獨立編程的基礎(chǔ)性條件。第三步是通過設(shè)置程序編程填空題,要求學(xué)生根據(jù)程序要求及關(guān)鍵詞完善程序,也可讓學(xué)生討論著寫出程序中缺少的語句,要求其他學(xué)生修改。第四步是給定一些條件,讓學(xué)生根據(jù)要求去實現(xiàn)程序的功能。通過上述的培訓(xùn),大多數(shù)學(xué)生已經(jīng)掌握了簡單程序的編程,此時,可以通過要求學(xué)生編寫簡單的程序來培養(yǎng)他們的信心。
“紙上得來終覺淺,絕知此事要躬行?!睂嵺`出真知,只有親自動手、親自操作、才能真正體會到編程的樂趣。每當(dāng)學(xué)生完成一個編程時成就感油然而生,我自己也能夠獲得滿足感。
二、延伸拓展教學(xué)
延伸教學(xué)是指針對一個方面的問題展開教學(xué),引領(lǐng)學(xué)生基于該問題進(jìn)行多層次、多角度的延伸。簡單而言就是由一個簡單的問題,引領(lǐng)學(xué)生思考更加復(fù)雜的問題,培養(yǎng)學(xué)生的探索精神,進(jìn)而提升學(xué)生編程的思考性。
例如:填充程序的框架,輸出不同的圖形。
源程序如下:
For i =? ①
②
For j = 1 To ③
Print “*”;
Next j
Next i
最初圖形1:①處為1 To 5,②處空白,③處為I,
延伸到圖形2,對照圖形1,發(fā)現(xiàn)兩圖外循環(huán)一樣,內(nèi)循環(huán)因每行的個數(shù)也一樣,唯一不同的是圖形輸出起始位置不同,所以引導(dǎo)學(xué)生得出結(jié)論:在源程序中②處改為Print Tab(6 - i),其他不變。
延伸到圖形3,此時學(xué)生經(jīng)過前兩步的回答,自信心得到加強(qiáng),有學(xué)生主動舉手回答,只用將程序中的①處改為5 To 1 Step -1,其他不變。
延伸到圖形4,學(xué)生首先想到這也是一個遞減程序,源程序中的①處同程序3中的①、②處怎么修改呢?學(xué)生又進(jìn)入思考、討論狀態(tài)。最終大多數(shù)學(xué)生形成一致意見,即②處同程序2中的②、③處不變。
延伸到圖形5,提出問題:同學(xué)們是否知道如何變化?此時,大多數(shù)學(xué)生是比較茫然的,不知道怎樣處理。為培養(yǎng)學(xué)生獨立思考能力,此時我并不急于說出答案,而是引導(dǎo)學(xué)生:在程序1基礎(chǔ)上,①處不變,怎樣輸出圖形?在程序2基礎(chǔ)上,①、②處不變,怎樣輸出圖形?大部分學(xué)生最后將目光停留在③處,我引導(dǎo)學(xué)生找規(guī)律,第1行1個,第2行3個,第3行5個,……第5行9個,很快學(xué)生發(fā)現(xiàn)個數(shù)是行數(shù)的2倍少1個,這樣答案不言而喻,學(xué)生試著將③處改為2*i-1,運行程序,恰好是圖形5,這樣學(xué)生思維準(zhǔn)確、活躍,很快編寫出5種圖形的不同程序段代碼。
通過延伸教學(xué)法,學(xué)生能夠熟練地掌握不同圖形的程序架構(gòu),并可以獨立地掌握如何利用一個源程序作出所需要的改變,進(jìn)而輸出不同的圖形??梢哉f,延伸教學(xué)法對提升學(xué)生的邏輯性具有重要意義,加之教師的有意引導(dǎo),學(xué)生對編程的探索心得到提升,極大地提升了學(xué)生的積極性。
三、一題多解教學(xué)
我信奉已故的北京市第二十二中學(xué)的孫維剛老師對中學(xué)數(shù)學(xué)解題的總結(jié):一題多解,多題一解,多解歸一,萬變不離其宗??偨Y(jié)、反思,再總結(jié)、再反思,從方法層面提高到思想層面進(jìn)行升華,學(xué)習(xí)才有興趣,也會變得“好玩”而“不累”。所以自己在程序教學(xué)中不僅利用舉一反三的方式,鼓勵學(xué)生從不同的角度對問題進(jìn)行解析,并找出多種解題思路。
例如:編程求1+2+3+…+100的值。
方法一:利用For-Next循環(huán)語句。
S=0
For I=1 To 100
S=S+I
Next I
Print “S=”;S
方法二:利用Do-Loop循環(huán)語句。
S=0:I=1
Do while i<=100
S = S + I
I = I + 1
Loop
Print “S=”; S
方法三:利用While-Wend循環(huán)語句。
S = 0: I = 1
While I <= 100
S = S + I
I = I + 1
Wend
Print “S=”; S
學(xué)生上機(jī)調(diào)試運行不同的程序,卻能得出相同的結(jié)果,可見同一個題可以有多種解法,其中方法2采用舉一反三的方式還可變換出另外3種不同的結(jié)構(gòu):當(dāng)型的后測試結(jié)構(gòu);直到型的前測試結(jié)構(gòu);直到型的后測試結(jié)構(gòu)。學(xué)生學(xué)會觸類旁通,學(xué)會思考、質(zhì)疑,進(jìn)一步領(lǐng)會和鞏固所學(xué)知識,經(jīng)過長期的培養(yǎng)使學(xué)生能夠獨立運用所學(xué)知識,獨立完成編程工作。另外,一題多解法的訓(xùn)練對提升學(xué)生各類編程語句的不同用法具有積極作用。
所以在程序教學(xué)中我感到教學(xué)方法很重要,需要格外注意培養(yǎng)學(xué)生動腦思考、敢于質(zhì)疑、勇于探索實踐操作、解決實際問題的能力。總之,只要教學(xué)得法,教師在完成教學(xué)目標(biāo)、教學(xué)任務(wù)的同時,保證良好教學(xué)效果的前提下,可以基于學(xué)生的知識結(jié)構(gòu)特點安排各種形式的教學(xué)活動。簡單而言,只要是有助于學(xué)生學(xué)習(xí)能力提升的教學(xué)方法,就表明該種方法具有較強(qiáng)的實用性。
參考文獻(xiàn):
[1]周元哲.Visual Basic程序設(shè)計語言[M].北京:清華大學(xué)出版社,2011.
[2]丁愛萍.Visual Basic程序設(shè)計[M].北京:電子工業(yè)出版社,2015.
[3]黃洪藝.Visual Basic程序設(shè)計[M].廈門:廈門大學(xué)出版社,2018.
[4]海濱,關(guān)媛.Visual Basic程序設(shè)計教程[M].南京:南京大學(xué)出版社,2014.
[5]趙雙萍,周耿烈.Visual Basic程序設(shè)計實訓(xùn)與習(xí)題指導(dǎo)[M].西安:西安電子科技大學(xué)出版社,2011.
編輯 陳鮮艷