敖培

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