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