冉娟
摘 要 目前,計(jì)算思維的培養(yǎng)已經(jīng)成為當(dāng)今國(guó)內(nèi)外高校研究與應(yīng)用的熱點(diǎn)。本文引入了基于流程圖可視化軟件Raptor作為程序設(shè)計(jì)工具,程序設(shè)計(jì)的流程圖、算法設(shè)計(jì)融為一體,探討在程序設(shè)計(jì)入門(mén)課程中如何培養(yǎng)學(xué)生的計(jì)算思維能力。
關(guān)鍵詞 Raptor 程序設(shè)計(jì) 計(jì)算思維
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.16400/j.cnki.kjdkx.2016.08.027
Abstract At present, the cultivation of computational thinking has become a hot spot in the research and application of universities and colleges. This paper introduces the flow chart based visualization software Raptor as a programming tool, programming flowchart and algorithm design integration to explore how to cultivate the computational thinking ability of students in the program design entry.
Key words Raptor; programming design; computational thinking
1 程序設(shè)計(jì)與計(jì)算思維
社會(huì)不斷發(fā)展與進(jìn)步,對(duì)大學(xué)生的實(shí)踐和創(chuàng)新能力提出了更高的要求。在這種社會(huì)背景下,應(yīng)該教什么,如何引導(dǎo)學(xué)生,如何培養(yǎng)學(xué)生發(fā)現(xiàn)問(wèn)題、分析問(wèn)題、解決問(wèn)題,成為了我們當(dāng)前面臨問(wèn)題。程序設(shè)計(jì)課程是一門(mén)實(shí)踐性很強(qiáng)的課程,它體現(xiàn)了從問(wèn)題到計(jì)算機(jī)求解的全過(guò)程。從計(jì)算機(jī)程序設(shè)計(jì)知識(shí)方面看,教會(huì)了學(xué)生語(yǔ)法規(guī)則和簡(jiǎn)單程序設(shè)計(jì)結(jié)構(gòu);從培養(yǎng)學(xué)生計(jì)算機(jī)能力方面看,教會(huì)學(xué)生編寫(xiě)程序和優(yōu)化程序;從計(jì)算思維角度上看,教會(huì)學(xué)生計(jì)算機(jī)求解問(wèn)題的方法??梢哉f(shuō),程序設(shè)計(jì)課程作為計(jì)算機(jī)基礎(chǔ)課程的重要組成部分,是訓(xùn)練學(xué)生思維的最具有操作性的平臺(tái)。
2 程序設(shè)計(jì)課程教學(xué)現(xiàn)狀
讓新生掌握一門(mén)程序設(shè)計(jì)課程是計(jì)算機(jī)基礎(chǔ)課程教學(xué)的重要任務(wù)之一。長(zhǎng)久以來(lái),各高校都將C語(yǔ)言作為程序設(shè)計(jì)入門(mén)課程,但通過(guò)多年教學(xué)實(shí)踐我們發(fā)現(xiàn):由于課時(shí)限制和大一新生基礎(chǔ)差異,70%以上的大一新生在學(xué)習(xí)程序設(shè)計(jì)過(guò)程中最棘手的問(wèn)題是看到問(wèn)題時(shí),不知如何思考問(wèn)題,不知如何入手,不知如何將思維轉(zhuǎn)換成程序代碼。這種現(xiàn)狀造成了我們?cè)诮虒W(xué)過(guò)程中,教師教著累,學(xué)生學(xué)著累,看到稍微難一些的題目就無(wú)從下手,久而久之,對(duì)程序設(shè)計(jì)產(chǎn)生了“學(xué)而無(wú)趣”、“學(xué)而無(wú)用”的想法,學(xué)習(xí)效果下降,成績(jī)不及格率偏高等一系列問(wèn)題,無(wú)形中使得程序設(shè)計(jì)課程變成了“一鍋夾生的飯”。究其原因,導(dǎo)致這種教學(xué)效果無(wú)疑是在計(jì)算機(jī)基礎(chǔ)課程教學(xué)中還在沿襲計(jì)算機(jī)科學(xué)專業(yè)課程的內(nèi)容與講法,授課教師為了讓學(xué)生在較短時(shí)間內(nèi)理解和接受這些抽象、理論性較強(qiáng)的教學(xué)內(nèi)容,自然就會(huì)將程序設(shè)計(jì)的教學(xué)重點(diǎn)偏向于“語(yǔ)言”的講解,忽略了程序設(shè)計(jì)的“思想”和“方法”。這樣教學(xué)方式自然讓學(xué)生對(duì)程序設(shè)計(jì)學(xué)習(xí)的重點(diǎn)從程序設(shè)計(jì)思想和方法,轉(zhuǎn)移到了語(yǔ)言的語(yǔ)法規(guī)則上,忽略了計(jì)算機(jī)求解問(wèn)題的核心是程序算法設(shè)計(jì)。程序算法設(shè)計(jì)不僅是計(jì)算機(jī)問(wèn)題求解的核心,更是程序設(shè)計(jì)的靈魂,教會(huì)學(xué)生計(jì)算機(jī)求解問(wèn)題的方法,才是程序設(shè)計(jì)課程教學(xué)的關(guān)鍵與目標(biāo)。針對(duì)這種教學(xué)現(xiàn)狀和出現(xiàn)的問(wèn)題,我校在程序設(shè)計(jì)入門(mén)課程上作了改革與探索,試著分別對(duì)2014級(jí)新生和2015級(jí)新生開(kāi)設(shè)了“Raptor可視化程序設(shè)計(jì)”課程來(lái)代替入門(mén)C語(yǔ)言程序設(shè)計(jì)課程,將Raptor作為程序設(shè)計(jì)工具,引導(dǎo)學(xué)生從計(jì)算思維的角度來(lái)思考問(wèn)題、解決問(wèn)題,幫助學(xué)生掌握程序設(shè)計(jì)算法設(shè)計(jì)思想和方法。
3 計(jì)算思維視野下程序設(shè)計(jì)入門(mén)探索與實(shí)踐
(1)Raptor有利于程序設(shè)計(jì)入門(mén)。RAPTOR是一種基于流程圖的可視化編程開(kāi)發(fā)環(huán)境,關(guān)于Raptor可視化計(jì)算軟件的介紹目前已經(jīng)在一些教材和文獻(xiàn)資料中進(jìn)行介紹,這里不再贅述。早在2003年,Raptor可視化編程軟件就已經(jīng)出現(xiàn)大學(xué)的課堂上。美國(guó)卡內(nèi)基·梅隆大學(xué)Dr. Tom Cortina給非計(jì)算機(jī)專業(yè)學(xué)生講授的“Principles Of Computation”課程中引入了Raptor作為教學(xué)實(shí)踐工具,受到了學(xué)生好評(píng)。因?yàn)镽aptor具有了設(shè)計(jì)程序簡(jiǎn)單、直觀的特性,讓學(xué)生能夠在學(xué)習(xí)程序設(shè)計(jì)時(shí)不僅學(xué)會(huì)程序設(shè)計(jì)的“思想”和“方法”,而且讓學(xué)生體會(huì)了利用計(jì)算機(jī)進(jìn)行問(wèn)題求解的過(guò)程與方法,從而影響了學(xué)生的思維方式和思維習(xí)慣。所以使用Raptor進(jìn)行問(wèn)題求解,可以使程序或算法思想變得更加清晰。
(2)RAPTOR有利于程序設(shè)計(jì)的算法設(shè)計(jì)教學(xué)。按照原有程序設(shè)計(jì)課程教學(xué)內(nèi)容的安排,一般是先給學(xué)生講解語(yǔ)法規(guī)則和程序結(jié)構(gòu),然后借助程序流程圖來(lái)逐步滲透程序算法設(shè)計(jì)的思想。這種教學(xué)安排,初期學(xué)生還可以按照要求邊繪制流程圖邊編寫(xiě)程序代碼,但隨著教學(xué)內(nèi)容逐步加大,流程圖在算法設(shè)計(jì)過(guò)程就逐步被放棄,學(xué)生看見(jiàn)題目就直接編寫(xiě)程序。在還沒(méi)有形成很好的計(jì)算思維的時(shí)候,這樣做的結(jié)果是:簡(jiǎn)單的題目還可以,稍微有一些難度的題目,學(xué)生就不知如何下手,為了繼續(xù)能夠做出題目,只能是“照貓畫(huà)虎”。將Raptor作為程序設(shè)計(jì)工具,利用其流程圖可以執(zhí)行與驗(yàn)證的優(yōu)點(diǎn),可以將這種狀況得到根本性的改善。例如在選擇結(jié)構(gòu)中以最簡(jiǎn)單的“求三個(gè)數(shù)中最大值問(wèn)題”,鼓勵(lì)學(xué)生尋求一題多解的方法。有的同學(xué)設(shè)計(jì)是采用順序處理方案,有的采用決策樹(shù)方案,有的采用通盤(pán)比較方案,還有的采用RAPTOR內(nèi)置函數(shù)Max,算法設(shè)計(jì)方案各異。讓學(xué)生分別對(duì)不同算法設(shè)計(jì)進(jìn)行分析,不僅讓學(xué)生體會(huì)計(jì)算機(jī)求解的過(guò)程,而且也讓學(xué)生仔細(xì)思考在算法設(shè)計(jì)過(guò)程中如何找到一個(gè)簡(jiǎn)潔高效的算法。由此可見(jiàn),對(duì)于大一新生來(lái)說(shuō),將流程圖、算法設(shè)計(jì)、程序設(shè)計(jì)融為一體不僅是一種全新的體驗(yàn),也是培養(yǎng)學(xué)生計(jì)算思維一個(gè)過(guò)程。
(3)RAPTOR有利于計(jì)算思維的培養(yǎng)。Raptor在克服了語(yǔ)言程序設(shè)計(jì)教學(xué)中存在的算法難理解、語(yǔ)法多等諸多問(wèn)題后,更加側(cè)重于算法的驗(yàn)證和實(shí)現(xiàn),為程序和算法的初學(xué)者鋪就了一條平緩的道路,也有利于培養(yǎng)學(xué)生的計(jì)算思維能力。因此,在計(jì)算機(jī)基礎(chǔ)課程教學(xué)過(guò)程中從分析問(wèn)題著手,經(jīng)過(guò)對(duì)問(wèn)題建立數(shù)學(xué)模型、算法設(shè)計(jì)等過(guò)程來(lái)讓學(xué)生關(guān)注計(jì)算思維中關(guān)于問(wèn)題抽象和問(wèn)題分解能力的培養(yǎng),提高學(xué)生解決實(shí)際問(wèn)題的基本能力和計(jì)算思維能力。在新的計(jì)算機(jī)基礎(chǔ)課程教學(xué)中,教師應(yīng)該把更多的時(shí)間放在算法設(shè)計(jì)、算法效率分析和算法優(yōu)化的教學(xué)上,這也是效率作為計(jì)算機(jī)科學(xué)的核心概念之一。在Raptor可視化程序設(shè)計(jì)教學(xué)內(nèi)容設(shè)計(jì)上不僅要充分體現(xiàn)這一點(diǎn),更要考慮到新生對(duì)程序設(shè)計(jì)的認(rèn)知能力和理解能力。因此,教學(xué)內(nèi)容設(shè)計(jì)從學(xué)生感興趣的事物和案例出發(fā),講解程序設(shè)計(jì)中基本概念、基本程序結(jié)構(gòu)、引導(dǎo)學(xué)生從計(jì)算思維的角度來(lái)思考問(wèn)題、解決問(wèn)題。比如講解“遞歸算法設(shè)計(jì)”時(shí),以往在C語(yǔ)言程序設(shè)計(jì)中都是很難理解,教師需要在PPT上進(jìn)行演示,有的學(xué)生還是不能理解遞歸是如何一個(gè)調(diào)用過(guò)程?利用RAPTOR可以很直觀觀察到程序遞歸的過(guò)程,數(shù)據(jù)變量的變化,如圖1所示求解兩個(gè)數(shù)最大公約數(shù)問(wèn)題時(shí)利用遞歸算法設(shè)計(jì)程序時(shí)執(zhí)行過(guò)程(綠色部分為程序執(zhí)行步驟,紅色部分為數(shù)據(jù)變量傳遞的變化)。
通過(guò)這樣演示,學(xué)生很容易理解遞歸算法調(diào)用過(guò)程,對(duì)學(xué)生更好利用遞歸算法解題奠定了基礎(chǔ)。這種利用Raptor可視化程序獨(dú)有的優(yōu)點(diǎn),不僅讓學(xué)生對(duì)算法設(shè)計(jì)有了進(jìn)一步理解,而且為培養(yǎng)計(jì)算思維能力打下基礎(chǔ),也讓學(xué)生體會(huì)計(jì)算思維,能夠?qū)⒂?jì)算思維應(yīng)用到實(shí)際中,更好地分析和解決問(wèn)題。
4 結(jié)束語(yǔ)
在當(dāng)今信息技術(shù)快速發(fā)展的時(shí)代,Raptor作為一種簡(jiǎn)單易懂的可視化編程軟件,可以使用流程圖的方式來(lái)模擬程序的設(shè)計(jì),體現(xiàn)利用計(jì)算機(jī)來(lái)求解問(wèn)題的過(guò)程和方法,在計(jì)算機(jī)基礎(chǔ)課程教學(xué)中引入其作為教學(xué)實(shí)踐工具,不僅增強(qiáng)了學(xué)生學(xué)習(xí)程序設(shè)計(jì)的興趣,而且通過(guò)對(duì)問(wèn)題的思考、討論、交流,出示解決問(wèn)題的流程圖并運(yùn)行結(jié)果,將程序設(shè)計(jì)中原本抽象的教學(xué)過(guò)程變得更加清晰,讓學(xué)生親歷知識(shí)的產(chǎn)生和形成過(guò)程。
課題來(lái)源:2014年全國(guó)高等院校計(jì)算機(jī)基礎(chǔ)教育研究會(huì)計(jì)算機(jī)基礎(chǔ)教育教學(xué)改革課題“面向計(jì)算思維能力培養(yǎng)實(shí)踐——以RAPTOR可視化程序設(shè)計(jì)為例”(編號(hào):201503)
參考文獻(xiàn)
[1] 何欽銘,陸漢權(quán),馮博琴.計(jì)算機(jī)基礎(chǔ)教學(xué)的核心任務(wù)是計(jì)算思維能力的培養(yǎng)《九校聯(lián)盟(C9)計(jì)算機(jī)基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明》解讀[J].中國(guó)大學(xué)教學(xué),2010(9).
[2] 程向前.基于流程圖的可視化程序設(shè)計(jì)環(huán)境對(duì)大學(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)的影響[J].計(jì)算機(jī)教育,2012(14).
[3] 盧瓊.基于流程圖的程序設(shè)計(jì)工具 RAPTOR 對(duì)學(xué)生的計(jì)算思維能力的培養(yǎng)[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用,2014.3.