許雪松
在小學(xué)階段的STEM課程中,編程是其中一個重要的組成部分。STEM教育倡導(dǎo)學(xué)習(xí)的真實性,關(guān)注學(xué)生的生活經(jīng)驗,將生活經(jīng)驗作為學(xué)習(xí)與創(chuàng)造的源泉。我國學(xué)者余勝泉和胡翔將STEM教育與跨學(xué)科理念相結(jié)合,提出了三種跨學(xué)科整合方式:學(xué)科知識整合取向采用基于問題的學(xué)習(xí)模式,生活經(jīng)驗整合取向采用基于項目的學(xué)習(xí)模式,學(xué)習(xí)者中心整合取向采用學(xué)生主導(dǎo)項目的方式[1]。學(xué)生的生活經(jīng)驗是項目式學(xué)習(xí)的重要資源,能夠幫助學(xué)生建立學(xué)習(xí)自信,并在未知和已知間搭建橋梁。
建構(gòu)主義理論認(rèn)為,學(xué)習(xí)是學(xué)生在已有知識和經(jīng)驗的基礎(chǔ)上進(jìn)行的自主建構(gòu)行為。所有的學(xué)習(xí)都涉及原有經(jīng)驗的遷移。只有通過廣泛的遷移,原有的經(jīng)驗才得以改造,才能夠概括化、系統(tǒng)化,原有的經(jīng)驗結(jié)構(gòu)才更為完善、充實[2]。在小學(xué)階段開展編程教學(xué),調(diào)動學(xué)生的生活經(jīng)驗是一種重要的學(xué)習(xí)策略,要求不能片面追求程序的復(fù)雜性,應(yīng)更著眼于學(xué)生的綜合能力發(fā)展,遵循低起點、重普及、分層培養(yǎng)的原則,促進(jìn)學(xué)生真正理解和掌握程序設(shè)計、算法思維,獲得有效并廣泛的能力提升,讓更多學(xué)生享受優(yōu)質(zhì)的普惠教育。
一、依托生活經(jīng)驗,確立項目主題
項目式學(xué)習(xí)是依托生活實際、以學(xué)生為中心的學(xué)習(xí)方式,強(qiáng)調(diào)讓學(xué)習(xí)發(fā)生在有意義、有趣味、有空間的問題情境中,由教師提供一定的學(xué)習(xí)支撐和向?qū)В瑢W(xué)生則通過自主探究、有效合作來完成學(xué)習(xí)。項目式學(xué)習(xí)非常適合小學(xué)的編程教學(xué),因為程序設(shè)計通常有明確的任務(wù)和作品產(chǎn)出,完成程序設(shè)計的過程也是項目式學(xué)習(xí)的過程。學(xué)習(xí)項目的主題選擇應(yīng)考慮下列原則。
一是主題應(yīng)基于學(xué)生年齡特點和生活經(jīng)驗,支持程序的故事情節(jié)設(shè)定。心理學(xué)研究表明:學(xué)生學(xué)習(xí)的內(nèi)容和學(xué)生熟悉的生活背景越接近,他們自覺接納知識的程度就越高。小學(xué)生的認(rèn)知特點是傾向于通過直觀體驗感知事物規(guī)律。基于學(xué)生的生活經(jīng)驗選擇項目能夠幫助學(xué)生降低學(xué)習(xí)的門檻,讓學(xué)習(xí)“活起來”,更快地形成學(xué)習(xí)聯(lián)結(jié),并學(xué)會從編程的角度來理解身邊的問題。
二是項目“故事主線”和“知識點線”要能夠“雙絞成線”并貫穿于整個學(xué)習(xí)過程,與課堂導(dǎo)入、知識探究、拓展提高等環(huán)節(jié)有機(jī)結(jié)合。在教學(xué)過程中引導(dǎo)學(xué)生對項目的情節(jié)、角色以及行為進(jìn)行分析,也就是在幫助學(xué)生檢索已有學(xué)習(xí)經(jīng)驗并發(fā)現(xiàn)學(xué)習(xí)需求,進(jìn)而激發(fā)學(xué)生主動而強(qiáng)大的學(xué)習(xí)動機(jī)。
二、再現(xiàn)生活場景,理解抽象概念
程序設(shè)計中的很多知識點比較抽象,如對于程序結(jié)構(gòu)、遞歸思想、模塊化設(shè)計等,學(xué)生容易感到困難,并產(chǎn)生一定的分化。但這些抽象的概念在生活中都有其原型,教師要善于將生活經(jīng)驗作為轉(zhuǎn)化抽象知識的敲門磚,幫助學(xué)生建立學(xué)習(xí)的信心,使專業(yè)術(shù)語更生活化、人性化,使學(xué)生容易掌握并樂于使用。
1.將程序“演”出來
小學(xué)階段的編程教學(xué)一般可按照“情節(jié)設(shè)計—流程規(guī)劃—程序編寫—作品評價”的步驟進(jìn)行設(shè)計,讓學(xué)生通過觀察、模仿、探究的方式完成學(xué)習(xí)。這種方式教學(xué)時間短、成功率高,但很多學(xué)生的理解程度不夠深,因為坐在電腦前的學(xué)生總是學(xué)習(xí)中的“第三方”。如果教師能引導(dǎo)學(xué)生代入程序中的角色,并為自己設(shè)計表演腳本,將有利于學(xué)生更深刻地領(lǐng)悟程序結(jié)構(gòu)中的邏輯關(guān)系。
如Scratch編程教學(xué)的“水族箱”一課,任務(wù)是“讓小金魚在水族箱里隨機(jī)的位置游來游去”,難點是“隨機(jī)數(shù)”和“在多少秒內(nèi)滑行到水平位置和垂直位置”兩個命令的搭配使用。教師通過教室位置的類比,使學(xué)生理解了通過二維坐標(biāo)能夠確定平面上的點位,接著讓幾個學(xué)生扮演“小魚”。每條“小魚”左右手各有一個骰子,在出發(fā)前兩手同時投擲一次,根據(jù)得到的兩個數(shù)字到達(dá)教室內(nèi)的指定位置。學(xué)生通過這一活動獲得了直觀的感受。接著,教師再告訴學(xué)生:在Scratch中也有一個骰子,就是“在幾和幾之間隨機(jī)選一個數(shù)”,然后讓學(xué)生在Scratch中再現(xiàn)剛剛表演的內(nèi)容。雖然教師沒有操作示范,但學(xué)生都能理解并完成了任務(wù)。又如在“森林運動會廣播”一課,要求通過單擊“開始”按鈕,讓所有“運動員”到指定位置并開始賽跑,比賽結(jié)束后切換舞臺背景進(jìn)行頒獎。在教學(xué)時,教師扮演發(fā)令員(發(fā)揮“按鈕”和“廣播”的功能),請學(xué)生扮演小動物,當(dāng)學(xué)生收到“廣播”后執(zhí)行指令到達(dá)指定位置,這樣就把程序表演出來了。在開始編程后,每個學(xué)生都能理解“廣播”的邏輯意義,并能夠舉一反三,用“廣播”完成了舞臺背景的切換。
2.將語句“講”出來
算法的設(shè)計是程序設(shè)計的關(guān)鍵,表示一個算法可以用很多形式,常用的有流程圖、PAD圖、自然語言等?;仡櫨幊陶Z言的歷程:第一代程序員通過在紙帶上打孔實現(xiàn)用0和1的編程,第二代匯編語言可以通過指令來操作內(nèi)存。從機(jī)器語言到匯編語言是一次偉大的飛躍,它代表著軟硬件的獨立。之后便是過程式語言,并產(chǎn)生了一種新的編程思想,即面向過程的程序設(shè)計。可以設(shè)想,計算機(jī)語言的未來將越來越貼近自然語言,編譯器可以將自然語言轉(zhuǎn)化為機(jī)器可執(zhí)行的語言。
在小學(xué)階段的編程教學(xué)中,很多教師大量引入流程圖,認(rèn)為這樣可以幫助學(xué)生分析程序設(shè)計,提高思維能力。而筆者認(rèn)為,在進(jìn)行算法教學(xué)時,可以結(jié)合“角色”通過自然語言的方式分析程序,這樣更貼近初學(xué)者的認(rèn)知特點。例如,在教學(xué)條件語句時,可以結(jié)合各個角色,讓學(xué)生使用“如果……那么……”造句的方式將程序講出來:如果小車碰到紅色,那么小車停車;如果蒼蠅拍碰到蒼蠅,那么蒼蠅消失并加一分……實踐表明,使用自然語言描述能很好地幫助學(xué)生理解程序結(jié)構(gòu),能“講出來”是學(xué)生能夠理解和掌握的一種外在表現(xiàn)。
3.將概念“拿”出來
這里的“拿”指的是將抽象的概念具象化,讓它可感知、可“觸摸”。馬克思指出,思維的邏輯運動中存在著兩條方向相反的道路,第一條是“完整的表象蒸發(fā)為抽象的規(guī)定”,第二條是“抽象的規(guī)定在思維行程中導(dǎo)致具體的再現(xiàn)”。這兩條道路首尾相接,構(gòu)成“具體—抽象—具體”的否定之否定的過程,也就是人對事物本質(zhì)的完整的認(rèn)識過程[3]。學(xué)習(xí)是從具體到抽象,再從抽象到具體的過程,抽象概念的轉(zhuǎn)化是教學(xué)設(shè)計中重要的一環(huán)。面對復(fù)雜概念的教學(xué),教師可以引入生活中可參照的原型,將概念趣味化、生動化,使專業(yè)術(shù)語富有情感和活力,與可觸摸的世界接軌,幫助學(xué)生更輕松地掌握復(fù)雜概念。
例如,“小貓出題”一課的主要任務(wù)是認(rèn)識并學(xué)會使用變量,并搭配隨機(jī)數(shù)完成計算小游戲。這是“變量”這一術(shù)語第一次出現(xiàn)在小學(xué)生的面前,如果理解不透徹會影響后期的學(xué)習(xí)。在教學(xué)時,一般步驟是先出示范例,通過演示兩個“加數(shù)”的隨機(jī)變化,引出“變量就是像加數(shù)這樣沒有固定的值,隨時發(fā)生變化的量”“給變量賦于一個簡短容易區(qū)分的名稱就是變量名”。這樣的設(shè)計雖然也使用了“加數(shù)”這一數(shù)學(xué)學(xué)習(xí)經(jīng)驗進(jìn)行了類比,但是很多學(xué)生仍然感到比較抽象。這時,就可以參考下面的例子,從學(xué)生們熟悉的生活場景入手教學(xué)“變量”。
教師先在黑板的邊緣貼上“光榮榜”“今日值日”的字樣,并畫好方框,然后開始提問。
教師:光榮榜里的學(xué)號會變嗎?
學(xué)生:會變的,誰表現(xiàn)好,誰的學(xué)號就可以出現(xiàn)在里面。
教師:方框里的數(shù)字會變,但是方框代表的意義會變嗎?
學(xué)生:方框代表的是“光榮榜”,意義不會變。
教師:我們可以把變化的數(shù)量稱為變量,數(shù)字雖然在變,但是數(shù)字代表的意義不會變。
此外,筆者在參加教研活動聽課時,還看到一位教師制作了一個紙盒子,盒子上面標(biāo)注的是“變量名”,通過這種教具演示的方式也能較好地幫助學(xué)生理解“變量”。
三、豐富學(xué)生體驗,應(yīng)用創(chuàng)新提升
編程的目的本來就不是脫離生活實際的,而是用于解決工作和生活中的問題。小學(xué)階段的編程學(xué)習(xí)除了制作小游戲外,也可以讓程序更加生活化。教師可以引導(dǎo)學(xué)生將學(xué)過的知識用于生活,模擬一些生活場景,拓展學(xué)生的生活經(jīng)驗,培養(yǎng)學(xué)生學(xué)習(xí)、運用信息技術(shù)的興趣和意識。
如在自主設(shè)計的“電子點單——鏈表”一課,學(xué)習(xí)目標(biāo)是通過鏈表和變量設(shè)計一款餐館的點單程序,要求能顯示菜名并自動結(jié)算。在完成基本功能后,學(xué)生們積極參與了程序的升級。正因為是基于生活,學(xué)生們提出了很多點子,如:美化界面,能夠支持在一體機(jī)上觸摸點菜,營造溫馨的消費環(huán)境;設(shè)置一個廚師角色,結(jié)合鏈表進(jìn)行隨機(jī)叫賣,并實時說出消費額;能將錯點的菜品刪除并在總價中一并扣除相應(yīng)金額;能設(shè)置會員卡功能,創(chuàng)設(shè)會員卡號,使用會員卡自動打折消費……學(xué)生也遇到不少困難,但也正是這些難點的攻克給他們帶來了快樂,最終呈現(xiàn)出功能多樣、風(fēng)格各異的點單程序。
又如“誰是幸運星——造型的切換”一課,教師和學(xué)生制作了一款抽取學(xué)號的程序。抽簽是班級活動中經(jīng)常用到的,學(xué)生們的作品活潑可愛,在班隊活動中大放異彩。課堂上,教師有意識地激活學(xué)生的相關(guān)生活經(jīng)驗,培養(yǎng)學(xué)生從技術(shù)的角度觀察生活,從生活的角度感悟編程設(shè)計,鼓勵學(xué)生使用獨特的個性化表達(dá)。
在人工智能時代,編程學(xué)習(xí)指向的是進(jìn)一步豐富STEM教育的內(nèi)涵,提升學(xué)生的綜合能力,培養(yǎng)創(chuàng)新型、創(chuàng)業(yè)型人才。在教學(xué)中,讓學(xué)生的生活經(jīng)驗與編程學(xué)習(xí)更好地“碰撞”,會讓更多的學(xué)生愛上編程,體會到創(chuàng)新創(chuàng)造的樂趣。
參考文獻(xiàn)
[1]余勝泉,胡翔.STEM教育理念與跨學(xué)科整合模式[J].開放教育研究,2015,21(4):13-22.
[2]顧援.遷移與課堂教學(xué)[J].教育理論與實踐,2000(10):39-46.
[3]孔易人,汪巖橋.具體抽象律和內(nèi)涵外延反變律及其比較[J].理論探討,1989(3):89-93.
(責(zé)任編輯? ?郭向和)