国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

思維可視化工具:讓學(xué)生的算法思維過程可見

2021-12-29 00:00:00商永明

一、思維可視化工具的分類

2017年8月,筆者參加了“如何運(yùn)用思維可視化技術(shù)提升中小學(xué)自主學(xué)習(xí)能力”的專題學(xué)習(xí),了解了思維可視化技術(shù)在中小學(xué)教學(xué)應(yīng)用領(lǐng)域的分類、特點(diǎn)等。筆者根據(jù)所學(xué)理論,結(jié)合自身教學(xué)實(shí)踐,總結(jié)出三種思維可視化方式,分別簡稱為圖形法、圖表法和動(dòng)畫法。

圖形法指利用簡單的圖形符號(hào)、字符標(biāo)識(shí)、箭頭指向等表示算法執(zhí)行的步驟、過程和方法的思路,并最終獲得解題結(jié)果的方法,它是分析算法與程序問題的常用方法。圖表法指利用表格示意的方式清晰地將算法過程和規(guī)律推算出來,可以將繁雜的程序過程、龐大的數(shù)據(jù)運(yùn)算程式化、清晰化,并幫助操作者獲得正確的結(jié)論。動(dòng)畫法指采用動(dòng)態(tài)圖形與圖像的處理技術(shù),借助相應(yīng)的動(dòng)畫制作軟件生成一系列的景物畫面,并將復(fù)雜、快速、動(dòng)態(tài)的算法運(yùn)行過程,轉(zhuǎn)化成直觀的、形象的、清晰可見的模擬畫面或情境,從而解決算法與程序問題。

二、思維可視化工具在算法教學(xué)中應(yīng)用的有效途徑

算法與程序設(shè)計(jì)課程教學(xué)的最終目的是培養(yǎng)具有信息素養(yǎng)的公民,使其能解決日常生活中的實(shí)際問題。下面,筆者談?wù)剳?yīng)用思維可視化工具巧解算法問題的有效途徑。

(一)用圖形法進(jìn)行算法推理

在解析排序問題時(shí),筆者引導(dǎo)學(xué)生充分利用草稿紙,記錄解題過程,標(biāo)識(shí)代碼中的變量表示含義,并聯(lián)系前后文進(jìn)行推理解題(切忌憑空想象),一步一個(gè)腳印推理得出算法規(guī)律和結(jié)論。例如,在解排序題時(shí),如果學(xué)生只憑想象,很容易遺忘步驟,導(dǎo)致解題錯(cuò)誤。

例1:表1列出了存放在數(shù)組d中的8名學(xué)生身高(單位:厘米)的數(shù)據(jù),若采用冒泡排序法進(jìn)行升序排列,并自右向左進(jìn)行比較和交換,那么兩輪排序后數(shù)據(jù)交換總次數(shù)為( )。

A.11 B.10 C.9 D.8

【解析】本題是典型的冒泡排序算法問題,題目落腳點(diǎn)為求“兩輪排序后數(shù)據(jù)交換總次數(shù)”。因此,用圖形法思維導(dǎo)圖進(jìn)行推算,對(duì)產(chǎn)生交換位置通過符號(hào)進(jìn)行標(biāo)注,兩輪推算完成后可以通過標(biāo)記符號(hào)的總數(shù)得到最終的結(jié)果(如圖1),這樣解題正確率可大大提高。本題答案為A。

例2:使用對(duì)分查找算法對(duì)22個(gè)有序數(shù)組成的序列進(jìn)行查找,查找失敗時(shí)關(guān)鍵字比較次數(shù)至少需要( )。

A.3次 B.4次 C.5次 D.6次

