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