顏鼎 江蘇省南京市鼓樓區(qū)教師發(fā)展中心
算法(Algorithm)是指解題方案的準(zhǔn)確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統(tǒng)的方法描述解決問題的策略機制。信息科技學(xué)科作為一門以“解決問題”為學(xué)習(xí)目標(biāo)之一的學(xué)科,具有鮮明的算法特征:關(guān)注學(xué)生的思維過程、過程架構(gòu)與創(chuàng)新品質(zhì)的培養(yǎng)。在新課標(biāo)背景下,在課程實施過程中,如何有效培養(yǎng)學(xué)生的算法,是中小學(xué)信息科技學(xué)科教師關(guān)注的重點內(nèi)容。
適合兒童的編程平臺具有明確的任務(wù)主線,項目目標(biāo)清晰,其作品可在短期內(nèi)通過一定的程序達(dá)成。作為一種顯性的、具有算法思維特征的內(nèi)容,編程平臺具有門檻低、模塊化、封裝化的特點。因此,筆者認(rèn)為,信息科技教學(xué)的算法內(nèi)容,可依托兒童編程課程實現(xiàn),通過教師的合理引導(dǎo),學(xué)生可以進(jìn)行程序的編寫、作品的表達(dá)。借助編程平臺的設(shè)計,信息科技教師可以明確算法的基本設(shè)計路徑,以具體的內(nèi)容載體,進(jìn)行初期的教學(xué)設(shè)計嘗試。
在課堂教學(xué)過程中,基于算法進(jìn)行的教學(xué)設(shè)計具有鮮明的特征。本文以兒童編程課程為例,探索在信息科技學(xué)科中基于算法的設(shè)計模式。
新課標(biāo)強調(diào)任務(wù)推進(jìn),在兒童編程課程的教學(xué)設(shè)計中,算法關(guān)注具有實際意義的問題,以問題求解的過程作為教學(xué)的導(dǎo)向,進(jìn)而推動教學(xué)進(jìn)程。在基于算法的教學(xué)設(shè)計中,教學(xué)課件、學(xué)件及作業(yè)形式等,都應(yīng)圍繞算法的演進(jìn),進(jìn)行針對性的教學(xué)設(shè)計。
(1)原設(shè)計?!毒幊誊浖D章》一課的教學(xué)重點為兒童編程平臺畫筆模塊中的“圖章”“清除”命令,涉及兒童編程平臺“畫筆”“外觀”“動作”等模塊的內(nèi)容。在常規(guī)課的教學(xué)過程中,教師一般采用以下的流程進(jìn)行教學(xué):介紹“圖章”和“清除”命令;演示“圖章”程序的搭建方法;學(xué)生練習(xí)編寫“圖章”命令的程序。
(2)思考焦點。在此過程中,在教師沒有給予學(xué)習(xí)情境的情況下,學(xué)生為何要進(jìn)行“圖章”的學(xué)習(xí)?學(xué)習(xí)“圖章”以后能做什么?哪些情況下需要使用“圖章”模塊?這些問題都未能進(jìn)行有效的設(shè)問,因此學(xué)生對“圖章”的算法是缺乏心理預(yù)設(shè)的。在實際上課時,學(xué)生僅僅是在模仿教師的程序搭建過程,而并沒有進(jìn)行有效的自我構(gòu)建的過程。這樣的學(xué)習(xí)過程,是機械學(xué)習(xí)的技能模仿,缺乏必要的算法過程。
(3)改進(jìn)型設(shè)計。在基于算法的“圖章”教學(xué)過程中,首先確定教學(xué)重點為“圖章”程序的自然語言表達(dá)。選擇從生活中提煉具有實際意義的活動為任務(wù)目標(biāo),將問題的解決作為推進(jìn)教學(xué)過程的導(dǎo)向主線。在此基礎(chǔ)上,以問題的逐步解決來分層進(jìn)行教學(xué)重點的學(xué)習(xí),通過具體的活動載體來承載學(xué)習(xí)任務(wù)。
在“圖章繪百花”一課中,首先確定算法主線,進(jìn)行與此相關(guān)的問題組件設(shè)計,層層推動任務(wù)行進(jìn)路線,進(jìn)而將認(rèn)知內(nèi)容得以具體化。
算法設(shè)問:教師展示只有一個花瓣的圖例,詢問學(xué)生,可否稱之為花朵?學(xué)生質(zhì)疑,花瓣數(shù)量不夠→問題產(chǎn)生:如何能在較短時間內(nèi),形成一朵完整的花?→師生進(jìn)入新授環(huán)節(jié)。
算法析問:一花一世界→解決花瓣的瞬間復(fù)制問題;五彩爛漫時→解決花朵的變色問題;動態(tài)花精彩→解決花朵的循環(huán)旋轉(zhuǎn)問題。
算法追問:導(dǎo)入不同角色的花朵,促發(fā)學(xué)生思考如何能讓這些花朵達(dá)到心儀的動作方式?→學(xué)生探索實現(xiàn)途徑→通過修改程序、嘗試程序積木的方式來進(jìn)行任務(wù)的達(dá)成。
算法拷問:學(xué)生總結(jié)四個任務(wù)的實現(xiàn)過程,梳理出程序思考的過程,繪制出共性的流程圖,并結(jié)合今天的主題進(jìn)行兒童編程平臺的功能鏈接,從而加深意義學(xué)習(xí)的過程。
在基于算法的教學(xué)設(shè)計過程中,學(xué)生帶著算法思維,進(jìn)行有目的的任務(wù)推進(jìn)活動。在導(dǎo)入部分,算法的實施目標(biāo)明晰、合理,符合兒童認(rèn)知規(guī)律;在解決問題部分,任務(wù)層層推進(jìn),推動學(xué)生不斷進(jìn)行有關(guān)算法的思維過程,從四個顯性問題的解決中,潛移默化地學(xué)習(xí)了隱性的知識內(nèi)容。
算法分解是適應(yīng)義務(wù)教育階段學(xué)情的要求,學(xué)生不僅能夠理解算法的過程,還能夠通過具體的實例對算法進(jìn)行分解,明晰每一個部分的具體意義。通過回溯算法等方式,將任務(wù)進(jìn)行逐步的拆解,再根據(jù)實際情況進(jìn)行認(rèn)知內(nèi)容的疊加,從而形成明晰的結(jié)構(gòu)主線。
(1)原設(shè)計。兒童編程平臺中“旋轉(zhuǎn)方式”模塊的學(xué)習(xí)是常見的內(nèi)容,對應(yīng)的是有關(guān)動作方式的算法內(nèi)容。常見的設(shè)計方式是:教師演示工作對象的旋轉(zhuǎn)過程,指出實現(xiàn)旋轉(zhuǎn)的程序模塊,引導(dǎo)學(xué)生進(jìn)行相關(guān)的練習(xí)。
(2)思考焦點。在常規(guī)的教學(xué)過程中,工作對象自身缺乏運動意義,算法與對象的旋轉(zhuǎn)只有技術(shù)關(guān)聯(lián),缺乏意義關(guān)聯(lián)。在學(xué)生完成一個任務(wù)后,沒有對程序進(jìn)行分解的路線支架,所以學(xué)習(xí)過程機械單調(diào),難以深入。
(3)改進(jìn)型設(shè)計。教師將“旋轉(zhuǎn)方式”作為一種角色運動的程序支架,讓實物的旋轉(zhuǎn)和程序同期出現(xiàn),讓學(xué)生思考角色和程序之間的關(guān)聯(lián)。在完成了第一組“角色+程序”的組合之后,再出示另外的“角色+程序”組合,給學(xué)生充分的回溯思維的過程,以達(dá)到知識遷移的目的。
算法前置:從一個花瓣變成十個花瓣的腳本入手,分析腳本與動畫之間的關(guān)系。
算法研讀:一個花瓣是如何變成十個花瓣的,將猜測的結(jié)論通過程序來進(jìn)行驗證,最終得出先“向左/右旋轉(zhuǎn)360/10度”,再將“復(fù)制”“粘貼”的過程“重復(fù)10次”后,可以得到十個花瓣的結(jié)論。此時,留下設(shè)問:“旋轉(zhuǎn)角度”和花瓣數(shù)量之間有怎樣的聯(lián)系?
算法鏈接:依據(jù)上面活動的結(jié)論,提出“數(shù)字與邏輯運算”中的關(guān)聯(lián)。課件中繼續(xù)出現(xiàn)四瓣花、五瓣花、七瓣花,讓學(xué)生對相應(yīng)的腳本進(jìn)行自然語言的表達(dá)。至此,突破本課中的教學(xué)難點:旋轉(zhuǎn)角度和花瓣數(shù)量之間的聯(lián)系。
在新課標(biāo)背景下,在基于算法的教學(xué)設(shè)計過程中,教師將著力點從講解程序的編寫過程,改變?yōu)樽寣W(xué)生分析程序的組合原理。通過每個花瓣的旋轉(zhuǎn)角度的分析,學(xué)生可以理解到“數(shù)字和邏輯運算”模塊中的運算的自然意義。學(xué)生在對實物與腳本進(jìn)行對應(yīng)分析后,加深了對程序本身的理解,也鞏固了思維過程的嚴(yán)密性。
新課標(biāo)要求對算法實際問題求解,在解決問題的策略中,具有多途徑和一定的開放性,鼓勵學(xué)生能夠在合理的情況下,通過多種方式來解決實際問題。
(1)原設(shè)計。在《定義過程》一課中,常規(guī)的設(shè)計方式一般采用以下教學(xué)流程:教師演示一個正方形的繪制方式→講解如何用定義過程的方式繪制正方形→讓學(xué)生練習(xí),如何通過定義過程的方法繪制正方形→教師演示如何通過“copy”與定義過程組合,繪制出較為復(fù)雜的圖形→學(xué)生進(jìn)行拓展練習(xí)。在實際教學(xué)中,常常出現(xiàn)學(xué)生只會畫正方形組成的圖形,而無法遷移到其他圖形的情況。
(2)思考焦點。在本節(jié)課設(shè)計中,程序編寫教學(xué)難度跨度較大。教師在教學(xué)中,易采用較為保守的講授式教學(xué)模式。但是此教學(xué)過程突出的問題在于學(xué)生知其然,不知其所以然,導(dǎo)致學(xué)習(xí)過程模仿的痕跡明顯,沒有必要的遷移和拓展過程,導(dǎo)致缺乏個性化的作品呈現(xiàn),不符合新課標(biāo)的理念。
(3)改進(jìn)型設(shè)計。在基于算法的教學(xué)設(shè)計中,注重從學(xué)習(xí)任務(wù)中提取出具有變量特性的元素,將其應(yīng)用于學(xué)習(xí)過程,以此開展構(gòu)建個性化的作品。
算法解析:從卡通兔導(dǎo)入,分析頭部是如何演變出耳朵的?(分析其組成,找出其中的變量)
算法體驗:在分析出圓形的組合規(guī)律后,進(jìn)行基于圓形的圖形繪制,嘗試出多圓組合的形式。
算法指導(dǎo):引導(dǎo)學(xué)生分析“利用定義好的基本圖形,可以畫出這樣的一組圖形嗎?”,從課件中讓學(xué)生分析組成復(fù)雜圖形的變量,再給學(xué)生思考的空間,由點及面,進(jìn)行多層次的變量定義。
算法實踐:定義圓形→圓形組合;定義橢圓形→定義橢圓形組合。
算法再構(gòu):分析多定義命令的程序。
算法組建:定義兩個基本圖形→繪制正方形、三角形組合的復(fù)雜圖形,并進(jìn)行自我喜好的作品加工。
算法迭代:引導(dǎo)學(xué)生在作品中找出共性的內(nèi)容,反思自己的作品,進(jìn)行更富有個性化的圖形繪制,繪制兔子的嘴巴、鼻子、領(lǐng)結(jié)等部位。
基于新課標(biāo)算法的教學(xué)設(shè)計注重了變量引發(fā)的變式,及變式帶來的學(xué)生個性化的問題解決方案。在基于算法的“定義過程”的設(shè)計中,教師將更多的關(guān)注點放在了引導(dǎo)學(xué)生思考,讓編程軟件真正成為個性化的創(chuàng)作工具。
基于新課標(biāo)的算法教學(xué)設(shè)計,將學(xué)習(xí)過程進(jìn)行了項目化的提升,實施中要關(guān)注以下幾點:第一,算法各要素的融合方式。算法過程之間是相互依存、相互促進(jìn)的關(guān)系。如果只關(guān)注分析問題,而不進(jìn)行必要的數(shù)值邏輯計算,那解決問題的途徑只能是紙上談兵,無法落地。第二,避免陷入過于復(fù)雜的算法之中。不可忽視問題框架的設(shè)計,要在合理合情的情境下進(jìn)行,在同等條件下,尋求最佳的解決途徑、最佳性價比。第三,引導(dǎo)學(xué)生用信息科技學(xué)科思維全面認(rèn)識和思考。算法是信息科技學(xué)科的靈魂,作為教師,要能夠積極地喚起學(xué)生多角度的遷移能力和拓展意識,避免封閉的、線性的認(rèn)知習(xí)慣。