谷惠敏
程序設(shè)計(jì)課程是強(qiáng)調(diào)“思想”與“方法”的,是基于問題的求解來貫穿于程序設(shè)計(jì)中。計(jì)算思維是程序設(shè)計(jì)教學(xué)的基本內(nèi)容,而對(duì)于學(xué)生來說,程序設(shè)計(jì)課程最初學(xué)習(xí)是很有趣味的,但在后續(xù)學(xué)習(xí)中卻因算法、語法的增多,反而降低了學(xué)習(xí)熱情。為此,本文將通過引入“Raptor”可視化流程軟件來探討程序類課程的教學(xué)創(chuàng)新。
【關(guān)鍵詞】程序設(shè)計(jì)課程 計(jì)算思維
學(xué)習(xí)程序設(shè)計(jì),要注重計(jì)算思維的滲透與養(yǎng)成。計(jì)算思維是基于數(shù)與形的邏輯關(guān)系,來探討問題求解的過程。在程序設(shè)計(jì)課程教學(xué)中,如何從教學(xué)方法創(chuàng)新上,來強(qiáng)調(diào)計(jì)算思維,來引導(dǎo)學(xué)生從計(jì)算思維中來洞曉和理解程序設(shè)計(jì)的真諦。為此,本文將結(jié)合C語言教學(xué)實(shí)際,通過引入Raptor流程可視化軟件,來創(chuàng)新程序設(shè)計(jì)課程教學(xué)模式,激發(fā)學(xué)生的計(jì)算思維,提升教學(xué)實(shí)效。
1 程序設(shè)計(jì)課程對(duì)計(jì)算思維的體現(xiàn)
在程序設(shè)計(jì)課程教學(xué)實(shí)踐中,語法規(guī)則是體現(xiàn)程序設(shè)計(jì)思想與方法的具體內(nèi)容,也是引導(dǎo)學(xué)生運(yùn)用程序設(shè)計(jì)來解決問題的有效途徑。但對(duì)于學(xué)生而言,程序語法在后續(xù)的學(xué)習(xí)中,因抽象性過強(qiáng)而容易陷入迷惑。為此,利用“Raptor”可視化程序設(shè)計(jì)流程軟件,將程序設(shè)計(jì)的“思想”與“方法”導(dǎo)入到流程圖中,引導(dǎo)學(xué)生從問題的求解思路來理解語法,幫助學(xué)生從中激發(fā)學(xué)習(xí)熱情,解決設(shè)計(jì)難題。突出計(jì)算思維的滲透,主要從三方面來體現(xiàn)。一是強(qiáng)調(diào)學(xué)生對(duì)程序設(shè)計(jì)基本知識(shí)的掌握,特別是對(duì)于相對(duì)繁瑣的程序,從基本概念的掌握學(xué)習(xí)中,來理解程序設(shè)計(jì)的思想與方法,學(xué)會(huì)調(diào)試程序;二是注重程序?qū)栴}的求解能力,程序設(shè)計(jì)的目標(biāo)在于解決問題,而問題的呈現(xiàn)是以抽象化程序代碼形式來表現(xiàn),因此,要注重對(duì)數(shù)學(xué)模型、算法的優(yōu)化學(xué)習(xí);三是注重創(chuàng)新能力的培養(yǎng),特別是突出計(jì)算思維能力,要從算法思維多樣化上來引導(dǎo)學(xué)生多實(shí)踐,多感悟。
2 Raptor可視化軟件與程序設(shè)計(jì)計(jì)算思維的協(xié)同運(yùn)用
2.1 明確Raptor的流程圖特色
Raptor作為可視化流程圖工具,其特色表現(xiàn)在三點(diǎn)。一是對(duì)于各類圖形符號(hào)具有可執(zhí)行的流程圖,可以實(shí)現(xiàn)對(duì)程序設(shè)計(jì)語法的直觀呈現(xiàn)。二是在操作上簡便、快捷,特別是通過拖拽方式對(duì)不同圖形符號(hào)進(jìn)行位置優(yōu)化,以形成完整的流程圖;三是在設(shè)計(jì)思維上便于掌握和理解。另外,Raptor還能夠提供執(zhí)行步驟計(jì)算與統(tǒng)計(jì),為算法分析、優(yōu)化提供參考。
2.2 Raptor在算法設(shè)計(jì)中的應(yīng)用
計(jì)算思維在程序設(shè)計(jì)中的運(yùn)用,要遵循“發(fā)現(xiàn)問題、分析問題、尋求解決思路、優(yōu)化設(shè)計(jì)方案”等流程,并從中來強(qiáng)化計(jì)算思維的養(yǎng)成。根據(jù)《大學(xué)計(jì)算機(jī)基礎(chǔ)課程教學(xué)基本要求》,在引入程序設(shè)計(jì)教學(xué)與Raptor流程軟件時(shí),要遵循教學(xué)內(nèi)容的漸進(jìn)性,注重計(jì)算思維的連貫性,特別是對(duì)于新生,由于對(duì)程序設(shè)計(jì)學(xué)習(xí)好奇心強(qiáng),要在案例選擇上貼近學(xué)生實(shí)際,便于學(xué)生從中掌握程序設(shè)計(jì)的算法思路。以“猜數(shù)游戲”為例,對(duì)于20以內(nèi)的整數(shù),計(jì)算機(jī)隨機(jī)給出,讓學(xué)生進(jìn)行猜想,正確顯示“Right”,錯(cuò)誤顯示“Wrong”。在程序設(shè)計(jì)的算法分析上,一要明確猜數(shù)的功能,利用Random隨機(jī)函數(shù)功能來優(yōu)化程序結(jié)構(gòu),便于學(xué)生操作;二要對(duì)所給出的數(shù)字進(jìn)行判斷,利用Raptor嵌入式選擇結(jié)構(gòu)來判定是大還是??;三要對(duì)程序的交互設(shè)計(jì),利用循環(huán)結(jié)構(gòu)來設(shè)計(jì)程序的連貫性,直到猜出正確數(shù)字為止;四要進(jìn)行“非數(shù)字符號(hào)”判斷及處理;五要對(duì)猜測(cè)次數(shù)進(jìn)行限定,利用Raptor嵌套循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)最大次數(shù)限定;六要對(duì)猜測(cè)過程數(shù)據(jù)進(jìn)行存儲(chǔ),利用數(shù)組知識(shí)來完成;七要對(duì)猜測(cè)的數(shù)字進(jìn)行二分處理,利用二分查找方法來完成。
當(dāng)然,在選擇程序設(shè)計(jì)任務(wù)時(shí),結(jié)合學(xué)生的程序認(rèn)知能力和水平,對(duì)程序設(shè)計(jì)實(shí)踐要進(jìn)行層次劃分,讓學(xué)生結(jié)合自我能力來完成不同的設(shè)計(jì)題目。如雞兔同籠問題、判定閏年的算法,100以內(nèi)的奇偶數(shù)之和,水仙花數(shù)、出售金魚等算法題,還有一些難度高的如抓肇事司機(jī),打印等腰三角形,字母出現(xiàn)頻率統(tǒng)計(jì)等。通過對(duì)不同算法程序設(shè)計(jì)實(shí)踐知識(shí)的運(yùn)用,讓學(xué)生從問題的抽象思維到程序設(shè)計(jì)的基本流程中,在倡導(dǎo)多樣化算法思維實(shí)踐與鍛煉中,實(shí)現(xiàn)對(duì)不同問題的不同理解與運(yùn)用,來分析不同解法的優(yōu)缺點(diǎn),來不斷改進(jìn)和完善程序設(shè)計(jì)。
2.3 注重教學(xué)方法的創(chuàng)新
程序設(shè)計(jì)課程教學(xué)方法的運(yùn)用,與學(xué)生計(jì)算思維的培養(yǎng)是相關(guān)的,對(duì)于教學(xué)法的創(chuàng)新,需要從課堂知識(shí)講授、動(dòng)手設(shè)計(jì)程序、課下教學(xué)輔導(dǎo)等方面來綜合。借助于Raptor可視化設(shè)計(jì)環(huán)境,其支持Novice、Intermedia和Object Oriented三種模式,分別為初級(jí)程序設(shè)計(jì)、中級(jí)程序設(shè)計(jì)和面向UML(統(tǒng)一建模語言)對(duì)象的程序設(shè)計(jì),可以實(shí)現(xiàn)多數(shù)基本程序設(shè)計(jì)與算法設(shè)計(jì)的編程需要。為了對(duì)Raptor進(jìn)行教學(xué)方法的創(chuàng)新與驗(yàn)證,以1000以內(nèi)的完全數(shù)算法設(shè)計(jì)為例,該程序設(shè)計(jì)基本上分為9個(gè)步驟。如第一步為Loop循環(huán)程序,將n從2到1000進(jìn)行調(diào)用,并進(jìn)行判斷是否大于1000;第二步當(dāng)n小于1000時(shí),將s作為因子的和;第三步以變量j進(jìn)行Loop循環(huán)設(shè)計(jì),當(dāng)j從2到n/2時(shí),進(jìn)行取值判定;……如此以來,對(duì)于本算法的程序設(shè)計(jì),在系統(tǒng)執(zhí)行與運(yùn)算上,需要進(jìn)行百萬次運(yùn)算比較,增加了運(yùn)算成本。通過對(duì)本算法的分析,求解1000以內(nèi)的完全數(shù)具有明顯的步驟顯示性,可以將之應(yīng)有到Raptor流程圖設(shè)計(jì)中,來分析其算法的復(fù)雜度,進(jìn)而可以估算出本程序的運(yùn)算次數(shù)達(dá)到1124955.5次。在此基礎(chǔ)上,通過引入歐拉完全數(shù)獲得公式,當(dāng)滿足條件2P-1時(shí)判定為質(zhì)數(shù),則(2P-1)×2P-1的結(jié)果即是完全數(shù)。對(duì)上述算法程序設(shè)計(jì)進(jìn)行優(yōu)化,可以在相同的數(shù)據(jù)范圍內(nèi),只需要執(zhí)行252次算法表達(dá)式,即可得到相同的結(jié)果,而與之前的算法相比,其計(jì)算效率提升近4000倍。由此可見,對(duì)于一般的程序設(shè)計(jì)來說,其復(fù)雜性可以通過Raptor流程圖設(shè)計(jì)進(jìn)行檢驗(yàn)和分析,并從計(jì)算思維上利用可視化軟件來實(shí)現(xiàn)改進(jìn)和優(yōu)化,在這個(gè)過程中,學(xué)生可以從算法復(fù)雜性估算、驗(yàn)證和優(yōu)化中來激活計(jì)算思維,來提升計(jì)算思維能力。
3 結(jié)語
利用Raptor可視化程序設(shè)計(jì)工具與程序設(shè)計(jì)課程的融合,便于將抽象的程序設(shè)計(jì)教學(xué)進(jìn)行可視化呈現(xiàn),突出了教學(xué)直觀性,引導(dǎo)學(xué)生辨析程序設(shè)計(jì)的優(yōu)缺點(diǎn),克服程序設(shè)計(jì)的迷惑與恐懼,增強(qiáng)了學(xué)生的學(xué)習(xí)興趣。Raptor可視化工具的運(yùn)用,在激發(fā)學(xué)生程序設(shè)計(jì)計(jì)算思維上發(fā)揮了積極作用,一方面利用流程圖來模擬程序設(shè)計(jì),另一方面從問題的提出、求解、探討、設(shè)計(jì)中來實(shí)現(xiàn)編程知識(shí)的內(nèi)化,強(qiáng)調(diào)學(xué)生計(jì)算思維的培養(yǎng),提升學(xué)生的編程水平。
參考文獻(xiàn)
[1]劉瓊,史諾,Tran Van Cuong.基于計(jì)算思維視角的程序設(shè)計(jì)教學(xué)改革研究[J].自動(dòng)化與儀器儀表,2015(12).
[2]楊飛,陳浩強(qiáng),劉方.基于計(jì)算思維的醫(yī)學(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)探索[J].中國繼續(xù)醫(yī)學(xué)教育,2016(24).
作者單位
商丘醫(yī)學(xué)高等??茖W(xué)校 河南省商丘市 476100