趙芳
隨著人工智能技術的不斷發(fā)展,編程已逐漸成為一種趨向于全民掌握的普及性能力,同時上升為一種思維方式,能更好地幫助人們應對人工智能時代所面臨的需求與挑戰(zhàn)。在小學階段開設編程課程,對培養(yǎng)學生的學習興趣、計算思維和問題解決能力,引導學生形成終身學習習慣,助力國家人工智能戰(zhàn)略的實現(xiàn),具有重要作用。
一、編程教學的實踐背景
1.政策出臺
2017年,國務院《新一代人工智能發(fā)展規(guī)劃》提出,要廣泛開展人工智能科普活動,在中小學階段設置人工智能相關課程,逐步推廣編程教育。同年,《普通高中信息技術課程標準(2017年版)》和教育部印發(fā)的《中小學綜合實踐活動課程指導綱要》也對編程教學內(nèi)容提出了相關指導說明。編程教學進入中小學課堂勢在必行。
2.校本課程探索
面對這樣的大趨勢,我們學校從2018年開始全面開展編程校本課程,為小學一至六年級學生開設不同類型和難度的編程課。從圖形化到代碼,從闖關到創(chuàng)作,從技能訓練到項目學習,從軟硬件結合到人工智能,采用不同形式、內(nèi)容的組合,由淺入深地進行課程設計。通過兩年的實踐摸索,形成了較為固定的課程架構。
3.疫情復課背景下的制約
編程教學因需要實踐體驗,通常依托信息技術課開展。而受新冠肺炎疫情制約,復課后信息技術課轉移到了普通教室。普通教室中的編程課若想求生,則需要教師對課程重新思考和定位,這是探尋和深挖編程教學價值的一次有利契機。
二、編程教學的價值所向
1.編程與計算思維
計算機科學家周以真最先提出:計算思維本質(zhì)上是一種運用計算機科學的基本概念進行問題求解、系統(tǒng)設計并對人類行為進行理解的思維方式。
2017版新課程標準明確指出“培養(yǎng)學生計算思維”這一核心素養(yǎng)的要求,并加以解讀,即采用計算機可以處理的方式界定問題、抽象特征、建立結構模型、合理組織數(shù)據(jù),運用合理的算法形成解決問題的方案。
對比以上兩種解讀,筆者認為周以真的界定更為宏觀,新課標則更具象地指明了培養(yǎng)計算思維的途徑與方法,而編程教學則是重要載體和手段。正如華東師范大學教授任友群所說:“今天我們重視編程,是在培養(yǎng)學生一種‘計算思維+的能力,讓個體運用計算機科學領域的思想方法,在形成問題、解決方案的過程中產(chǎn)生一系列思維活動和創(chuàng)造實踐?!爆F(xiàn)在的編程教育除了看中思維過程,同時也注重培養(yǎng)創(chuàng)造力。
2.算法與人工智能
算法是編程教學的核心內(nèi)容,也是最能體現(xiàn)計算思維模式的一種表達。而算法的形成是自然語言與計算機語言之間的相互轉換,要建立在二者思維模式的相互理解基礎上。如果計算機能自動習得我們分析問題、解決問題的方法,那就更接近于人工智能的“深度學習”。
3.可遷移性與終身學習習慣
編程教學的重要媒介是計算機語言,小學階段計算機語言的選擇是為了服務學生的認知特點與興趣點,不必追求編程語言的“先進性”。為了讓今天的學習內(nèi)容能服務于學生的未來,學生學習的內(nèi)容應是基礎的、可遷移的。信息時代技術發(fā)展之快,使得學生今日之所學并不能在多年后直接使用,這更從某種意義上督促學生和教師養(yǎng)成終身學習的習慣,這也是編程教學甚至是計算機科學不同于其他學科的一個重要特性。
三、編程教學的實施途徑
1.小學各年級課程規(guī)劃
從學生認知角度出發(fā),設定不同階段目標,開設不同編程教學內(nèi)容。一至二年級以通關形式的圖形化編程為主;三年級結合硬件學習圖形化編程;四年級通過圖形化編程完成小作品創(chuàng)作;五年級學習代碼編程;六年級通過小組合作項目學習進行游戲創(chuàng)編,并加入人工智能相關課程內(nèi)容。
2.教室中的編程課實踐
筆者承擔五年級代碼編程教學任務。按照原先的課程計劃,使用CodeMonkey編程平臺,利用通關方式教學代碼編程,以提升學生分析問題、解決問題的能力。但面對疫情防控要求,走進教室的編程課脫離了計算機這一操作工具,課程的設計重點更傾向于計算思維的培養(yǎng),而非技術的實踐訓練。無論是教學形式、內(nèi)容配比還是目標定位都發(fā)生了一些變化。
變化1:為了能更好地抽離出問題模型,并與實際相結合,筆者加入了不插電游戲環(huán)節(jié),引導學生通過肢體活動模擬機器思維和人類思維解決問題,不僅可以幫助學生將真實世界與虛擬世界進行連接,也可充分激發(fā)他們對編程學習的積極性。還可以此為途徑,聚焦對人類思維方式的拆解與思考,進行自然語言與機器語言的轉化。
例如,通過不插電游戲“畫個圈”理解times循環(huán)中重復次數(shù)與重復單元的概念;通過不插電游戲“與朋友揮手”區(qū)分times循環(huán)與for循環(huán)的區(qū)別。再比如分析任務“讓小猴沿小島吃香蕉”,引發(fā)學生思考“如何沿小島吃到香蕉”,想到“按順序走到每一個小島”,此過程即完成了對自然語言的分析、對人類思維的重審和對目標實現(xiàn)的過程描述,最終轉化為機器語言,使用for循環(huán)解決問題。
變化2:通過CodeMonkey平臺提供的情景創(chuàng)設,有梯度地提出問題,以完成編程知識體系的逐步架構與綜合應用。在教室進行編程教學時,鼓勵學生提出不同想法與算法,并進行對比。
例如過橋問題,小猴正對著河對岸的香蕉,而橋位于二者左側。小猴怎樣才能吃到香蕉?學生只學習過左轉、右轉、前進這三個命令時,他們大部分會運用“左行—上行—右行”的路線吃到香蕉。在教學中引導學生拓寬思路,對比不同線路可能使用到的代碼行數(shù)、可行性、優(yōu)化程度等,從某種程度上也是在滲透人工智能教育的目標——通過編程的方式讓機器“像人類一樣思考”,從而解決實際問題。
四、編程教學的探索與思考
教室中的編程課教學實踐與之前校本課程實踐經(jīng)驗的積累對比,逐漸引發(fā)了筆者對編程教學的一些思考。
首先,編程更容易推動學科融合發(fā)展。代碼編程不可能擺脫數(shù)學、英語等學科知識而成為一門孤立的技術課程,反而更容易通過算法的設計,幫助學生理解數(shù)學概念;代碼的讀寫在一定程度上也能提高學生的英語詞匯量、表達及理解能力。
其次,在人工智能教育的背景下,人們更樂于見到的是成品的產(chǎn)出,而小學階段要想達到這樣的效果確實存在很大困難。教師可以嘗試從項目學習入手,讓學習者體會人工智能的思維模式,以及編程作為工具對項目的助力作用。
最后,高年級學生的認知水平可以使其對自我需求進行初步分析,并進行一定程度的創(chuàng)造。筆者堅持“技術是為創(chuàng)意服務的”這一觀點。小學編程教學中,培養(yǎng)學生的創(chuàng)造力仍是一個具有挑戰(zhàn)的課題,還需更多同行共同努力探索。期待更多的嘗試者與開拓者加入到編程教學的隊伍中來,為小學人工智能教育提供更多思路與可能。3E3E1EE0-62AD-4AF9-AF6B-1CBF79519B84