吳詒南 莫志恒 黃凱琳
在現(xiàn)階段深圳小學(xué)的信息技術(shù)課程中,諾寶及Scratch都已列入課本教材,而在各校的校本課程中,更有開設(shè)更深難度的Scratch,以及Arduino、Python、NOIP等形式的編程。筆者在近幾年的課堂教學(xué)中,深感編程設(shè)計對學(xué)生思維發(fā)展有較大的促進(jìn)作用, 本文就少兒編程教育對思維能力的影響談?wù)勛约旱臏\見。
一、背景分析
美國前總統(tǒng)奧巴馬曾提出“每天編程一小時”的活動,提倡孩子們從小開始接觸和嘗試編程,奧巴馬自己也是以身作則,寫了一段簡單的代碼。而在更早之前,英國就已經(jīng)將“編程”列入了青少年的必學(xué)課程,隨后一些發(fā)達(dá)國家也紛紛效仿,編程學(xué)習(xí)的低齡化已成為近年來全球教育的新趨勢。
于我國而言,國務(wù)院在2017年下發(fā)的《新一代人工智能發(fā)展規(guī)劃》文件中,明確指出應(yīng)逐步開展全民智能教育項目,在中小學(xué)階段設(shè)置人工智能相關(guān)課程、逐步推廣編程教育,將中小學(xué)編程教育提到了一個較高的位置。更在2018年教育部發(fā)布的《教育信息化2.0行動計劃》文件中,則提出推動落實各級各類學(xué)校的信息技術(shù)課程,并將信息技術(shù)納入初、高中學(xué)業(yè)水平考試中,一些機(jī)器人競賽還有相應(yīng)的加分。
而在深圳,也在近年將諾寶、Scratch等編程課程納入信息技術(shù)教材,學(xué)校更是鼓勵教師開展各式編程課程做為課程標(biāo)準(zhǔn)外的補(bǔ)充,旨在編程教育中培養(yǎng)少兒的邏輯、抽象和創(chuàng)新思維的能力。且小學(xué)生處于身心發(fā)展的關(guān)鍵期,同時課業(yè)壓力相對于初高中學(xué)生而言較小,是學(xué)習(xí)編程的好時期。
二、編程設(shè)計對少兒思維、能力發(fā)展的影響
1.編程設(shè)計鍛煉學(xué)生的系統(tǒng)思維
系統(tǒng)思維就是人們運(yùn)用系統(tǒng)觀點(diǎn),把對象互相聯(lián)系的各個方面及其結(jié)構(gòu)和功能進(jìn)行系統(tǒng)認(rèn)識的一種思維方法。只有系統(tǒng)思維,才能抓住整體,抓住要害,才能不失原則地采取靈活有效的方法處置事務(wù)。整體性原則是系統(tǒng)思維方式的核心。
在信息課堂編程教學(xué)中,對于不同的程序語言,均是要求學(xué)生須在每個程序任務(wù)前進(jìn)行整體的分析:把一個復(fù)雜的大問題,拆解成更可執(zhí)行、更好理解的小步驟(分解)→找出相似模式,高效解決細(xì)分問題(模式識別)→聚焦最重要的信息,忽視無用細(xì)節(jié)(抽象)→設(shè)計一步一步的解決路徑,解決整個問題(算法)。尤其是當(dāng)學(xué)生面對的是復(fù)雜度較高的任務(wù)時,孩子首先需要通過將復(fù)雜任務(wù)拆分為一個個小任務(wù),然后逐個擊破,最終解決問題、完成任務(wù)。在這個任務(wù)拆分又重新組合的過程中,鍛煉學(xué)生須立足于整體,從整體與部分的相互作用過程中來認(rèn)識和把握整體。
2.編程設(shè)計提升學(xué)生的抽象思維
小學(xué)中高年齡段的孩子,處于抽象思維培養(yǎng)的重要啟發(fā)與蓄勢階段,初中階段是抽象思維質(zhì)變期,而高中則是思維成熟期。對于學(xué)齡段的學(xué)生來說,成熟前的思維可塑性大,而在初中思維質(zhì)變期前,做好抽象思維的蓄勢與啟發(fā)準(zhǔn)備至關(guān)重要,而編程設(shè)計,無疑是非常合適的一門課程。
學(xué)生在編程過程中,從具體問題出發(fā),聚焦重點(diǎn),忽略無用的信息,并抽取關(guān)鍵信息。在編程中,包含“語句、方法、類、包、模塊、子系統(tǒng)”等不同層級的抽象,孩子們在編程過程中能鍛煉聚焦關(guān)鍵信息的能力。
3.編程設(shè)計培養(yǎng)學(xué)生縝密的邏輯思維
程序設(shè)計可分為四個步驟:
(1)將復(fù)雜、龐大的問題分解成幾個小問題分別解決(分解);
(2)分解完問題之后,單獨(dú)檢視、思考每一個小問題,搜索解決方案(模式識別);
(3)剖析問題核心,細(xì)節(jié)模糊化(抽象);
(4)確定解決路徑(算法)。
學(xué)生在編程設(shè)計中經(jīng)常以這樣的模式進(jìn)行思考,有利于潛移默化地培養(yǎng)他們自身的思維習(xí)慣,在算法過程中,尤其能鍛煉學(xué)生的抽象思維。編程中只有“0”與“1”——“對”與“錯”,沒有模糊值的存在。在調(diào)試程序的過程中,須不斷對程序合理性、是否符合邏輯進(jìn)行判斷與分析,如果程序無法正常運(yùn)行或運(yùn)行結(jié)果與期望值不符合,就證明算法中出現(xiàn)了錯誤,一旦程序中出現(xiàn)bug,我們就要重新把整個任務(wù)的順序走一遍并關(guān)注每一步的結(jié)果,通過不斷的回溯、調(diào)試和糾錯,直到程序成功運(yùn)行為止。
曾經(jīng)有人舉過一個例子:以“買蘋果”這個日常生活問題為例,普通人的想法是:我要買1斤蘋果,其它的再說。
而編程者的想法是:
(1)我要買1斤紅富士蘋果,我接受的價格是10元/斤;
(2)正常情況下1斤蘋果需要1個袋子放下,以防萬一我會帶2個袋子;
(3)附近有3家水果店,我會依次訪問這3家水果店。
可見,編程學(xué)習(xí)者的思維習(xí)慣,在考慮問題時更為縝密。而在日常生活、學(xué)習(xí)和工作中,運(yùn)用編程的四步驟——即“編程思維”:分解→模式識別→抽象→算法,將大的問題拆分成多層,實現(xiàn)“自上而下,逐步分解,直至理順”。
三、途徑探析
如何在信息技術(shù)編程課程中培養(yǎng)學(xué)生的思維能力?筆者認(rèn)為,可在教學(xué)中采取如下策略:
1.設(shè)計漸進(jìn)式的課程體系
編程教育——尤其是在校本課堂上,教師有一定的自主性,可在課程內(nèi)容的設(shè)計上循序漸進(jìn)、有機(jī)銜接,每個階段的學(xué)習(xí)更有側(cè)重點(diǎn)而避免相關(guān)的重復(fù)。
可參考美國CSTA稍作優(yōu)化后形成的改進(jìn)版本課程體系:根據(jù)該課程體系,對三年級以上的孩子進(jìn)行漸進(jìn)式的編程課程設(shè)計,剛接觸編程的低年段學(xué)生,以圖形化、游戲化的編程為主,重在體驗與樂趣,比如可采用Scratch,借助積木式的編程工具創(chuàng)建動畫和游戲,在過程中逐步掌握控制、模塊、執(zhí)行、變量等編程概念,在后期學(xué)習(xí)中,可與智能硬件相結(jié)合設(shè)計難度更高的項目。
而對于有程序?qū)W習(xí)基礎(chǔ)的四年級以上學(xué)生,經(jīng)過前邊的學(xué)習(xí)能初步具備邏輯能力,可在此時結(jié)合學(xué)生的興趣設(shè)置Arduino或樂高課程,這兩種編程方式可靈活結(jié)合各種硬件、傳感器等設(shè)計好玩實用的作品。但在這個階段教師須注意對學(xué)生的引導(dǎo)與鼓勵,此時不僅要求學(xué)生要有一定的毅力,具有編寫程序的思維能力,還應(yīng)有一定的動手搭建能力。
Scratch、Arduino或樂高課程都屬于圖形化編程的范圍,但后期Arduino或樂高會對學(xué)生的動手搭建能力有更高的要求,如果只實現(xiàn)程序但沒用相應(yīng)的實體作品做為載體,同樣不能視為一個合格成功的作品。
Python代碼編程適合五年級以上的學(xué)生,是一種面向?qū)ο蟮膭討B(tài)類型語言。面向?qū)ο蟮某绦蛩枷肟梢院芎玫劐憻拰W(xué)生的抽象、邏輯思維,代碼可實現(xiàn)復(fù)用與封裝,學(xué)生可用Python制作小游戲或開發(fā)網(wǎng)站等。
2.邊玩邊學(xué)
把Scratch做為少兒編程的起步,圖形化的語言易于孩子接受和使用,且能寓教于樂,讓孩子們獲得創(chuàng)作中的樂趣?,F(xiàn)階段Scratch軟件已開發(fā)Windows系統(tǒng)、蘋果系統(tǒng)、Linux系統(tǒng)下運(yùn)行的版本,軟件中各種造型能迎合該年齡段孩子的興趣,用積木式的圖形拖拽實現(xiàn)程序可操作性強(qiáng),而且Scratch雖然界面非常兒童化但功能卻非常全面,基本的要求都可以滿足,不僅可以應(yīng)用在其它課程中,如在數(shù)學(xué)、物理學(xué)、或者美術(shù)課可以通過Scratch完成某些學(xué)習(xí)目標(biāo),甚至可以使用Scratch編寫各式各樣的小游戲,非常有趣。
筆者在教學(xué)中經(jīng)常以做小游戲為任務(wù),比如大魚吃小魚、接蘋果、打地鼠等,將教學(xué)目標(biāo)與一節(jié)課的重難點(diǎn)有效內(nèi)化在游戲制作的過程中,學(xué)生既學(xué)到了知識,又自己制作出了游戲作品,達(dá)到了邊玩邊學(xué)的目的。
3.創(chuàng)設(shè)自主探索空間
學(xué)生在編程學(xué)習(xí)的起步階段依賴教師是很自然的事情,但如果想要學(xué)生成為學(xué)習(xí)過程的主體, 成為課堂的主體,教學(xué)過程的設(shè)計就必須以學(xué)生為中心為起步點(diǎn),立足于學(xué)生獨(dú)立性的發(fā)展與自主探究,實現(xiàn)教與學(xué)的真正互動。
在編程教學(xué)中,教師在起步階段可手把手帶學(xué)生,一步一個腳印走得比較細(xì)致,但在幫助學(xué)生建立起初步的編程思維,以及掌握軟件的基本指令之后,就應(yīng)放手讓學(xué)生自己進(jìn)行程序的設(shè)計與編寫。
例如在Scratch教學(xué)中,制作打地鼠的小游戲:
(1)教師與學(xué)生共同對“打地鼠”程序進(jìn)行總體的設(shè)計分析,確定程序的流程圖。
(2)教師對學(xué)生進(jìn)行程序的角色分析與動作分析。
出于Scratch的游戲基于角色而設(shè)計的這一點(diǎn)而考慮,角色是游戲的基礎(chǔ),所有動作指令都添加在角色上,每個角色有不同的指令動作,通過各個角色的相互協(xié)調(diào),最終實現(xiàn)預(yù)設(shè)的效果。因此筆者在Scratch教學(xué)中非常重視對程序角色和動作的分析,而學(xué)生在理清這兩個要素后,基本就能把控整個程序的設(shè)計。而完成程序分析之后,筆者就將課堂時間交由學(xué)生自主把握,隨堂進(jìn)行觀察與個別指導(dǎo)。
(3)學(xué)生自主完成編程,教師在學(xué)生完成程序后,回顧講解與分析具體的腳本。
教師在整節(jié)課的過程中,最重要的步驟是與學(xué)生共同完成對程序的總體設(shè)計分析,以及完成角色和動作的分析。但在課堂結(jié)束收取學(xué)生作品的過程中,筆者常常會發(fā)現(xiàn)“與眾不同”的作品——學(xué)生會用幾種不一樣的實現(xiàn)方式來完成程序而不拘泥于一種分析模式,在展示和解析學(xué)生作品的過程中,其實整節(jié)課也完成了讓學(xué)生自主探索的目標(biāo)。
總體說來,教師在編程課堂中,并不是單一的講授與教授者,而是做為引導(dǎo)者與觀察者的角色,程序的設(shè)計、分析及最后的腳本編程及調(diào)試,教師無法替代學(xué)生完成,只能一步一步地引導(dǎo)學(xué)生建構(gòu)思路,最后形成自己的作品。
責(zé)任編輯 邱 麗