朱建峰
《綜合實踐活動課程指導綱要》指出,“在不具備實物機器人的情況下,可以利用機器人仿真環(huán)境來模擬機器人的運動和調試使用流程圖編制的簡單的控制程序;初步感受利用程序解決問題的一般過程”。IRobotQ3D機器人在線仿真平臺是基于網(wǎng)絡互動模式設計,以強大的物理引擎作為技術支撐,以機器人為載體的科技創(chuàng)新平臺。利用IRobotQ3D機器人在線仿真平臺,便于組織機器人活動,能讓更多的學生有接觸機器人的機會,同時也有利于競爭交流。本文基于“汽車總動員”項目教學,對其中涉及的學生計算思維的培養(yǎng)方面作了一些思考。
● 情境創(chuàng)設,培養(yǎng)學生計算思維的基石
IRobotQ3D機器人在線仿真平臺提供了“汽車總動員”項目。該項目的任務是:在一個虛擬的物理環(huán)境下,要求學生自己設計搭建機器人,并讓機器人在規(guī)定的時間內從隨機選取的賽道的起點抵達終點。在賽道中還設置了得分標記、快速過彎、飛車路段、能量補充站等,學生完成的得分動作越多,用時越少,得分就越高。
學生在面對這個任務時,首先會問:完成這個項目需要解決多少問題?解決這些問題困不困難?怎樣才是最佳的解決方法?因此,在汽車總動員設置的情境中,要完成任務就需要學生運用計算機科學的基礎概念去求解問題和設計方案。學生會根據(jù)自己的實際情況去搭建自己的小車,考慮用怎樣的傳感器。不同的學生搭建的小車是不一樣的,使用的傳感器也是不一樣的,即使傳感器一樣,其安裝的角度也是不一樣的,正是由于這么多的不一樣,學生才會產(chǎn)生思維的碰撞,才能不斷改進。而在這個過程中,學生對問題的不斷修正是培養(yǎng)他們計算思維的基石。
● 真實的體驗,有效培養(yǎng)學生的計算思維
有效培養(yǎng)學生的計算思維,必須建立在學生實踐的基礎上,如果不給學生思考和實踐的時間與空間,就無法培養(yǎng)他們的計算思維。因此,在實施項目任務時,教師應緊緊圍繞實踐性這個特點,讓學生在解決問題中提高計算思維能力。
現(xiàn)象一:不同路況的不同處理。
在教學中,學生會遇到三種不同的直角轉彎路段(如圖1、圖2、圖3)。學生必須針對這三種路段進行實際的分析,采用不同的實施方案才能順利完成任務(如下頁表1)。
學生通過體驗不同的路段,在思維與現(xiàn)實的碰撞中,提高了計算思維能力。而有了這種能力,學生在遇到類似的情況下,都能非??斓亟鉀Q問題。
現(xiàn)象二:同一路段的不同處理。
在實踐中,學生常常會因為同一情況(如圖4)而采用不同的處理方式,于是有了如下方案(如表2)。
不同的處理方式的效果是不同的,但學生往往滿足于一種解決方案,而忽視更為科學的另外一種方式,所以在教學中,應讓學生在感知體驗自己的解決方案的同時,想一想有沒有比這個更優(yōu)的處理方案,通過實踐比較,得出一個最佳的求解方案。只有讓學生體驗,給予他們足夠的時間與空間,才能讓其充分利用自己的計算思維能力,更有效地解決問題。
● 引導新發(fā)現(xiàn),拓展學生計算思維的深度
問題是思維的起點,也是創(chuàng)新的前奏,它能激活學生的潛在學習要求。學生在玩機器人時常常會進行調試,發(fā)現(xiàn)問題、解決問題是學生靈活掌控IRobotQ3D機器人的必經(jīng)之路。
發(fā)現(xiàn)一:IRobotQ3D機器人在20的速度下運行穩(wěn)定,能夠正常完成任務,而當速度提高到40以上時,會出現(xiàn)轉彎翻車的現(xiàn)象。針對這一問題,學生聯(lián)系生活中的現(xiàn)象,發(fā)現(xiàn)可以從加重底盤、降低重心、縮短軸距等方面去調整機器人的結構。通過改進,機器人順利地完成任務跑完全程,但新的問題又出來了,機器人在跑道邊上取不到得分物,怎么辦?有的學生想出了在機器人身上加裝一根橫梁跨過整個跑道的辦法,但是機器人超過了規(guī)定長度。最終,學生想出了在機器人身上裝一個伺服馬達的辦法,當機器人檢測到有得分物時,就伸出橫梁取得得分物。正是在這樣的問題引導下,學生能不斷改進機器人的搭建,同時也培養(yǎng)了獨立思考、分析問題和解決問題的能力。當學生碰到問題時,他先對這個問題進行抽象,然后對它進行一種重新的計算性表達,接著發(fā)揮自己工程性的思維,考慮這個問題的解決效率是不是高,表達是不是準確,這就是學生計算思維的充分體現(xiàn)。
發(fā)現(xiàn)二:用一個子程序跑完了整個賽段,任務是完成了,但是得分不理想。不同情況的賽道都用同樣的程序去走,有些可加分的地方就得不到分,怎么辦?學生想到了分路段跑,把整個路段分解成若干部分,并給每一部分編程,這樣針對具體的路段就可以具體處理,成績提高很快,學生也很有成就感。在解決問題時,讓學生經(jīng)歷發(fā)現(xiàn)問題、提出問題、利用學科思維方式解決問題的過程,綜合應用知識、技能來分析問題,設計解決問題的方案,并讓計算機完成方案,得出結果,是對學生計算思維最好的錘煉。如果學生多經(jīng)歷幾次這樣的過程,他們的學科思維方式和計算思維能力就會逐步建立、強化并深化。
● 運用合理算法,培養(yǎng)學生創(chuàng)造力
王榮良曾提出,“算法思維能清楚說明問題解決的方法,能將一個復雜的問題轉化成若干子問題并將其進一步簡化,以達到解決問題的目的,這也是科學和設計領域的一項重要技能”。例如,要讓汽車走完全程,學生可以利用多種傳感器來完成,如障礙傳感器(只能沿圍欄走)、灰度傳感器(沿路上的標志線走)、距離傳感器(沿中間走或圍欄走)這三種傳感器都能完成任務,但最佳的永遠只有一個。很多學生通過比較選擇了距離傳感器,因為它在實施任務時最方便可行。對于一個有算法思維的人,在給定有限的條件下,他會既考慮效果,又考慮準確性。
算法是對解決問題的計算過程的描述,也就是對解決問題的具體方法和實現(xiàn)步驟的描述。怎樣把算法的本質進行抽象化呢?這涉及程序問題。一般情況下,汽車走在路中間會有三種情況(如圖5、圖6、圖7)。
學生可以根據(jù)以上三種情況,通過枚舉法的設計思想設計出算法,得出結論,進行程序的設計(如表3)。
建立在理論上設計的程序,還需要用實踐檢驗。在調試中,學生會發(fā)現(xiàn)小車運行時會不斷抖動,這是為什么呢?這時,可以引導學生對算法進行反思和探索,得出結論。如何進一步優(yōu)化算法,消除小車抖動呢?在此基礎上,可以進一步引導學生積極展開思維,留出空白,使其完成新的求解方法,并討論方法,歸納總結,這樣學生的計算思維就得到了很好的鍛煉。在這個程序中,只需要調整一下左右距離的差值,就能讓機器人流暢地跑起來。學生在完成項目時往往會有很多想法,我們需要一步步引導學生不斷否定自己的方法,深化對需求的理解,跳出慣性思維,以此養(yǎng)成對算法不斷優(yōu)化的思維習慣,從而促進其創(chuàng)新思維的形成。
在利用IRobotQ3D機器人在線仿真平臺進行項目教學時,學生的計算思維得到了發(fā)展,學生的算法思維、創(chuàng)新思維也不斷得到提升。就像周以真教授對計算思維的特征總結出的這樣一句話:是人的而不是計算機的思維方式,良好的計算思維養(yǎng)成將成為個人終身受益的能力。