敖培
摘要:本文引入Raptor軟件繪制算法流程圖,以克服傳統(tǒng)流程圖無(wú)法直觀體驗(yàn)算法運(yùn)行實(shí)現(xiàn)效果的缺陷。通過(guò)枚舉算法一課教學(xué)設(shè)計(jì),詳細(xì)介紹了基于Raptor軟件提升學(xué)生算法思維能力的方法和過(guò)程,對(duì)于高中算法教學(xué)具有一定的借鑒意義。
關(guān)鍵詞:算法思維;Raptor軟件;信息技術(shù)教學(xué)
中圖分類號(hào):TN911.2 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2018)07-0132-02
1 基于Raptor軟件的算法思維培養(yǎng)教學(xué)設(shè)計(jì)案例
Raptor是一種基于流程圖的可視化程序設(shè)計(jì)工具。[1]將Raptor引入到上海高中《算法與程序設(shè)計(jì)》課程教學(xué)中能很好地解決由于算法不能運(yùn)行,而造成學(xué)生對(duì)算法理解不深入的缺陷。這里以枚舉算法一節(jié)教學(xué)設(shè)計(jì)為例,嘗試?yán)肦aptor軟件,圍繞“百錢買百雞”的實(shí)際問(wèn)題解決,按照文獻(xiàn)[2]中給出的算法類問(wèn)題求解七階段,展開(kāi)面向?qū)W生算法思維培養(yǎng)的教學(xué)。教學(xué)過(guò)程包括以下三個(gè)部分:
1.1 講一講
Step 1:分析問(wèn)題。在此階段要讓學(xué)生明確哪些問(wèn)題是算法類問(wèn)題。對(duì)照枚舉算法思想,引導(dǎo)學(xué)生分析出百雞買百錢問(wèn)題是屬于枚舉算法可以解決的算法類問(wèn)題。
Step 2:數(shù)學(xué)建模。該階段要使學(xué)生理解什么是數(shù)學(xué)建模和數(shù)學(xué)建模的重要性。對(duì)于百雞買百錢問(wèn)題,可以先讓學(xué)生根據(jù)已有數(shù)學(xué)知識(shí)列出一個(gè)數(shù)學(xué)方程組:
Step 3:算法策略設(shè)計(jì)階段。此階段要讓學(xué)生理解式(1)適合采用枚舉法求解。可以引導(dǎo)學(xué)生觀察式(1),分析枚舉對(duì)象、每個(gè)枚舉對(duì)象的范圍和判定各枚舉對(duì)象組合是否是問(wèn)題解的判定條件??赡艿贸鰞煞N觀察結(jié)論:
(1)確定3個(gè)枚舉對(duì)象分別為三種雞的數(shù)量,每個(gè)枚舉對(duì)象的枚舉范圍為1≤i<20、1≤j<33、1≤k<100,判定條件為三種雞的總數(shù)和買雞用去的錢的總數(shù)。
(2)由于注意到三種雞的和是固定的,只要枚舉兩種雞,第三種雞就可以根據(jù)約束條件求得。因此,確定2個(gè)枚舉對(duì)象分別為兩種雞的數(shù)量,每個(gè)枚舉對(duì)象的枚舉范圍為1≤i<20,1≤j<33,判定條件為買雞用去的錢的總數(shù)。
以上兩種結(jié)論可以有助于學(xué)生理解不同的算法策略對(duì)問(wèn)題求解的影響。
Step 4:確定數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計(jì)。這一階段主要讓學(xué)生理解如何精確表達(dá)算法的策略。對(duì)于Step 3得出的兩種觀察結(jié)論,分別三重循環(huán)嵌套分支結(jié)構(gòu)和雙重循環(huán)嵌套分支結(jié)構(gòu)實(shí)現(xiàn)。采用Raptor軟件設(shè)計(jì)繪制流程圖的過(guò)程中,可以讓學(xué)生進(jìn)一步理解算法的基本操作和控制結(jié)構(gòu)。
Step 5:算法實(shí)現(xiàn)。此階段要讓學(xué)生認(rèn)識(shí)到算法實(shí)現(xiàn)的實(shí)現(xiàn)步驟??梢岳肦aptor軟件將設(shè)計(jì)好的兩種流程圖轉(zhuǎn)換成C++語(yǔ)言的源程序,讓學(xué)生理解流程圖與采用某種程序設(shè)計(jì)語(yǔ)言設(shè)計(jì)出的程序之間的關(guān)系,認(rèn)識(shí)到算法需要轉(zhuǎn)換成程序后才能使用計(jì)算機(jī)求解問(wèn)題。
Step 6:算法的模擬與分析。在此階段要讓學(xué)生理解對(duì)程序進(jìn)行測(cè)試的必要性。在Raptor中運(yùn)行兩種流程圖,在主控臺(tái)得到運(yùn)行結(jié)果。從運(yùn)行結(jié)果可以觀察到兩種算法的運(yùn)行結(jié)果均相同,說(shuō)明兩種算法都是正確的。
Step 7:算法復(fù)雜性分析。在此階段要讓學(xué)生學(xué)會(huì)判斷算法的優(yōu)劣,進(jìn)而優(yōu)化算法。通過(guò)引導(dǎo)學(xué)生觀察Raptor中的運(yùn)算次數(shù),第一種策略需運(yùn)算289952次,遠(yuǎn)高于而第二種策略的3596次,顯然在時(shí)間復(fù)雜性方面第二種策略要優(yōu)于第一種策略。
1.2 理一理
在講一講的案例基礎(chǔ)上,引導(dǎo)學(xué)生總結(jié)枚舉算法的基本步驟,分析約束條件的篩選和枚舉對(duì)象的選擇對(duì)算法效率的影響。進(jìn)而得出加強(qiáng)約束條件,縮小枚舉范圍,可以優(yōu)化算法流程,提高算法效率的結(jié)論。
1.3 練一練
為了讓學(xué)生更加深入的理解枚舉算法,選取三個(gè)難度逐漸增加的問(wèn)題作為練習(xí),要求學(xué)生基于Raptor軟件按照講一講中的步驟求解每個(gè)練習(xí)問(wèn)題的解。
2 結(jié)語(yǔ)
將Raptor可視化程序設(shè)計(jì)工具引入高中信息技術(shù)課程算法教學(xué)中,便于將抽象的算法教學(xué)進(jìn)行可視化呈現(xiàn),直觀性的教學(xué)能夠讓學(xué)生更深入的體驗(yàn)算法的性能及優(yōu)缺點(diǎn),在培養(yǎng)學(xué)生算法思維方面發(fā)揮了積極的作用。
參考文獻(xiàn)
[1]張光建.使用Raptor培養(yǎng)學(xué)生程序設(shè)計(jì)思維[J].福建電腦,2015,(8):149-150.
[2]戰(zhàn)德臣,聶蘭順,等著.大學(xué)計(jì)算機(jī):計(jì)算思維導(dǎo)論[M].電子工業(yè)出版社,2013.