【解析】此題意在考查對(duì)分查找算法思想。關(guān)鍵問題是查找失敗時(shí)關(guān)鍵字比較次數(shù)至少需要多少次。若使用公式int(log)+1解題就會(huì)出錯(cuò),誤選為C。利用圖形法思維導(dǎo)圖分析中間數(shù)的變化,將推算過程利用圖示法一一記錄下來(如圖2),容易得出正確答案為B,因?yàn)橥ㄟ^公式計(jì)算只能算出最多失敗比較次數(shù),而此題必須將解題過程描述出來,可以得出向前查找與向后查找結(jié)果不一樣,這樣才能得到正確答案。

(二)用圖表法進(jìn)行算法推理

表格可以整潔而又清晰地采集、匯總相關(guān)數(shù)據(jù)。在解析循環(huán)結(jié)構(gòu)程序時(shí),教師應(yīng)培養(yǎng)學(xué)生利用圖表的技能與習(xí)慣,聯(lián)系程序的前后文一步一個(gè)腳印地推理,從而通過圖表推算出算法的發(fā)展規(guī)律與結(jié)論,理清算法與程序問題。

例3:某算法的流程圖如圖3所示,依次輸入值3,2,1,-1后,該算法的輸出結(jié)果為( )。

A.3 B.4 C.5 D.6

【解析】此題主要考查循環(huán)程序及變量的賦值變化過程。根據(jù)題意“依次輸入值3,2,1,-1”后,條件不成立時(shí)執(zhí)行循環(huán)體,條件成立時(shí)退出循序,輸出的值,結(jié)束程序。變量、、的值過程變化情況通過圖表的方式進(jìn)行列舉(見表2),得出正確結(jié)果為A。

例4:小吳為了研究冒泡排序過程中數(shù)據(jù)的“移動(dòng)”情況,編寫了一個(gè)VB程序。程序功能如下。在列表框list1中顯示排序前數(shù)據(jù)(存儲(chǔ)在數(shù)組a中),在文本框text1中輸入初始位置(即下標(biāo)值),單擊“排序”按鈕command1后,在標(biāo)簽label1中顯示指定初始位置的數(shù)據(jù)在排序過程中的位置變化情況,排序后的數(shù)據(jù)顯示在列表框list2中。

實(shí)現(xiàn)上述功能的VB程序如下,但加框處代碼有錯(cuò),請(qǐng)改正。

Dim a(1 To 8) As Integer

Dim As Integer

Private Sub Form_Load()

a(1) = 30: a(2) = 47: a(3) = 30: a(4) = 72

a(5) = 70: a(6) = 23: a(7) = 99: a(8) = 24

= 8

For = 1 To 8

List1.AddItem str(a())

Next

End Sub

Private Sub Command1_Click()

Dim As Integer, As Integer, As Integer

Dim pos As Integer

Dim As String

= Text1.Text

pos = Val(Text1.Text)

For = 1 To - 1

For = To i + 1 Step -1

If a( ) < a( - 1) Then

k=a( )

a( - 1) = a( )

a( ) = k

‘如果pos位置的數(shù)據(jù)參與交換,則更新pos值,記錄pos變化位置

If pos = Then

pos = - 1

= + "→" + Str(pos)

Else

pos =

= + "→" + Str(pos)

End If

End If

Next

Next

Label1.Caption = "位置變化情況:" +

For = 1 To

List2.AddItem Str(a())

Next

End Sub

【解析】此題考查冒泡排序,其算法核心結(jié)論是:個(gè)數(shù)排序就是尋找-1個(gè)最值的過程,尋找最值的過程是從最后一個(gè)位置開始,逐個(gè)往前,相鄰的兩個(gè)數(shù)依次比較,讓最值自動(dòng)冒上來。比較規(guī)則就是,如果后面的數(shù)小就交換兩者的值。總結(jié)口訣就是:排序-1趟,每趟從后往前比,相鄰兩個(gè)比,前大后小就交換。第一趟排序原理的過程如圖4所示。

