谷惠敏
程序設(shè)計(jì)課程是強(qiáng)調(diào)“思想”與“方法”的,是基于問(wèn)題的求解來(lái)貫穿于程序設(shè)計(jì)中。計(jì)算思維是程序設(shè)計(jì)教學(xué)的基本內(nèi)容,而對(duì)于學(xué)生來(lái)說(shuō),程序設(shè)計(jì)課程最初學(xué)習(xí)是很有趣味的,但在后續(xù)學(xué)習(xí)中卻因算法、語(yǔ)法的增多,反而降低了學(xué)習(xí)熱情。為此,本文將通過(guò)引入“Raptor”可視化流程軟件來(lái)探討程序類課程的教學(xué)創(chuàng)新。
【關(guān)鍵詞】程序設(shè)計(jì)課程 計(jì)算思維
學(xué)習(xí)程序設(shè)計(jì),要注重計(jì)算思維的滲透與養(yǎng)成。計(jì)算思維是基于數(shù)與形的邏輯關(guān)系,來(lái)探討問(wèn)題求解的過(guò)程。在程序設(shè)計(jì)課程教學(xué)中,如何從教學(xué)方法創(chuàng)新上,來(lái)強(qiáng)調(diào)計(jì)算思維,來(lái)引導(dǎo)學(xué)生從計(jì)算思維中來(lái)洞曉和理解程序設(shè)計(jì)的真諦。為此,本文將結(jié)合C語(yǔ)言教學(xué)實(shí)際,通過(guò)引入Raptor流程可視化軟件,來(lái)創(chuàng)新程序設(shè)計(jì)課程教學(xué)模式,激發(fā)學(xué)生的計(jì)算思維,提升教學(xué)實(shí)效。
1 程序設(shè)計(jì)課程對(duì)計(jì)算思維的體現(xiàn)
在程序設(shè)計(jì)課程教學(xué)實(shí)踐中,語(yǔ)法規(guī)則是體現(xiàn)程序設(shè)計(jì)思想與方法的具體內(nèi)容,也是引導(dǎo)學(xué)生運(yùn)用程序設(shè)計(jì)來(lái)解決問(wèn)題的有效途徑。但對(duì)于學(xué)生而言,程序語(yǔ)法在后續(xù)的學(xué)習(xí)中,因抽象性過(guò)強(qiáng)而容易陷入迷惑。為此,利用“Raptor”可視化程序設(shè)計(jì)流程軟件,將程序設(shè)計(jì)的“思想”與“方法”導(dǎo)入到流程圖中,引導(dǎo)學(xué)生從問(wèn)題的求解思路來(lái)理解語(yǔ)法,幫助學(xué)生從中激發(fā)學(xué)習(xí)熱情,解決設(shè)計(jì)難題。突出計(jì)算思維的滲透,主要從三方面來(lái)體現(xiàn)。一是強(qiáng)調(diào)學(xué)生對(duì)程序設(shè)計(jì)基本知識(shí)的掌握,特別是對(duì)于相對(duì)繁瑣的程序,從基本概念的掌握學(xué)習(xí)中,來(lái)理解程序設(shè)計(jì)的思想與方法,學(xué)會(huì)調(diào)試程序;二是注重程序?qū)?wèn)題的求解能力,程序設(shè)計(jì)的目標(biāo)在于解決問(wèn)題,而問(wèn)題的呈現(xiàn)是以抽象化程序代碼形式來(lái)表現(xiàn),因此,要注重對(duì)數(shù)學(xué)模型、算法的優(yōu)化學(xué)習(xí);三是注重創(chuàng)新能力的培養(yǎng),特別是突出計(jì)算思維能力,要從算法思維多樣化上來(lái)引導(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ì)語(yǔ)法的直觀呈現(xiàn)。二是在操作上簡(jiǎn)便、快捷,特別是通過(guò)拖拽方式對(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)問(wèn)題、分析問(wèn)題、尋求解決思路、優(yōu)化設(shè)計(jì)方案”等流程,并從中來(lái)強(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ù)功能來(lái)優(yōu)化程序結(jié)構(gòu),便于學(xué)生操作;二要對(duì)所給出的數(shù)字進(jìn)行判斷,利用Raptor嵌入式選擇結(jié)構(gòu)來(lái)判定是大還是小;三要對(duì)程序的交互設(shè)計(jì),利用循環(huán)結(jié)構(gòu)來(lái)設(shè)計(jì)程序的連貫性,直到猜出正確數(shù)字為止;四要進(jìn)行“非數(shù)字符號(hào)”判斷及處理;五要對(duì)猜測(cè)次數(shù)進(jìn)行限定,利用Raptor嵌套循環(huán)結(jié)構(gòu)來(lái)實(shí)現(xiàn)最大次數(shù)限定;六要對(duì)猜測(cè)過(guò)程數(shù)據(jù)進(jìn)行存儲(chǔ),利用數(shù)組知識(shí)來(lái)完成;七要對(duì)猜測(cè)的數(shù)字進(jìn)行二分處理,利用二分查找方法來(lái)完成。
當(dāng)然,在選擇程序設(shè)計(jì)任務(wù)時(shí),結(jié)合學(xué)生的程序認(rèn)知能力和水平,對(duì)程序設(shè)計(jì)實(shí)踐要進(jìn)行層次劃分,讓學(xué)生結(jié)合自我能力來(lái)完成不同的設(shè)計(jì)題目。如雞兔同籠問(wèn)題、判定閏年的算法,100以內(nèi)的奇偶數(shù)之和,水仙花數(shù)、出售金魚等算法題,還有一些難度高的如抓肇事司機(jī),打印等腰三角形,字母出現(xiàn)頻率統(tǒng)計(jì)等。通過(guò)對(duì)不同算法程序設(shè)計(jì)實(shí)踐知識(shí)的運(yùn)用,讓學(xué)生從問(wèn)題的抽象思維到程序設(shè)計(jì)的基本流程中,在倡導(dǎo)多樣化算法思維實(shí)踐與鍛煉中,實(shí)現(xiàn)對(duì)不同問(wèn)題的不同理解與運(yùn)用,來(lái)分析不同解法的優(yōu)缺點(diǎn),來(lái)不斷改進(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)等方面來(lái)綜合。借助于Raptor可視化設(shè)計(jì)環(huán)境,其支持Novice、Intermedia和Object Oriented三種模式,分別為初級(jí)程序設(shè)計(jì)、中級(jí)程序設(shè)計(jì)和面向UML(統(tǒng)一建模語(yǔ)言)對(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è)步驟。如第一步為L(zhǎng)oop循環(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)行取值判定;……如此以來(lái),對(duì)于本算法的程序設(shè)計(jì),在系統(tǒng)執(zhí)行與運(yùn)算上,需要進(jìn)行百萬(wàn)次運(yùn)算比較,增加了運(yùn)算成本。通過(guò)對(duì)本算法的分析,求解1000以內(nèi)的完全數(shù)具有明顯的步驟顯示性,可以將之應(yīng)有到Raptor流程圖設(shè)計(jì)中,來(lái)分析其算法的復(fù)雜度,進(jìn)而可以估算出本程序的運(yùn)算次數(shù)達(dá)到1124955.5次。在此基礎(chǔ)上,通過(guò)引入歐拉完全數(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倍。由此可見(jiàn),對(duì)于一般的程序設(shè)計(jì)來(lái)說(shuō),其復(fù)雜性可以通過(guò)Raptor流程圖設(shè)計(jì)進(jìn)行檢驗(yàn)和分析,并從計(jì)算思維上利用可視化軟件來(lái)實(shí)現(xiàn)改進(jìn)和優(yōu)化,在這個(gè)過(guò)程中,學(xué)生可以從算法復(fù)雜性估算、驗(yàn)證和優(yōu)化中來(lái)激活計(jì)算思維,來(lái)提升計(jì)算思維能力。
3 結(jié)語(yǔ)
利用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ā)揮了積極作用,一方面利用流程圖來(lái)模擬程序設(shè)計(jì),另一方面從問(wèn)題的提出、求解、探討、設(shè)計(jì)中來(lái)實(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].中國(guó)繼續(xù)醫(yī)學(xué)教育,2016(24).
作者單位
商丘醫(yī)學(xué)高等??茖W(xué)校 河南省商丘市 476100