摘要:計算思維是各國教育行業(yè)所關注的熱點話題,我國職業(yè)院校也將計算思維能力的培養(yǎng)作為重要的教學任務。文章基于圖形化編程軟件OpenBlock,結合高職院校的學生基礎能力,通過一個游戲編程項目的教學設計和案例實施步驟,計算思維的培養(yǎng)模式進行分析,為培養(yǎng)學生計算思維能力提供了新的思路。
關鍵詞:圖形化編程;計算思維;職業(yè)教育;創(chuàng)新思維;項目教學
中圖分類號:G642? ? ? 文獻標識碼:A
文章編號:1009-3044(2023)31-0171-03
開放科學(資源服務)標識碼(OSID)
0 引言
科學的思維是人類特有的認識事物的一種過程與方式,將通過感覺器官獲取的原始材料,進行邏輯化的理解與推理,從而完成對事物的認知過程。美國卡內(nèi)基·梅隆大學的周以真教授將計算思維定義為運用計算科學的基礎概念進行問題求解、系統(tǒng)設計以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動[1]。由此可以看出,計算思維的過程中,也包含了邏輯與推理,也是一種科學的思維方式,只是更加明確地定義了思考的方式和思維活動的種類。計算思維能力融入了每一個人的日常生活、學習和工作中,是人們認識問題、分析問題和解決問題的基礎和手段。那么,應該如何培養(yǎng)和提升計算思維能力?培養(yǎng)計算思維能力與編程有哪些聯(lián)系?如何選擇合適的編程工具來幫助學生更好的學習編程?
1 職業(yè)院校中的計算思維能力培養(yǎng)
1.1 傳統(tǒng)編程訓練難以滿足計算思維能力培養(yǎng)的需要
在職業(yè)院校,計算思維培養(yǎng)的主要目標是通過思考來分析事物的本質(zhì),將其中的原理部分抽象化、邏輯化,將完成項目的過程用流程化的方式體現(xiàn),如圖1所示。
程序設計課可以以問題驅(qū)動的方式引起學生的學習興趣,針對學生創(chuàng)造力和創(chuàng)新力進行培養(yǎng),啟發(fā)、引導學生在解決問題中思考和學習[2]。所以,教學生編寫程序是培養(yǎng)計算思維的最有效的方法之一。編程訓練的過程中,學生按問題分析、邏輯分析、算法分析和程序?qū)崿F(xiàn)等步驟,從分析問題到解決問題,完成了一次計算思維的提升訓練。
編寫程序雖然在培養(yǎng)學生計算思維方面有先天的優(yōu)勢,但是,存在的問題也比較突出。而在實際講授過程中,教師會重點關注程序在編譯和運行過程中出現(xiàn)問題,也會關注如何搭建和使用編程環(huán)境的問題。所以,授課時一般會注重對程序語法知識和編程環(huán)境等基礎部分的講解,這樣就會導致用在程序結構和算法內(nèi)容上的講授時間會被壓縮,使學生很難有時間完整的對一個問題進行深入剖析和理解。在枯燥的語法和句法學習過程中,會逐步降低學習的積極性和主動性,也會逐步喪失主動思考的能力[3]。
如“漢諾塔”“雞兔同籠”和“物不知數(shù)”等生活中的“算法”問題,其問題自身的計算方法都廣為人知。但是,在計算求解的過程中,計算量會隨著計算參數(shù)的增長而呈指數(shù)級增加,所以只能在相對條件比較簡單的情況下才能進行手工計算。如果參與計算的參數(shù)增長了,計算量會急劇增加,這時,就只能借助計算機計算求解。但是因為編寫程序的過程難度大,只有為數(shù)不多的學生有能力用編程的方法得出結果。
1.2 圖形化編程能夠推動計算思維的培養(yǎng)
在計算機前端技術發(fā)展帶來的影響下,圖形化編程的研究受到了越來越多的關注。通過拖動“塊”來寫代碼,是圖形化編程的主要特點。在學習圖形化編程的過程中,系統(tǒng)主要提供圖形化編程環(huán)境和可以拖動的“塊”,由學習者根據(jù)問題的需要將不同的“塊”組合成邏輯“塊”組,在組合的過程中,系統(tǒng)同步生成代碼,同時還能夠提供編譯環(huán)境和連接硬件的方法,使程序運行的結果能直接通過硬件開發(fā)板體現(xiàn)出來[4]。
圖形化編程平臺的作用主要體現(xiàn)在以下幾個方面:第一,圖形化的編程平臺是一種全新的程序設計方法,其編程的操作方法簡潔、直觀,容易上手,經(jīng)過短暫的培訓學習,就能夠通過“拖動”的方式,構造出各種應用程序的界面、對象和邏輯。第二,編程教學中,代碼的編寫和排錯是編程學習過程中的一大難點。但是在圖形化編程環(huán)境中,“塊”可以像積木一樣搭建,且“塊”與“塊”之間的連接處采用的是類似于一種榫卯結構,如果能夠順利連起來,則表示語法基本正確。第三,圖形化編程平臺大多支持多種代碼的轉(zhuǎn)換,Python、JS、C等,使用者不需要重復學習各種編程語言,搭建好的“積木塊”就能夠?qū)崟r自動生成多種程序代碼。
2 基于圖形化編程計算思維培養(yǎng)模式
2.1 基于項目教學的圖形化編程教學設計
根據(jù)教學對象、教學手段和教學目標等要素,將圖形化編程的教學設計分為頂層、中間層和底層三個部分,首先是頂層部分,該部分主要是分析學情、內(nèi)容和目標,制作和收集項目教學資源,制定教學計劃,甚至可以細化到課堂的組織形式和互動方式等,為后續(xù)的教學過程設計和實施提供支持。其次是中間層部分,該部分主要進行教學過程的設計與開展,根據(jù)教學目標的需要選擇合適的項目,然后確定教學時數(shù)、教學形式和教學評價方式,分別從教師教學角度和學生學習角度細化教學過程。同時,收集整理教學資源,并還要根據(jù)教學需要自主開發(fā)一部分教學資源。最后是底層部分,主要內(nèi)容就是教學評價的形成與分析,主要的評價依據(jù)就是是否能讓學生在分析問題和解決問題的過程中,提出新問題和新思想,并獲得新能力和新技能,從而加深對教學目標的認識,螺旋上升式地構建認知,如圖2所示。
2.2 基于圖形化編程計算思維培養(yǎng)模式的分析
本文所提出的計算思維培養(yǎng)模式是,基于教學過程和教學目標,再結合項目需求、案例分析和總結評估等步驟,使學生在使用圖形化編程平臺的過程中,計算思維能力得到不斷的發(fā)展與增強,使得完成項目開發(fā)的過程就是計算思維發(fā)展的過程。
圖形化編程平臺除了作為計算思維輸出的載體,還能使整個教學活動聚焦到學生對問題的分析環(huán)節(jié),使教學的組織方式得到根本性的改變。計算思維的呈現(xiàn)依靠的是對問題的分析和邏輯化過程,而實現(xiàn)這一過程的手段就是編程,通過直觀易學的圖形化編程工具,將計算思維的培養(yǎng)過程與要點分別加以落實。
3 圖形化編程項目促進計算思維發(fā)展的教學實踐案例
為了驗證圖形化編程平臺對計算思維培養(yǎng)模式的有效性,本研究設計了基于OpenBlock圖形化編程平臺的教學實踐案例[5]。本案例共分為三個步驟,分別由兩個過程進行串聯(lián)。首先,通過對游戲項目的規(guī)則進行分析,推導出該游戲項目的執(zhí)行邏輯,學生在從規(guī)則分析步驟到邏輯分析步驟的過程中實現(xiàn)計算思維模型化的發(fā)展,這個過程對計算思維能力的提升起到了主要作用。其次,是從邏輯分析步驟到代碼實現(xiàn)步驟的過程,由于圖形化編程平臺具有易學易用的特點,能夠有效地適配學生的個體差異,使學生更容易獲得完成項目的成功感。
3.1 游戲項目規(guī)則分析步驟
使用比較經(jīng)典的游戲項目作為實踐案例可以很容易引起學生的共鳴,學生可以自主對游戲的運行邏輯進行深度剖析。本項目使用的是經(jīng)典的打磚塊游戲,核心規(guī)則是屏幕上、左、右三邊作為圍欄,一顆小球在圍欄范圍內(nèi)直線運動,當球與圍欄發(fā)生碰撞時,將根據(jù)碰撞角度改變球的運動方向。玩家使用屏幕底部的一塊可以左右移動的擋板,阻止小球從屏幕下方跳出圍欄范圍。圍欄中還有其他障礙物,被小球碰到以后,球會被反彈,障礙物可能會消失。游戲的難度主要由小球的大小和運動速度、障礙物的數(shù)量和強度、活動擋板的寬度和移動速度等因素決定,小球在某些特定條件下,會運動得越來越快,有的障礙物需要小球撞擊多次后才會消失,活動擋板的寬度也越來越小,導致小球的落點的范圍也越來越小。
3.2 游戲項目的邏輯分析步驟
項目中最基本的元素為圍欄、擋板和小球,可以通過計時器、磚塊和積分器為游戲增加競技目標和娛樂性。擋板處于屏幕下方,是游戲中唯一由玩家操控的游戲?qū)ο?。小球碰到任何物體都能夠根據(jù)碰撞的角度進行反彈,當碰到圍欄或擋板時,不記錄反彈的次數(shù),當碰到磚塊時,需根據(jù)反彈的次數(shù)計算游戲的得分,游戲的運行邏輯如圖3所示。
從項目的邏輯分析可以看出,小球只有兩個狀態(tài),一個是“運行”,一個是“碰撞”,而“碰撞”是整個項目的關鍵點。而且,小球是有面積的,球的運動軌跡與磚塊發(fā)生重疊,就代表兩者會發(fā)生碰撞,如圖4所示。
所以,這個游戲的關鍵詞就是“碰撞”,通過“碰撞”可以改變游戲中各種對象的屬性,從而改變游戲的難度。
3.3 圖形化編程完成項目開發(fā)步驟
為了提高編碼效率,降低項目開發(fā)的門檻,本項目基于圖形化編程環(huán)境進行開發(fā),在OpenBlock編程平臺中將圍欄、擋板和小球這三個游戲中的概念定義成為游戲?qū)ο?,并為每個對象設定相應的狀態(tài)。
在小型項目中,對象的移動,一般采用的方法是每一幀都清除整個屏幕,并重繪所有內(nèi)容。所以,定義一個“繪制管理”的對象,專門用于在屏幕內(nèi)繪制圖形,通過不間斷地清除和重繪,使擋板對象“移動”起來。
通過不間斷的重新繪制屏幕,擋板已經(jīng)可以“移動”了。同時,還需要在移動的代碼里加上坐標限制以滿足不能超出屏幕的要求。根據(jù)坐標不斷重復刷新,小球的位置不斷改變,重新繪制后,小球就會出現(xiàn)在新的地方,小球的移動就完成了。
當小球發(fā)生碰撞時,就要進行碰撞計算,以小球當前坐標為原點,將碰撞點坐標發(fā)送給小球,碰撞點的計算公式為“(x+位移x-屏幕寬)/位移x×位移y+y”,可以用編程的方式表達這個公式,如圖5所示??梢酝ㄟ^這段代碼判斷小球是否會發(fā)生“碰撞”,如果沒有發(fā)生,就會返回“false”。
至此,已經(jīng)根據(jù)對項目中問題邏輯的分析,完成了主要功能的開發(fā)。整個開發(fā)過程中,只利用了編程思維,卻沒有使用編程技能,雖然沒有進行編碼,但是已經(jīng)完成了程序的編寫。
4 結束語
圖形化編程工具以其形象化、簡單化和輕量化等特點,降低了學習編程的難度,增加了學習編程的樂趣。相對于較為枯燥、復雜、難懂的代碼編寫,圖形化編程可以讓學習者忽略代碼的編寫過程,而專注于解決項目邏輯的實現(xiàn)問題,將主要精力放在自主探究和創(chuàng)新思維方面。而基于項目的圖形化編程教學,可以使學生從興趣出發(fā),主動梳理問題點,運用自己掌握的知識,分析問題和解決問題,將自己對問題的理解轉(zhuǎn)化成條件、選擇和因果關系,借助圖形化編程軟件完成程序的編寫,在解決問題的過程中,不斷提高學生的計算思維能力,提升自主學習和實踐探究的能力。
參考文獻:
[1] 石云.“計算思維” 帶給高師院校計算機教育的機遇與挑戰(zhàn)[J].中國校外教育,2012(21):167-168.
[2] 孫麗紅.基于計算思維培養(yǎng)的C語言實踐教學研究[J].信息系統(tǒng)工程,2019(8):167.
[3] 蔣國強.基于APP Inventor的高職生計算思維與編程的教學實踐[J].教育觀察,2019,8(32):77-78.
[4] 余波,文榕富.基于硬件的拖動式編程平臺研究與實踐[J].電腦編程技巧與維護,2022(1):56-57,64.
[5] 郁曉華,肖敏,王美玲,等.基于可視化編程的計算思維培養(yǎng)模式研究——兼論信息技術課堂中計算思維的培養(yǎng)[J].遠程教育雜志,2017,35(6):12-20.
【通聯(lián)編輯:王 力】