林溫陽(yáng)
Visual Basic(以下簡(jiǎn)稱(chēng)VB)語(yǔ)言程序設(shè)計(jì)教學(xué)概念多、算法繁、涉及面廣,特別是循環(huán)結(jié)構(gòu)語(yǔ)句算法部分,傳統(tǒng)課堂枯燥乏味的語(yǔ)言文字講授和PPT演示方法,很難直觀(guān)地再現(xiàn)其動(dòng)態(tài)性與邏輯性,讓人感覺(jué)抽象不易理解,這給初學(xué)程序設(shè)計(jì)的高中生帶來(lái)了很大障礙。筆者在教學(xué)實(shí)踐中嘗試采用畫(huà)流程圖(或NS圖)、動(dòng)畫(huà)模擬、繪制二維解析圖、構(gòu)建思維模型等可視化教學(xué)策略,讓抽象概念、程序執(zhí)行過(guò)程和算法設(shè)計(jì)可視化,較好地培養(yǎng)了學(xué)生的計(jì)算思維能力。
● 繪制VB循環(huán)結(jié)構(gòu)流程圖(或NS圖)
VB循環(huán)結(jié)構(gòu)分計(jì)數(shù)型和條件型兩類(lèi),筆者繪制流程圖(或NS圖),以表格形式綜合類(lèi)比For…Next、Do…Loop、While…Wend三種循環(huán)語(yǔ)句形式的基本特征和適用范圍,運(yùn)用奧蘇貝爾提出的先行組織者教學(xué)策略,讓學(xué)生在彈性課堂預(yù)設(shè)的情境中形成一個(gè)圖式化思維表象,提供富有意義的學(xué)習(xí)材料便于學(xué)習(xí)者利用已有認(rèn)知圖式同化新知。[1]
1.For…Next語(yǔ)句
“For循環(huán)”屬于計(jì)數(shù)型循環(huán),通過(guò)在已知循環(huán)次數(shù)前提下執(zhí)行循環(huán)體,循環(huán)體的重復(fù)執(zhí)行次數(shù)是由循環(huán)控制變量的初值、終值和步長(zhǎng)值(可以是正值或負(fù)值)共同決定的。For循環(huán)語(yǔ)句格式、流程圖、NS圖如表1所示。
2.Do…Loop語(yǔ)句
“Do循環(huán)”屬于條件型循環(huán),一般適用于解決無(wú)法預(yù)知循環(huán)次數(shù)的問(wèn)題,其構(gòu)造形式相對(duì)靈活。既有指定循環(huán)進(jìn)入條件的“While當(dāng)型循環(huán)”,又有指定循環(huán)終止條件的“Until直到型循環(huán)”。按照判斷循環(huán)條件的順序不同,又有前測(cè)型循環(huán)結(jié)構(gòu)和后測(cè)型循環(huán)結(jié)構(gòu)之分。前者是先判定條件,后者是先執(zhí)行循環(huán)體語(yǔ)句,或循環(huán)一次后再來(lái)判定條件,根據(jù)條件決定是否繼續(xù)執(zhí)行循環(huán)體。Do循環(huán)語(yǔ)句格式、流程圖、NS圖如上頁(yè)表2所示。
3.While…Wend語(yǔ)句
“While循環(huán)”屬于條件型循環(huán),若條件判斷滿(mǎn)足時(shí)執(zhí)行循環(huán)體,否則跳出循環(huán)體直接執(zhí)行Wend之后的語(yǔ)句,與前述Do While…Loop語(yǔ)句相似。While循環(huán)語(yǔ)句因?yàn)闆](méi)有自動(dòng)修改循環(huán)條件的功能,在其循環(huán)體內(nèi)通常必須有改變循環(huán)控制條件的語(yǔ)句,否則會(huì)致使循環(huán)無(wú)法正常結(jié)束,從而陷入“死循環(huán)”。While循環(huán)語(yǔ)句格式、流程圖、NS圖如表3所示。
● 動(dòng)畫(huà)模擬VB循環(huán)程序執(zhí)行
循環(huán)語(yǔ)句既是程序設(shè)計(jì)學(xué)習(xí)的一大難點(diǎn),同時(shí)也是其魅力所在。借助“程序框圖”學(xué)生掌握了循環(huán)結(jié)構(gòu)的基本概念,但對(duì)循環(huán)程序執(zhí)行過(guò)程的理解,剛開(kāi)始時(shí)往往會(huì)迷失在一大段令人費(fèi)解的程序代碼中,尤其是面對(duì)像嵌套、遞歸和迭代等復(fù)雜的循環(huán)結(jié)構(gòu)問(wèn)題(如字符圖形打印、冒泡排序、漢諾塔問(wèn)題等體現(xiàn)循環(huán)思想的經(jīng)典題型),常常因缺乏相關(guān)生活經(jīng)驗(yàn),又無(wú)法進(jìn)行現(xiàn)場(chǎng)觀(guān)察體驗(yàn),難以發(fā)揮想象力和邏輯推理能力,致使無(wú)法有效地將新知與已有認(rèn)知結(jié)構(gòu)中的舊知建立起實(shí)質(zhì)性聯(lián)系,從而給學(xué)習(xí)帶來(lái)很大障礙。[2]即便教材中有大篇幅的文字描述和靜態(tài)圖解,大多數(shù)學(xué)生看過(guò)之后,還是懵懵懂懂,無(wú)法正確判讀VB程序的源代碼。
澳大利亞認(rèn)知心理學(xué)家約翰·斯威勒(J.Sweller)提出的認(rèn)知負(fù)荷理論認(rèn)為,當(dāng)現(xiàn)有學(xué)習(xí)材料的復(fù)雜性超過(guò)學(xué)習(xí)者的前期知識(shí)水平和認(rèn)知承載能力時(shí),學(xué)習(xí)就會(huì)陷入困境。此時(shí),需要采用越級(jí)捷徑式直覺(jué)思維方式表征知識(shí)單元,引導(dǎo)和幫助學(xué)生發(fā)展認(rèn)知。筆者通過(guò)動(dòng)畫(huà)視頻模擬及交互式多媒體軟件進(jìn)行直觀(guān)具象的屏幕演示與速度可控的互動(dòng)模擬操作,從而成功創(chuàng)設(shè)仿真體驗(yàn)式教學(xué)情境,這樣學(xué)生可以清楚地“看見(jiàn)”程序的復(fù)雜算法結(jié)構(gòu)和每一步執(zhí)行過(guò)程,幫助他們從繁瑣的循環(huán)步驟中解放出來(lái),集中精力挖掘隱含的循環(huán)算法模型,加深對(duì)循環(huán)問(wèn)題的本質(zhì)理解。
● 繪制二維解析表跟蹤程序數(shù)據(jù)
在VB程序設(shè)計(jì)循環(huán)結(jié)構(gòu)教學(xué)中,筆者通過(guò)繪制二維解析圖進(jìn)行數(shù)據(jù)變換,將VB源代碼映射為數(shù)據(jù)表,跟蹤程序數(shù)據(jù)與指令代碼的動(dòng)態(tài)執(zhí)行過(guò)程,校驗(yàn)VB循環(huán)控制變量值的起止閾值與增量變化,實(shí)現(xiàn)了程序動(dòng)態(tài)執(zhí)行過(guò)程的可視化。這是讀懂VB程序源代碼的基本方法,也是快速求解VB循環(huán)應(yīng)用問(wèn)題的基本技巧。
題例:程序運(yùn)行顯示結(jié)果是
。
Private Sub Form_Click()
Dim i as Long
S=1
For i=5 to 8
S=S+1
Next i
Print S
End Sub
題例解析:提取循環(huán)控制變量i和因變量S,繪制四象限二維解析表(如表4),按①→②→③→……→⑨順序依次填寫(xiě),根據(jù)二維解析表可以直觀(guān)地看出程序運(yùn)行結(jié)果為5。結(jié)合VB單步調(diào)試功能,在圖形用戶(hù)界面中輸入響應(yīng)事件的參數(shù),亦可清晰地反映程序執(zhí)行流程和數(shù)據(jù)更新變換。[3]
美國(guó)著名學(xué)者愛(ài)德加·戴爾(Edgar Dale)提出的“學(xué)習(xí)金字塔”理論指出,學(xué)習(xí)者通過(guò)自己動(dòng)手和同伴互助方式,主動(dòng)參與、積極有效地發(fā)現(xiàn)學(xué)習(xí),在定向模仿和練習(xí)操作中將內(nèi)潛性、觀(guān)念性的心智技能外顯化,有助于他們由具體到抽象逐步地建立穩(wěn)定清晰的視動(dòng)覺(jué)?,F(xiàn)代心理學(xué)研究也表明知識(shí)獲取是一個(gè)層級(jí)式視知覺(jué)加工分析的過(guò)程,隨著層級(jí)的提升它變得越來(lái)越具體和精確。[4]為了進(jìn)一步強(qiáng)化和鞏固學(xué)生對(duì)循環(huán)結(jié)構(gòu)語(yǔ)句的理解,筆者在此安排了兩個(gè)變式問(wèn)題綜合訓(xùn)練,讓學(xué)生在多維進(jìn)階任務(wù)及題型變式訓(xùn)練中類(lèi)比分析、逐層推進(jìn),學(xué)習(xí)繪制二維解析表,加深對(duì)循環(huán)體執(zhí)行過(guò)程和循環(huán)變量的理解,從而準(zhǔn)確得出循環(huán)程序運(yùn)行結(jié)果。
變式一:程序運(yùn)行輸入274,顯示結(jié)果是__________。
Private Sub Form_Click()
Dim i as Long
i=inputbox("請(qǐng)輸入一個(gè)正整數(shù)")
While i<>0
j=i mod 10
t=t+j
i=i\10
Wend
Print t
End Sub
題例解析:在單重循環(huán)中提取循環(huán)控制變量i和因變量j、t,使用四象限二維解析表(如表5),得出運(yùn)行結(jié)果為13。
變式二:程序運(yùn)行顯示結(jié)果是
。
Private Sub Form_Click()
Dim i,j,a as Long
for i= 1 to 3
for j= 1 to i
a=a+1
next j
next i
Print i,j,a
End Sub
題例解析:在多重嵌套循環(huán)中提取循環(huán)控制變量i、j和因變量a,內(nèi)循環(huán)和外循環(huán)層次要分清,確保不交叉。使用四象限二維解析表(如表6),得出運(yùn)行結(jié)果為4、4、6。
● 借助直觀(guān)思維模型構(gòu)建知識(shí)圖譜
思維導(dǎo)圖作為一款促進(jìn)思維激發(fā)和輔助思維整理的非線(xiàn)性思維視覺(jué)化表征工具,它能為學(xué)習(xí)者將學(xué)習(xí)過(guò)程中原本不可視的思維方法和思考路徑圖式化地清晰呈現(xiàn)出來(lái),從而有效幫助學(xué)習(xí)者建構(gòu)主題知識(shí)網(wǎng)絡(luò)圖譜,理解知識(shí)點(diǎn)間的內(nèi)在聯(lián)系。[5]筆者使用如MindManager、FreeMind和Inspiration等思維導(dǎo)圖工具軟件可以輕松專(zhuān)業(yè)地繪制樹(shù)狀圖、魚(yú)骨圖、路徑圖和時(shí)間線(xiàn)等主題圖式,呈現(xiàn)學(xué)習(xí)認(rèn)知組塊,將學(xué)習(xí)思維加以可視化地整理提煉、重組展示,以此成功激活學(xué)生已有認(rèn)知圖式和全部感知力,還原思維本性。具體操作步驟如下:①確定主題,運(yùn)用曼陀羅九宮格法激發(fā)頭腦風(fēng)暴,協(xié)同團(tuán)隊(duì)智慧逐級(jí)細(xì)化直至明析問(wèn)題要點(diǎn);②應(yīng)用關(guān)鍵詞、色彩對(duì)比、分支圖式等梳理知識(shí)間網(wǎng)絡(luò)化脈絡(luò)關(guān)聯(lián),將零散知識(shí)加以全景性概括重組;③依托網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)虛擬社區(qū),組織學(xué)生線(xiàn)上編程作品展示、評(píng)價(jià)與反思,提升他們主動(dòng)參與學(xué)習(xí)的積極性和課堂生成性學(xué)習(xí)成果的認(rèn)知度。
筆者結(jié)合《VB循環(huán)結(jié)構(gòu)》教學(xué)內(nèi)容,繪制思維導(dǎo)圖的重點(diǎn)在于讓學(xué)生明白解決哪些類(lèi)型問(wèn)題適合采用循環(huán)結(jié)構(gòu)算法,以及應(yīng)當(dāng)采用哪種循環(huán)結(jié)構(gòu)語(yǔ)句來(lái)解決問(wèn)題,讓學(xué)生熟練掌握循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的基本思路,從而培養(yǎng)他們的計(jì)算思維,使其學(xué)會(huì)運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念去求解問(wèn)題和設(shè)計(jì)系統(tǒng)。[6]
● 可視化教學(xué)效果評(píng)價(jià)分析
筆者借助基于大數(shù)據(jù)挖掘技術(shù)的可視化教學(xué)評(píng)價(jià)系統(tǒng),實(shí)時(shí)準(zhǔn)確地將學(xué)生自測(cè)自評(píng)、組評(píng)師評(píng)的量化評(píng)價(jià)結(jié)果圖形化顯示,并加以指標(biāo)間趨勢(shì)關(guān)聯(lián)分析,為課堂教學(xué)及時(shí)提供反饋,幫助師生深入觀(guān)察、分析和診斷隱含的教學(xué)問(wèn)題,發(fā)掘有益的教學(xué)規(guī)律,并結(jié)合績(jī)效支持手段監(jiān)控學(xué)生的課堂學(xué)習(xí)行為,可整體上調(diào)節(jié)教學(xué)進(jìn)程,從而達(dá)到預(yù)定的教學(xué)目標(biāo)。
筆者隨機(jī)選擇一個(gè)實(shí)驗(yàn)班與一個(gè)對(duì)照班作為一組獨(dú)立樣本數(shù)據(jù)進(jìn)行對(duì)比實(shí)驗(yàn)及差異評(píng)估,經(jīng)Z檢驗(yàn)統(tǒng)計(jì)法測(cè)試顯示兩班學(xué)生原本在學(xué)習(xí)起點(diǎn)和學(xué)習(xí)能力指標(biāo)上無(wú)顯著性差異。在實(shí)驗(yàn)班教學(xué)中應(yīng)用了可視化教學(xué)策略之后,實(shí)驗(yàn)班與對(duì)照班學(xué)生的整體學(xué)習(xí)成績(jī)對(duì)比差異非常顯著,且反映數(shù)據(jù)離散程度的實(shí)驗(yàn)班學(xué)生成績(jī)標(biāo)準(zhǔn)差比對(duì)照班?。ㄈ缟蠄D)。實(shí)驗(yàn)結(jié)果評(píng)估表明,在VB循環(huán)結(jié)構(gòu)教學(xué)中應(yīng)用上述可視化教學(xué)策略已取得了良好的教學(xué)效果,有利于全體學(xué)生的均衡發(fā)展。
● 結(jié)束語(yǔ)
當(dāng)前教育領(lǐng)域新媒體新技術(shù)廣泛運(yùn)用,動(dòng)畫(huà)模擬、人機(jī)交互、虛擬現(xiàn)實(shí)及增強(qiáng)現(xiàn)實(shí)(Augmented Reality,簡(jiǎn)稱(chēng)AR)提供了強(qiáng)大技術(shù)支撐,它們所帶來(lái)的學(xué)習(xí)體驗(yàn)讓教學(xué)真正進(jìn)入了“讀圖”和“影像”的視覺(jué)時(shí)代,在教育教學(xué)中應(yīng)用可視化教學(xué)方式越來(lái)越受廣大師生歡迎。可視化教學(xué)方式在不增加學(xué)習(xí)者認(rèn)知負(fù)荷的同時(shí),將復(fù)雜抽象的概念、原理、過(guò)程和方法以圖式化視覺(jué)思維模型為表征,通過(guò)圖表、圖解、圖形、表格、地圖、列表等道格紐瑟姆(D.Newsom)所概括的靜態(tài)信息,以及內(nèi)容形象、時(shí)空連續(xù)的視音頻動(dòng)態(tài)信息(如微視頻)圖解承載知識(shí),并直觀(guān)地呈現(xiàn)給學(xué)生,幫助他們建立整體具象的認(rèn)知,避免了純文字說(shuō)教,讓他們能更愉悅、有深度地感知分析、建模解決復(fù)雜問(wèn)題。
參考文獻(xiàn):
[1]申石磊,季超.Visual Basic程序設(shè)計(jì)基礎(chǔ)[M].北京:高等教育出版社,2010:119-131.
[2]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)[M].第二版.北京:清華大學(xué)出版社,2013:48-52.
[3]瞿中,劉玲,熊安萍.計(jì)算機(jī)科學(xué)導(dǎo)論[M].第四版.北京:清華大學(xué)出版社,2014:278.
[4]艾森克.認(rèn)知心理學(xué)[M].高定國(guó),譯.第五版.上海:華東師范大學(xué)出版社,2009:50-51.
[5]趙國(guó)慶.概念圖、思維導(dǎo)圖教學(xué)應(yīng)用的若干重要問(wèn)題的探討[J].電化教育研究,2012(5):78-84.
[6]周以真.計(jì)算思維[J].美國(guó)計(jì)算機(jī)學(xué)會(huì)通訊,2007(11):33-35.