幼教網(wǎng)
全國站
您現(xiàn)在的位置:幼教 > 家庭教育 > 幼兒家庭教育 > 智力開發(fā) > 正文

兒童如何從零開始學(xué)編程

來源:中小學(xué)為師在線 2018-06-12 15:28:17

說兩句

  有人說,未來的世界每個人都要會編程,就像每個現(xiàn)代人都會寫字說話一樣。也有人說,大眾是愚昧的,會編程的人群不可能有很大比例。我也不知道未來什么樣,但是我知道另外兩件事情。一是,程序設(shè)計的邏輯與日常和工作中的推理沒有區(qū)別,遵循和表達(dá)流程,在程序設(shè)計和現(xiàn)實世界中也是一樣的。會編程序的人,更容易相信邏輯,而不是單純的愿望。二是,曾經(jīng),人們認(rèn)為普羅大眾都能說會寫--估且不論說寫的水平如何--是不可能的。中國掃除文盲也并沒有多久,只是大家沉浸在現(xiàn)代化里面一二十年就忘記了原本的樣子。多數(shù)人不識字因而不能讀寫家信,集市有專門的人才負(fù)責(zé)這項工作,這也不過是一百年前的事。如果你認(rèn)為一百年很久遠(yuǎn),那么,我的小學(xué)語文老師就講過,為自己的姨輩掃盲,在鍋臺、墻壁、門窗上都貼上字,什么東西上就貼什么字,她因此得了標(biāo)兵。這應(yīng)該是發(fā)生在建國以后的事情。如今,幾乎沒有人不識字,盡管傳聞漢語有多么難學(xué)。

  劉慈欣先生說,未來的時候,不是撓手機(jī)就能活下來的時代。鄧小平同志說,計算機(jī)要從娃娃抓起。我覺得都挺有道理。

  0. 我的入門

  我學(xué)習(xí)編程入門是在高中的時候,1992年左右,使用的機(jī)是蘋果II、長城6502,單色顯示器,一個或兩個軟驅(qū),高密的是好的,一般是低密的。

  教材是 蘋果-Ⅱ BASIC程序設(shè)計 / 張世英編,北京 : 北京師范大學(xué)出版社, 1985,500多頁的小冊子。

  當(dāng)時最喜歡的有兩項。一個是玩現(xiàn)成的游戲,插進(jìn)軟件,似乎要怎么怎么運行,然后有一堆綠色的方塊在屏幕上扭來動去,有時嘟一聲。同學(xué)中的前輩告訴我,那是兩個武士在持劍格斗。我完全看不出來,而且確實比魂斗羅之類的效果要差很多。另一個更喜歡一些,就是把書上的BASIC代碼錄入進(jìn)去,然后修改,畫出不同的圖形,計算不同的結(jié)果。因為能看到更多可控的因素,所以編程比看不懂的游戲更有意思吧。

  1. 失敗的嘗試

  二貓同學(xué)在大約五六歲的時候,我嘗試了兩次教她編程,不怎么成功。

  第一次的教材是《與孩子一起學(xué)編程》,作者[美] 桑德Warren Sande / Carter Sande,人民郵電出版社, 2010-11。

  從第一章或第三章開始。最初的實驗是編個程序,能算出 1+2 這樣。為避免你誤會我的意思,以為是自動生成考卷之類的,具體地說,代碼就是 print 1+2這么一行。如果想算 3+5,那就手動再改一下代碼。

  對于二貓來講,體驗是神奇的。因為除了她,居然還有這么個東西也能算加法,而且計算結(jié)果和她的一樣。所以,她一直希望,"再算一個幾加幾"。

  然后我嘗試教她循環(huán),這就是失敗的開始。在循環(huán)中,需要要循環(huán)變量,需要有對求和連加的抽象表達(dá)。我忘記了,連 print 這樣一個單詞她以前都沒有見過。這些全都是新的信息,風(fēng)暴一樣灌進(jìn)來。她甚至還沒有學(xué)過連加和乘法。

  后來我們說,今天就到這里吧。印象里,她沒有特別強(qiáng)烈地要求繼續(xù),相信已經(jīng)有些挫敗感了。雖然說,挫敗感是只有一定程度投入才能產(chǎn)生的反應(yīng),但是我不敢繼續(xù)嘗試了。

  另一次編程學(xué)習(xí)的嘗試,是在 ipad mini 里裝了個 logo。logo又稱海龜做圖,基于極坐標(biāo)或平面直角坐標(biāo)系,移動海龜光標(biāo),指揮它畫圖。我用 logo 給二貓畫了個直線,畫了個三角形,畫了個多邊形,逼近了圈,她試了試改其中的幾行,覺得不錯,挺神奇。正準(zhǔn)備用極坐標(biāo)畫個萬花規(guī)圖形,發(fā)現(xiàn)二貓開始禮貌地表達(dá)興趣。

  萬花規(guī)作圖,需要極坐標(biāo)方程,需要一堆代碼。更重要的,二貓告訴我,其實從畫三角形開始,一圈是360度,每個角應(yīng)該多少度,甚至走多少步在平面直角坐標(biāo)系上的含義,這些都是全新的知識。直角坐標(biāo)系的概念,直到最近2017年初她讀可怕的數(shù)學(xué)系列,才學(xué)到了,自覺用在了 scratch 中,極坐標(biāo)可能仍然沒有概念呢。

  后來二貓幾次主動提出希望再玩 python,我沒有想好怎么教學(xué),還是沒帶她玩。

  如果沒有學(xué)過加減法,如果沒有學(xué)過角度,那么 python 和 logo 就沒法開始。那么,是不是沒有這些基礎(chǔ),就任何程序也不能編呢?到底具備什么樣的基礎(chǔ)才能開始學(xué)習(xí)編程和邏輯。

  約十年前,李記者、典同學(xué)、我曾經(jīng)討論過很多輪,需要具備什么樣基礎(chǔ)或者特性的人,才能成長為優(yōu)秀的程序員。其中,我提到過一個游戲《不可思議的機(jī)器》,設(shè)計路線讓小老鼠躲開貓的追擊。有針、彈簧墊、氣球這樣的道具,它們在一定程序仿真的物理引擎上交互。由玩家觸發(fā)開始以后,道具一頓亂跳,最后貓失敗老鼠跑掉。這個游戲有編程的基本思想,計劃、條件、隱含的循環(huán)。但是,這個游戲并不需要任何數(shù)學(xué)基礎(chǔ)。所以,不需要數(shù)學(xué)基礎(chǔ)的編程,應(yīng)該是可能的。

  《不可思議的機(jī)器》并不適合兒童編程教學(xué)。一方面是因為難度偏好,另一方面離程序設(shè)計最終功利的目的太過遙遠(yuǎn),從游戲里不太容易直接看出與編程思想的對應(yīng),我擔(dān)心這樣的技能向真實編程移植可能相當(dāng)困難。

  2. 點燈機(jī)器人 (Lightbot Hour'14, Lightbot Hour)

  最初我在網(wǎng)上某篇文章里看到 lightbot 介紹,討論的就是兒童編程。這篇文章一時沒有找到,類似于[《編程機(jī)器人》:胸中有塊壘,大腦漲智慧 - 觸樂]。

  lightbot看名字的暗示,程序員應(yīng)該1小時左右通關(guān)吧。實際上,我的體會,比那還要難一些。

  我和二貓是在 ipad mini 上玩的這個游戲,剛剛注意到,還有 flash 版本可以在PC機(jī)上玩,在 bing 上搜索 點燈機(jī)器人,有不少。

  玩家為一個機(jī)器人制定行動計劃,操作它在方塊場地行走,目的是把所有的燈都點亮。我玩的兩個版本都是8+6+6關(guān)。

  2.1 其中第一部分8關(guān),只使用基本操作,包括 左轉(zhuǎn)、右轉(zhuǎn)、前進(jìn)、跳、點燈/滅燈。其中點燈和滅燈是同一個動作,如果把燈的狀態(tài)由滅/亮改為亮/滅。這符合演繹思想的基本路線,由幾個基本元素,經(jīng)過幾個基本規(guī)則的組合,構(gòu)造出更復(fù)雜的行動--行動的結(jié)果,正是意圖的目標(biāo)。這是分解,考察如何把意圖分解為若干步驟。python 和 logo 的問題在于,涉及過多的基礎(chǔ)知識,因此入門所需要的元素也就很多。lightbot限制動作只有上述5個,是這個游戲定義的,所以不需要基礎(chǔ)知識。從現(xiàn)實來的隱喻--機(jī)器人會走、會點燈,單純所以容易掌握。就轉(zhuǎn)向而言,只提供左轉(zhuǎn)、右轉(zhuǎn),限制了機(jī)器人轉(zhuǎn)向的可能只有2種,而不會是360種,所以不需要使用 轉(zhuǎn)向(左|右) 這樣帶參函數(shù)或動賓 (動補(bǔ)?) 的復(fù)雜結(jié)構(gòu),可以枚舉為 左轉(zhuǎn)、右轉(zhuǎn)。

  在這一部分中,玩家能夠掌握 1.順序執(zhí)行的概念,2.在每個步驟中可以選用若干語句 (向前、左轉(zhuǎn)、右轉(zhuǎn)、跳、點燈/滅燈) ,3.這些語句只有在特定的上下文中才具有意義,比如在不是臺階的地方不能跳,臺階處不能向前,燈是開關(guān)量。

  這些都是某些人在學(xué)習(xí)程序設(shè)計中遇到的障礙,并不是像某些一學(xué)就會的程序員認(rèn)為的那樣是顯而易見的。由原本生活所帶來的各種刻板印象支配我們對新學(xué)習(xí)的知識的猜測路線,信息和手冊往往又并不充分,所以猜錯幾次非常正常。由于程序設(shè)計與現(xiàn)實的差異,不容商議地必須完全正確,不少人錯到不知道如何繼續(xù),挫敗感很強(qiáng)。所以,設(shè)計 少量元素+簡單規(guī)則,推演出更豐富的結(jié)果,很適合用于了解熟悉構(gòu)造性的思路。而且,又剛好不是像某些人認(rèn)為的平面幾何那么難 (初中卻學(xué)得不錯?),所以更佳。雖然我猜,lightbot 就等價于弱的平面幾何,在抽象代數(shù)的意義上上。這是良藥何需苦口的典型范例。

  2.2 第二部分6關(guān),需要使用子程序 (或稱過程?)。逼近或誘導(dǎo)玩家使用子程序的原因是,原來的主程序中,能夠放置行動卡片的槽位有限。如果用"笨"辦法,那么步驟數(shù)量多于槽位,游戲不能成功。比如向前走4步點4盞燈,按基本操作,就是 走1步、點燈、走1步、點燈、走1步、點燈、走1步、點燈,需要8個槽位;按子程序的辦法,可以是 主程序中為 P1、P1、P1、P1,4個槽位,P1中是走1步、點燈,2個槽位。游戲在這一關(guān)里設(shè)定為,主程序只有4個槽位,按基本操作的8個步驟就過不了關(guān)。

  在第二部分的開頭,有圖示和文字指導(dǎo),表示P1可以像基本操作一樣作為卡片放在主程序中,并把P1展開表示是步驟的一部分。

  在 lightbot 中,P1子程序入口和出口都不帶參數(shù)。我認(rèn)為這是對一般編程的合理簡化,利于掌握。

  2.3 第三部分6關(guān),涉及遞歸,P1可以調(diào)用P1。在 lightbot,很令我意外的,沒有循環(huán),只能使用遞歸完成迭代。典同學(xué)會說,這才是合理的思維方式吧。同樣由于槽位的限制,如果不使用遞歸,就不可能完成任務(wù),所以誘導(dǎo)玩家掌握遞歸思想。

  沒有遞歸跳出條件,當(dāng)所有燈都點亮以后,游戲就通過此關(guān)。由于不需要遞歸的跳出條件,也就沒有變量和循環(huán)變量存在的必要。

  游戲通關(guān)以后可以申請電子證書,看起來花樣繁復(fù),很值得一顯擺的樣子?梢灾付ò涯愕拿钟≡谏厦,不過似乎不支持漢字。

  3. Robot School

  單位黨支部組織生活,會后的路上同事們和蹭車的我學(xué)術(shù)交流。朱老師告訴我還有個游戲也很好,Robot School,也是在 ipad mini 上玩的。

  相關(guān)推薦:

小升初試題、期中期末題、小學(xué)奧數(shù)題

盡在奧數(shù)網(wǎng)公眾號

   歡迎使用手機(jī)、平板等移動設(shè)備訪問幼教網(wǎng),幼兒教育我們一路陪伴同行!>>點擊查看

  • 歡迎掃描二維碼
    關(guān)注幼教網(wǎng)微信
    gh_5735a1f9f07c

  • 歡迎掃描二維碼
    關(guān)注奧數(shù)網(wǎng)微信
    ID:aoshu_2003

熱點專題

  • 幼兒園教學(xué)課件:奇特的建筑
  • 幼兒教學(xué)課件:小魚的夢
  • 河頭幼兒園“幫水寶寶搬家”

[幼兒園英語課件]幼兒園英語課件:認(rèn)識時間

[幼兒園英語課件]幼兒園英語課件:A Apple

幼升小

幼升小資訊

幼升小政策

幼升小擇校

幼升小指導(dǎo)

學(xué)區(qū)房

幼升小真題

重點小學(xué)

上海小學(xué)

廣州小學(xué)

深圳小學(xué)

成都小學(xué)

武漢小學(xué)

南京小學(xué)

北京一類幼兒園

海淀區(qū)幼兒園

西城區(qū)幼兒園

東城區(qū)幼兒園

朝陽區(qū)幼兒園

其他區(qū)幼兒園

幼兒園資訊

教師園地

幼兒園說課稿

幼兒園教案

教學(xué)論文

幼兒園課件

幼兒園教師心得

幼兒園評語

少兒教育

胎教

早期教育

入園必讀

潛能開發(fā)

藝術(shù)培養(yǎng)

家庭教育

兒童樂園

科普知識

圖書推薦

睡前故事

成語故事

童話故事

唐詩宋詞

孕育指南

時尚媽咪

健康寶貝

美食廚房

趣味數(shù)學(xué)

健康飲食

專家答疑

-->