譚國聚 孟延豹
前言:《高中信息技術課程標準(2017年版)》的正式發(fā)布,帶來了整個K12基礎教育的信息技術課程的重大變革,信息技術課的課程方向將從原來的重技能、重操作過程轉為重思維培養(yǎng)、重核心素養(yǎng)培養(yǎng),所有的信息技術教師都必須重視這個轉變,適應這個轉變。北京小學通州分校一向重視信息技術課程以及結合信息技術課程的跨學科整合型課程的開發(fā)與實施,在本次改革中又走在了前面,筆者在此特將其部分成果呈現(xiàn)給讀者,希望能夠給朋友們帶來一些啟發(fā)。
2006年,周以真教授提出了“計算思維”(Computational thinking),為信息技術課程的教學改革帶來了啟示。《普通高中信息技術課程標準(2017年版)》已把“計算思維”列入學科核心素養(yǎng),使其成為信息技術核心培養(yǎng)目標之一。那計算思維怎樣反映到小學生的思維品質上呢?
● 問題的發(fā)現(xiàn)
隨著課程的不斷建設和發(fā)展,程序設計教學作為信息技術學科的主要教學內容,成為教育技術專家的共識,以編程為核心的課程改革成為發(fā)展趨勢。
筆者搜索了相關指數(shù),結果令人吃驚。首先搜索少兒編程百度指數(shù),這個指數(shù)依然是上升趨勢,而且,針對Scratch的編程,呈現(xiàn)上升趨勢。但搜索與程序設計聯(lián)系緊密的計算思維關鍵詞,百度指數(shù)顯示沒有被收錄,這說明該關鍵詞的熱度還不是很高。這也證明了整個社會群體對這個概念還沒有足夠的關注,還不是很清楚編程用來做什么,同時也說明,針對編程的學習目的沒有開展相應的教學方法指導。可見,在編程教育非常火爆的背后,缺乏的是學生深度學習課程的能力以及對教法的指導。
● 概念界定
1.周以真教授的計算思維概念
自2006年周以真教授提出“計算思維”后,國內外的學者對計算思維進行了研究,使計算思維的概念得到了不同的發(fā)展與延伸。
2011年國際教育技術協(xié)會(ISTE)聯(lián)合計算機科學教師協(xié)會(CSTA)共同給出了計算思維的操作性定義:計算思維是一個問題解決的過程,該過程包括制訂問題、分析問題、抽象建模、算法設計、優(yōu)化方案、遷移解決方法等六要素。
2.《普通高中信息技術課程標準(2017年版)》中計算思維的概念
《普通高中信息技術課程標準(2017年版)》中對計算思維進行了解釋:“具備計算思維的學生,在信息活動中能夠采用計算機可以處理的方式界定問題、抽象特征、建立結構模型、合理組織數(shù)據(jù);通過判斷、分析與綜合各種信息資源,運用合理的算法形成解決問題的方案;總結利用計算機解決問題的過程與方法,并遷移到與之相關的其他問題解決中。”
2017年版課標對計算思維的解釋是對ISTE&CSTA提出的計算思維操作性定義的補充和完善,筆者以此作為計算思維的界定。
● 基于程序結構講授法培養(yǎng)小學生計算思維
1.基于程序結構講授法的程序設計課程特點
(1)基于項目的課程設計
腳本中涉及的命令模塊,都是圍繞所在的程序結構講授完成,即沒有獨立的命令模塊的講解,而是針對程序結構詳細講授,在結構中包含相關的命令模塊。
(2)基于游戲的課程設計
課程的設置基于小學生喜聞樂見的小游戲,這樣即使涉及復雜的程序、運算的命令模塊,學生也能夠有耐心把這個程序編寫完整。
(3)基于跨學科的課程設計
課程案例設置含有跨學科的內容,是希望讓學生通過信息技術課學習程序設計,并把這個思考的方法轉移到生活中,從而提升學生的計算思維能力。
2.教學案例
(1)Scratch 2.0編程軟件
Scratch是一款面向少年的簡易編程工具,共有十大模塊、100多塊“積木”,使用者只需用鼠標拖動模塊到程序腳本區(qū)就可以編寫程序。
(2)Scratch 2.0程序結構特點
Scratch2.0編程軟件作為一種程序設計語言,具有計算機語言的結構特征。程序腳本是由順序、循環(huán)、選擇以及模塊化程序結構這四種基本結構組成,四種結構既可以單獨使用,也可以相互結合組成較為復雜的程序結構。
①順序程序結構。
順序結構是程序結構中最基本的結構,即程序是按從上往下的順序執(zhí)行。例如,在貓抓老鼠2.0升級版案例中,案例分為五個項目,其中一個項目就是,小貓的移動辦法是通過鍵盤方向鍵的上下左右移動來決定的。
教學片段:
師:我們編寫的程序通過方向鍵控制小貓的移動方向,這是一個順序結構(通過直接講授幫助學生構建程序結構過程)。我們在編寫小貓按照方向鍵方向移動這個順序結構的腳本時,需要哪些命令模塊?
生:在事件中按下xx鍵,然后移動(判斷、分析數(shù)據(jù))。
此環(huán)節(jié)學生能夠組織數(shù)據(jù),但不是很合理,還要通過分析、判斷的過程,形成合理的腳本。通過順序結構的直接講授,學生在一段時間內自然就會形成順序的概念,并且結合順序結構,進行合理的組織和思考,從而逐步提升計算思維能力。
②循環(huán)程序結構。
有些程序需要不斷重復同樣的內容,如在制作不斷切換造型來實現(xiàn)的動畫效果時,需要不斷重復切換不同的造型,這就是循環(huán)結構。循環(huán)結構一般用于重復某段需要不斷重復執(zhí)行的腳本。
在講授的時候,教師可以通過提問幫助學生建構循環(huán)程序結構。例如,在設計模擬循跡的程序時,通過添加色塊模擬傳感器,小貓運動中不停偵測黑色軌跡,從而達到循線的目的。
學生在完成色塊的偵測時沒有問題,可是小貓的循線還是出現(xiàn)了問題,就是原地不動。教師并沒有直接告訴學生用什么結構來解決這個問題,而是通過事實問題的問答來幫助學生了解程序結構,從而解決問題。
教學片段:
師:要使小貓循線不偏離黑色軌跡,需要怎么辦?
學生的答案五花八門:傳感器、移動、判斷……(這些答案沒有回答到點上)
師:小貓循線移動是僅僅移動一步或者幾步嗎?
生:不是,是一直移動。
師:在程序設計中怎么理解一直移動呢?同學們可以點開控制模塊,看一看哪種結構可以幫助我們解決一直移動的問題。(基于事實問題,讓學生構建與計算機之間的聯(lián)系,提升計算思維能力)
學生通過分析判斷,就會想到如果讓小貓重復移動是不是會開始循線?經過調試,學生實現(xiàn)了小貓循線的程序設計。
③選擇程序結構。
選擇結構也稱為判斷結構或分支結構,是在順序結構中提供了程序的分支,也就是說在程序的一個順序流程中加入子程序流程,這樣可以使程序更具交互性。分支結構又可分為單分支結構和雙分支結構。
選擇程序結構是程序設計中非常關鍵的一環(huán)。學生編寫的腳本如果帶有選擇程序結構,這個程序會變得更有趣味。這里不僅涉及到一個結構,還有偵測的命令模塊,需要條件,才可以選擇。
教學片段:
師:我們設計了貓抓老鼠這個程序,通過變量的變化實現(xiàn)了貓抓老鼠。那么怎樣停止程序?
生:點擊紅色按鈕;還有單獨設置一個腳本,按下空格鍵停止全部程序;等等。
師:我們能不能通過單獨寫個腳本,用到判斷的程序結構。(這個程序結構的問題拋出,學生很快想到如果……,條件是什么)
有了這個問題,學生提出諸多條件的問題,如導入另外一個角色,無論是小貓還是老鼠碰到這個角色,都停止全部程序。
師:大家還可思考,能不能把變量作為條件,與選擇程序結構一起用?
最后,教師和學生達成共識,如果變量增加到15這個數(shù)值,那么就結束所有程序。
學生在編寫程序的時候,也許不會過多思考,但是程序結構的拋出,給了學生一個思考的方向,和解決問題的思路。
④模塊化程序結構。
作為圖形化編程軟件,相比Scratch 1.4版本,Scratch 2.0中增添了更多積木模塊,定義好的腳本作為次要程序,在同一個程序中反復調用編寫好的自定義模塊。這樣簡化了程序,編寫的思路也非常清晰。
因此筆者認為,在Scratch 2.0中可以單獨提出一個程序結構,即模塊化程序結構。模塊化程序結構由主程序腳本和定義模塊腳本組成。例如,講解通過程序畫花的過程,定義模塊腳本是一片花瓣、多片花瓣等,主程序腳本就是順序結構,落筆,畫出花。
教學片段:(教師邊演示邊操作,如下圖所示)。
師:我們畫花可以想象有多片花瓣,還有枝干,如果這些內容在一個程序中完成,需要不停地抬筆、落筆、移動步數(shù)、旋轉。而Scratch 2.0中提供了自定義模塊,我們通過模塊化程序結構來完成這個作品,會讓程序簡單可讀,易于理解。
自定義模塊里命名之后,接下來的過程就是移動、旋轉的命令模塊。同樣,一片花瓣畫好,多個怎么畫?同樣的辦法,自定義之后,調用剛才的模塊,其他的部分依此類推。
最后我們在主程序中用一個順序結構,就可以完成一朵花。
在教學實踐中,基于程序結構講解程序設計,降低了學習難度,讓學生在編寫腳本的過程中有了思路。直接講授程序結構的過程就是小學生不斷分析、判斷、解決問題的過程,是知識整體遷移的過程,也是不斷提升計算思維能力的過程。
3.借助評價量表深度認知程序結構
在以往的教學中,講授程序結構是通過一系列的命令模塊,讓學生有感性認識之后,再畫出程序流程圖,讓學生明白是什么程序結構。
而筆者在實踐中,則是通過評價量表學習單進行引導性學習,先給出程序設計的流程圖,讓學生有整體意識分析,再通過程序結構圖進行分析、判斷、收集數(shù)據(jù)等操作,完成程序腳本的編寫。也就是說,先構建模型的思維,再有細節(jié)性的思維,經過長時間這種思維品質的訓練,學生無論是編寫程序,還是解決生活中的問題,都能形成有效的解決方案。
評價量表在引導學生學習程序設計知識的同時,對學生是否完成程序編寫項目進行評定,更重要的是,它通過程序結構流程圖的展示,促進學生計算思維能力的形成。