至此,第一趟排序結(jié)束。從圖4可見,最小值23已經(jīng)位于第一個(gè)位置了,同時(shí)經(jīng)過第一趟排序,pos的值被更新為6。其他排序趟,可對(duì)照進(jìn)行。程序錯(cuò)誤第二處,因?yàn)閑lse是除pos= 的所有情況都包括進(jìn)來,每次變化(即每次比較)都重新將pos賦值為,顯然違背題意。故應(yīng)該改進(jìn)elseif pos= -1 then

應(yīng)用圖表法并結(jié)合任務(wù)驅(qū)動(dòng)教學(xué)法,可以將繁雜的程序過程和龐大的數(shù)據(jù)運(yùn)算程式化、清晰化,讓學(xué)生由被動(dòng)地接受知識(shí)轉(zhuǎn)變?yōu)橹鲃?dòng)地尋求知識(shí),由原來“要我學(xué)”轉(zhuǎn)變?yōu)椤拔乙獙W(xué)”,改變學(xué)生傳統(tǒng)的學(xué)習(xí)觀,使其在完成“任務(wù)”的過程中不斷地獲得成就感,從而增強(qiáng)學(xué)習(xí)的自信心,激發(fā)學(xué)習(xí)算法與程序設(shè)計(jì)的熱情和興趣。

(三)用動(dòng)畫法進(jìn)行算法推理

動(dòng)畫法應(yīng)用于信息技術(shù)的教學(xué)具有獨(dú)特的優(yōu)勢(shì),因?yàn)樾畔⒓夹g(shù)教師具備信息處理的先決條件和技術(shù)優(yōu)勢(shì)。筆者在分析復(fù)雜的、抽象的算法問題時(shí)就是采用此途徑加以解決。

例5:在進(jìn)行冒泡排序新課教學(xué)中,有5個(gè)數(shù)組元素:序號(hào)1,數(shù)據(jù)9;序號(hào)2,數(shù)據(jù)28;序號(hào)3,數(shù)據(jù)6;序號(hào)4,數(shù)據(jù)17;序號(hào)5,數(shù)據(jù)12。通過冒泡排序的完整過程,得出排序后的正確結(jié)果。

【解析】此題考查學(xué)生對(duì)冒泡排序的理解能力。通過給定的5個(gè)數(shù)據(jù),根據(jù)冒泡排序的算法規(guī)則,從第5個(gè)數(shù)開始,依次與第4個(gè)數(shù)進(jìn)行比較,若比前面的數(shù)小,則交換順序,依次類推。整個(gè)過程筆者利用PowerPoint 2010的自定義動(dòng)畫功能,完成冒泡排序的模擬過程。

算法與程序設(shè)計(jì)中的很多算法思想,原理是類似的。教師可用動(dòng)畫法思維可視化方式進(jìn)行算法推理,分析總結(jié),方便學(xué)生理解和比較,提高學(xué)生的學(xué)習(xí)效率。

例6:冒泡排序的程序?qū)崿F(xiàn)問題,代碼為:

for =1 to -1 ‘記錄加工的遍數(shù),由1變到-1

for = to +1 step -1 ‘記錄一遍加工中數(shù)組下標(biāo)由變到+1

if a( )<a( -1) then ‘如果a( )比a( -1)小,d( )與d( -1)互換

t=a( ): a( )=a( -1): a( -1)=t

endif

next

next

教學(xué)過程中筆者首先要求學(xué)生掌握這種冒泡算法過程,讓學(xué)生明確冒泡的過程和特點(diǎn)。在考查過程中可能出現(xiàn)其他冒泡形式。例如:

For = To 2 Step -1

For = 1 To - 1

If a( ) > a( + 1) Then

= a( ):a( ) = a( + 1):a( + 1) =

End If

Next

Next

這就是從上往下冒泡的過程。學(xué)生在掌握基本冒泡后可以對(duì)比分析算法的區(qū)別,加深印象,并在這個(gè)基礎(chǔ)上再引出冒泡兩兩比較結(jié)束后,如不發(fā)生交換,則表示排序完成的算法。

=1

Flag=true ‘表示有互換

Do while < = - 1 and flag

flag=false

for = to + 1 step -1

if a( ) < a( -1) then

k=a( ):a( ) = a( -1):a( -1) =

flag =true ‘表示有互換

end if

next

=+1

loop

通過flag標(biāo)記是否發(fā)生交換,如沒有交換則退出循環(huán),在學(xué)生理解冒泡的基本原理后增大難度,這樣易于總結(jié)、理解。

此外,兩兩比較不一定是兩個(gè)連續(xù)數(shù)值比較,也可以是不連續(xù)的數(shù)值比較。代碼如下:

For = 1 To - 1

For = + 1 To

If h()> h( ) Then

t = h():h() = h( ):h( ) = t

End If

Next

Next

每趟中數(shù)值比較過程都是與當(dāng)前要排序的位置上的數(shù)值比較,通過比較也可以實(shí)現(xiàn)一趟比較后將所有數(shù)值比較一次,得到排序結(jié)果。這種排序與基本的冒泡有很大不同,如果學(xué)生單獨(dú)碰到類似的題目可能會(huì)混淆概念。筆者將它歸類整理,并用動(dòng)畫法加以驗(yàn)證,以加深學(xué)生的印象,提高學(xué)生的理解能力。

三、教學(xué)反思

思維可視化是目前中小學(xué)教學(xué)中廣泛應(yīng)用的一種有效的信息與知識(shí)整理工具,一種激發(fā)思維增長的可視化工具。思維可視化的價(jià)值體現(xiàn)植根于人的思考力、思想、文化內(nèi)涵和創(chuàng)造力,同時(shí)也反作用力于思維素養(yǎng)的提升。教師可以將多種類型的思維可視化方式綜合應(yīng)用于信息技術(shù)教學(xué),但絕不能濫用,要處理好以下問題。

其一,思維可視化只是一個(gè)工具,它不一定適合所有人。其應(yīng)用效能高低取決于使用者的思維深廣度、悟性、堅(jiān)持實(shí)踐的態(tài)度和最終的習(xí)慣養(yǎng)成。如果還沒有使用過,請(qǐng)不要無視它;當(dāng)獲得一些經(jīng)驗(yàn)和收獲時(shí),也不要過分拔高它。

其二,學(xué)習(xí)思維可視化技術(shù)必須遵循科學(xué)規(guī)律。學(xué)習(xí)過程為:明晰原理—掌握繪制方法(發(fā)散性思維)—掌握繪制技巧(關(guān)鍵詞提煉、布局、修飾)—體現(xiàn)個(gè)人特色—擴(kuò)大各個(gè)領(lǐng)域應(yīng)用—體現(xiàn)思考過程—全局化過程。

其三,思維可視化的應(yīng)用精髓在于提升使用者思維能力??茖W(xué)應(yīng)用思維可視化工具可以讓使用者思路更清晰、閱讀更方便、知識(shí)體系更結(jié)構(gòu)化、重點(diǎn)更突出,并結(jié)合顏色、文字修飾、圖片、標(biāo)記等元素凸顯關(guān)鍵點(diǎn)和視覺效果,充分發(fā)揮信息的大聚合功能優(yōu)勢(shì),促進(jìn)信息和知識(shí)的有效記憶與理解。

(作者系浙江省杭州市富陽區(qū)教育發(fā)展研究中心高級(jí)教師)

責(zé)任編輯:祝元志

重庆市| 德江县| 体育| 昭苏县| 绿春县| 广元市| 砀山县| 汉中市| 滕州市| 拉萨市| 武川县| 巴南区| 类乌齐县| 北票市| 南阳市| 罗定市| 砚山县| 聂拉木县| 正定县| 延安市| 沐川县| 桂平市| 云浮市| 伊春市| 鄂尔多斯市| 漳平市| 唐山市| 东方市| 如皋市| 太保市| 泌阳县| 沙河市| 新乡市| 米林县| 曲阳县| 樟树市| 衡东县| 江口县| 卫辉市| 惠安县| 金华市|