自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為孩子寫一本編程書系列:學(xué)習(xí)編程從“玩”開始

開發(fā) 開發(fā)工具
“我們要玩的是一個(gè)很厲害的東西,叫編程,只有很聰明的小孩才會(huì)玩哦”,接著我便拿出iPad,給他演示了Playground上的一個(gè)小游戲——通過簡(jiǎn)單的命令,讓游戲中的主人公Byte,抓到一顆寶石。

[[185522]]

我的兒子Ian學(xué)習(xí)編程已經(jīng)快2周了,今天他完成了Playground(注:Playground是蘋果公司推出的一款在iPad上學(xué)習(xí)編程的App)上***部分的學(xué)習(xí)內(nèi)容——“命令 Commands”。他的進(jìn)展讓我頗受鼓舞,雖然我以前也曾教10來歲的孩子學(xué)過編程,但對(duì)于一個(gè)6歲的孩子,老實(shí)說,一開始我并沒有十足的把握。要知道孩子相差一歲,他們的理解和認(rèn)知能力都會(huì)有著天壤之別。而且,我知道自己的孩子并不是什么天才兒童,在與同齡的孩子一起學(xué)習(xí)20以內(nèi)的加減法時(shí),當(dāng)其他孩子都已能熟練地進(jìn)行心算,他卻還需要借助手指甚至腳趾的配合,才能珊珊來遲地給出答案。也正因此,他在編程學(xué)習(xí)方面的進(jìn)步才讓我對(duì)自己的教學(xué)方法以及寫好這本書變得更有信心。

我要玩編程

在決定教Ian學(xué)習(xí)編程之后,我并沒有馬上開始,而是首先考慮如何才能引導(dǎo)孩子對(duì)于編程的學(xué)習(xí)興趣。而我知道,只有“玩”才是孩子們的天性,我需要找到一個(gè)能讓孩子玩編程的教學(xué)方法。為此,我比較了不同的編程語言,以及可以用于編程教學(xué)的網(wǎng)站、APP和其他資源,希望能夠找到那門***玩的編程語言。最終,我選擇了Swift,一方面作為編程語言,它非?,F(xiàn)代且正得到廣泛的應(yīng)用,使用它能夠做出非常美妙的東西,而另一方面結(jié)合Playground進(jìn)行教學(xué),真的可以讓學(xué)習(xí)編程變得非常有趣。

于是,我便在iPad上下載了Playground,備了課(主要是親自完成***章節(jié)的學(xué)習(xí)內(nèi)容,并構(gòu)思如何為孩子進(jìn)行必要的講解),然后挑了一個(gè)周末,把在一旁顯得有些無所事事的Ian叫到了身旁,略帶神秘地對(duì)他說:“爸爸來和你一起玩一個(gè)非常好玩的東西,好嗎?”

聽到“玩”,Ian馬上兩眼放光,湊上前來:“好啊,是什么呀?”

“我們要玩的是一個(gè)很厲害的東西,叫編程,只有很聰明的小孩才會(huì)玩哦”,接著我便拿出iPad,給他演示了Playground上的一個(gè)小游戲——通過簡(jiǎn)單的命令,讓游戲中的主人公Byte,抓到一顆寶石。

Ian的興趣一下子便被這可以控制的生動(dòng)動(dòng)畫調(diào)動(dòng)起來了,搶著也要來嘗試,嘴里不住嚷嚷“我要玩編程,我要玩編程”。

“好的,你先別急,讓爸爸先來教你怎么玩”,就這樣我便開始了我的***節(jié)編程教學(xué)課。

Tips:興趣的引導(dǎo)對(duì)于孩子來說非常重要,城市中的孩子往往會(huì)背負(fù)很重的學(xué)習(xí)壓力,因此,我刻意地淡化了學(xué)習(xí),而強(qiáng)調(diào)玩,希望以此激發(fā)孩子的學(xué)習(xí)熱情。當(dāng)然,如果你只是希望自學(xué)編程或你的教學(xué)對(duì)象是大一點(diǎn)的孩子,則可以用更現(xiàn)實(shí)的編程應(yīng)用場(chǎng)景或?qū)嵗齺砑ぐl(fā)他們的學(xué)習(xí)熱情。

認(rèn)識(shí)編程

在孩子開始玩“編程”(正式教學(xué))之前,我們有必要清楚地向孩子解釋什么是編程?

“編程是編寫程序(命令)的簡(jiǎn)稱,這是你與計(jì)算機(jī)的一種交流方式,通過你編寫的這些命令,可以讓計(jì)算機(jī)去幫助你做很多有意思的事情,比如控制無人飛機(jī)(Playground的***章節(jié)就會(huì)用到類似的例子),做出好玩的游戲,設(shè)計(jì)出無人駕駛的汽車,還能幫助我們?nèi)ピ虑蚵眯械鹊鹊鹊取?rdquo;

Ian似乎對(duì)我所解釋的編程定義很好奇,卻又有些似懂非懂,忙問“那學(xué)習(xí)編程之后是不是也能讓狗去做一些事情呢?”,孩子的發(fā)散思維很值得鼓勵(lì),“我們一般說的編程,是讓計(jì)算機(jī)去做事情,但如果要讓狗做事情,可能就會(huì)更復(fù)雜些,你可能需要讓計(jì)算機(jī)與狗的大腦相連,然后再通過編程來讓狗也聽我們的話,這或許在你學(xué)得更深入后就能實(shí)現(xiàn)哦”

Tips:很多編程書雖然名字是教孩子編程,但往往一上來就會(huì)介紹編程語言,以及它們的語法等等,好像學(xué)編程就是學(xué)一門編程語言一樣。然而,對(duì)于孩子來說,這種做法其實(shí)并不可取。編程與我們今天做的很多創(chuàng)造性工作非常類似,學(xué)習(xí)編程更重要的是學(xué)習(xí)這樣一種思維方式,因此,我們應(yīng)該首先站在更抽象和宏觀的角度來向孩子介紹編程,并同樣以孩子特有的發(fā)散的思維來加以引導(dǎo),而不應(yīng)過早將它與具體的某一門編程語言聯(lián)系起來,這樣反而會(huì)限制住學(xué)習(xí)者的思維,降低孩子們的學(xué)習(xí)熱情和興趣。

讓孩子愛上編程

孩子們的興趣是非常容易轉(zhuǎn)移的,特別是對(duì)年齡更小的孩子來說,要想一件事物始終能吊起他們的胃口很難,他們的注意力往往難以長(zhǎng)時(shí)間集中,因此,你需要控制好教學(xué)的節(jié)奏,循序漸進(jìn)地進(jìn)行教學(xué)。

  • 每天就學(xué)一點(diǎn)點(diǎn):每次學(xué)習(xí)的過程,我都會(huì)控制在20分鐘-30分鐘以內(nèi)(這對(duì)6歲左右的孩子適合,而對(duì)于年齡稍長(zhǎng)的孩子,則可以適當(dāng)將教學(xué)時(shí)間加長(zhǎng)),這個(gè)時(shí)間正好可以完成Playground中一個(gè)獨(dú)立小節(jié)的學(xué)習(xí),包含教一個(gè)知識(shí)點(diǎn),并完成一個(gè)相對(duì)應(yīng)的編程挑戰(zhàn)。而我基本上會(huì)每天或每隔一天給孩子教學(xué)一次,即使孩子興致很高我也不會(huì)一天內(nèi)連續(xù)教授好幾課。因?yàn)槲倚枰⒁环N教學(xué)的節(jié)奏,每天花一點(diǎn)時(shí)間,持續(xù)地學(xué)習(xí)和實(shí)踐,比某一天上2-3小時(shí)的編程課,而后連續(xù)一周不去碰它要有效得多,當(dāng)然也更容易持久。
  • 激勵(lì)與反饋:每次完成一個(gè)小游戲(編程游戲)后,我都會(huì)大聲地將Playground中的那些激勵(lì)的話大聲朗讀出來。大多是“你真棒…”,“做得太好了…”,我也會(huì)自我發(fā)揮加上一些自己的評(píng)論,比如“你很聰明”,“你又進(jìn)步了”,“下一次的挑戰(zhàn)會(huì)更難喲”等等,這常常是每次孩子學(xué)習(xí)完一個(gè)小節(jié)后最有成就感也是***興的一刻,通過努力完成一項(xiàng)挑戰(zhàn),然后獲得贊揚(yáng),并期待著下一次的挑戰(zhàn),這可以說是一個(gè)***的正反饋。
  • 建立自我認(rèn)知:游戲方式的教學(xué)以及適當(dāng)?shù)募?lì)往往能夠維持孩子短期內(nèi)的學(xué)習(xí)熱情,但要讓編程真正成為孩子自己的興趣,卻絕非易事。我的方法便是給孩子貼標(biāo)簽,賦予他“編程小超人”的稱號(hào),并不斷地強(qiáng)化他的這種自我認(rèn)知。比如在生活中我經(jīng)常會(huì)叫他“編程小超人”,并總是對(duì)他編程技藝的增長(zhǎng)大加贊賞,另外,我還特意為他設(shè)計(jì)了一張名片,上面顯著地寫著“編程小超人”的稱號(hào)。他非常喜歡,而當(dāng)他將這些名片發(fā)給同學(xué)和朋友時(shí),就是在不斷強(qiáng)化著自己是編程能手的意識(shí)。當(dāng)然,在學(xué)習(xí)時(shí),他也比以前變得更加積極主動(dòng)了。

Tips:讓孩子自己愿意學(xué)習(xí)是最理想的,在開始階段切勿操之過急,影響孩子們的學(xué)習(xí)興趣。你也可以像我一樣做一張名片或畫一幅畫貼在家里顯著的地方,來鼓勵(lì)孩子們成為編程能手。關(guān)于如何為孩子設(shè)計(jì)一張名片的簡(jiǎn)單方法,我也會(huì)在稍后穿插的設(shè)計(jì)教學(xué)中告訴大家。

準(zhǔn)備工作

雖然我們的目標(biāo)是最終教會(huì)孩子使用Swift語言做出一些有意思的東西,但現(xiàn)在,我們還不需要太多關(guān)注Swift語言本身,因?yàn)樵赑layground中的前面幾個(gè)章節(jié),并不會(huì)出現(xiàn)一句有關(guān)Swift語言的語法,而是更強(qiáng)調(diào)在游戲中學(xué)習(xí)和掌握編程的基礎(chǔ)思維。因此,作為必要的準(zhǔn)備工作,我們要做的僅僅是在iPad上下載Playground這個(gè)APP,并初步了解這個(gè)APP的使用方法。

一臺(tái)iPad

你只需要一臺(tái)iPad,便能使用Palyground教孩子編程了。當(dāng)孩子完成所有課程,并能熟練掌握那些編程思想與技巧后,可以再從iPad轉(zhuǎn)移到個(gè)人PC或Mac上使用那些流行的IDE(集成開發(fā)環(huán)境)去創(chuàng)造更復(fù)雜有趣的應(yīng)用。

Tips:很多家長(zhǎng)對(duì)孩子使用iPad會(huì)很排斥,認(rèn)為總是在玩或影響視力,但我想說,未來的孩子就是生活在這些電子設(shè)備的包圍之中的,盡早讓他們熟悉,并熟練地使用它們,就像過去我們要求孩子掌握寫字技能一樣重要。而學(xué)習(xí)這門課程并不需要在iPad上花費(fèi)太多時(shí)間,Ian每次在iPad上完成一項(xiàng)任務(wù)所使用的時(shí)間,都不會(huì)超過30分鐘。

下載Playground

進(jìn)入App Store,然后在搜索框內(nèi)輸入“Playground”,回車,你便能看到這個(gè)應(yīng)用了。點(diǎn)擊獲取安裝即可。

獲取課程

Playground中會(huì)不斷地推出新的編程教學(xué)課程,而我們所使用的就是名為L(zhǎng)earn to Code的這一套教程。當(dāng)我寫這篇文章的時(shí)候,已經(jīng)出到了第三套課程 Learn to Code 3。我們可以選擇底欄中的“Featured”按鈕,然后選擇我們所需要的課程,在彈出頁面中點(diǎn)擊“Get”下載即可。

下載后的課程,通過點(diǎn)擊底欄上的“My Playgrounds”按鈕便能看到了。點(diǎn)擊任意已下載的課程便可以開始我們的編程教學(xué)了。(下圖中,我下載了Learn to Code的1-3的系列課程,以及Hour of Code課程,它是Code.org所推出的編程一小時(shí)活動(dòng)中,使用Palyground進(jìn)行編程教學(xué)的一節(jié)體驗(yàn)課)

Tips: 由于網(wǎng)絡(luò)原因,部分課程可能下載緩慢,可以在早上網(wǎng)絡(luò)條件良好的情況下進(jìn)行下載。另外,當(dāng)每次Palyground版本更新(增加新功能)后,可能造成部分原有課程無法使用,你可能需要將它刪除,并重新獲取該課程。

界面與功能

安裝完成后,你一定迫不及待地開始使用Playground去探索編程世界了吧,先別著急,Playground雖然非常簡(jiǎn)單易學(xué),但我們還是有必要來簡(jiǎn)單看一下Playground中界面以及那些最常用功能。

界面

Playground中的每一小節(jié)課程都是一個(gè)包含編程挑戰(zhàn)的小游戲,學(xué)習(xí)者通過輸入命令來控制游戲中的主人公Byte,去完成任務(wù)。我們以“命令”這一章節(jié)的***小節(jié)為例,下圖中的任務(wù)目標(biāo)就是要讓Byte去抓到他前方那顆紅寶石。整個(gè)界面分為左右兩個(gè)部分,左邊為學(xué)習(xí)內(nèi)容區(qū)域以及編碼區(qū)域,右面則為可由命令控制的動(dòng)畫演示區(qū)域。當(dāng)學(xué)習(xí)者點(diǎn)擊編碼區(qū)域后,便可輸入命令(也可以通過選擇自動(dòng)出現(xiàn)在底欄中的命令來快速輸入)。當(dāng)完成命令輸入后,便可以通過動(dòng)畫演示區(qū)內(nèi)的“Run My Code”(運(yùn)行我的代碼)按鈕來執(zhí)行你所輸入的命令,并查看動(dòng)畫演示的執(zhí)行效果。如果你順利完成了任務(wù),Playground便會(huì)提示過關(guān)的消息,并引導(dǎo)你進(jìn)入下一小節(jié)的學(xué)習(xí)。

選擇你的英雄

Playground為我們?cè)O(shè)定了三個(gè)不同的主角,他們擁有不同的顏色、形狀和各自鮮明的性格。通過點(diǎn)擊動(dòng)畫界面上的主人公,便可以進(jìn)入動(dòng)畫角色的選擇畫面,挑選那個(gè)你最喜歡的英雄去一起完成后面的挑戰(zhàn)吧。

[[185524]]

常用功能

Playground里提供了很多有意思的附加功能,給你編程的結(jié)果動(dòng)畫錄像,拍一張屏幕截圖,你都可以通過功能菜單進(jìn)行嘗試。而下面這三個(gè)功能,我卻認(rèn)為對(duì)編程教學(xué)有著特殊的幫助:

Reset Page:點(diǎn)擊菜單欄上的省略號(hào)圖標(biāo),會(huì)彈出Tools(工具選項(xiàng)),選擇“Reset Page”便能幫助你快速恢復(fù)到本節(jié)的初始狀態(tài)。這個(gè)功能非常有用,特別在學(xué)習(xí)的初期,孩子們很容易會(huì)將命令寫亂,而通過這個(gè)重置選項(xiàng),便可以快速回到起始狀態(tài),然后重新開始,這大大降低了孩子們出錯(cuò)的成本,他們會(huì)很愿意重新嘗試,而不會(huì)因?yàn)樾枰磸?fù)恢復(fù)代碼而降低編程的樂趣。

Step Through My Code:點(diǎn)擊動(dòng)畫演示區(qū)域左下方的儀表盤圖標(biāo),會(huì)顯示運(yùn)行選項(xiàng)。Step Through(單步執(zhí)行)是程序員們最常使用的調(diào)試手段,而在Playground中我們也可以使用這種方式來運(yùn)行我們的命令,我們將能看到每一個(gè)動(dòng)畫步驟與我們的一行代碼關(guān)聯(lián)起來,這能讓孩子們更方便地調(diào)試他們所寫的程序,也能幫助他們理解那些復(fù)雜的函數(shù)調(diào)用、判斷以及控制邏輯,比如if…else…,Loop、While等等。

Tips: 單步調(diào)試雖然是一個(gè)很好的調(diào)試手段,但我們不應(yīng)該讓孩子們過度依賴這個(gè)功能,因?yàn)樗麄儠?huì)為了避免犯錯(cuò),而選擇每寫一條命令就調(diào)試一次的方法,這樣做會(huì)降低編程的速度,更重要的,孩子們會(huì)減少全局的思考,而這恰恰是編程中非常重要的一種思考方式。因此,僅在學(xué)習(xí)語法或復(fù)雜控制邏輯,以及尋找編碼中錯(cuò)誤的時(shí)候,才使用這個(gè)功能是我的建議。

插入預(yù)設(shè)代碼塊:點(diǎn)擊點(diǎn)擊菜單欄上的省略號(hào)圖標(biāo),會(huì)彈出預(yù)設(shè)代碼塊的選項(xiàng),包含變量賦值、函數(shù)、循環(huán)結(jié)構(gòu)等等。這使得孩子們一開始并不需要去死記那些枯燥的語法和關(guān)鍵字,只需要理解與這些圖標(biāo)所對(duì)應(yīng)代碼塊的作用,就可以輕松地使用它們進(jìn)行編程了。

Tips:預(yù)設(shè)代碼塊很像程序員們經(jīng)常使用的代碼自動(dòng)生成功能,簡(jiǎn)單輸入幾個(gè)英文單詞,或自定義的英文縮寫,便可生成整段預(yù)設(shè)的代碼結(jié)構(gòu)。未來的編程一定會(huì)更加智能,而讓孩子們從體驗(yàn)和熟悉使用預(yù)設(shè)代碼塊或許是一個(gè)很好的開始。

好了我們已經(jīng)萬事俱備,在下一章里,我們將會(huì)從最簡(jiǎn)單的“Commands (命令)”開始一起玩編程。

【本文是51CTO專欄作者“陳逸鶴”的原創(chuàng)文章,如需轉(zhuǎn)載請(qǐng)聯(lián)系作者本人(微信公眾號(hào):techmask】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2017-03-15 15:43:08

編程書初學(xué)者資源

2017-03-15 16:34:47

學(xué)習(xí)函數(shù)命令

2017-03-15 16:17:20

學(xué)習(xí)命令計(jì)算機(jī)

2020-07-10 14:04:17

編程開發(fā)

2023-10-28 15:37:39

Go編程語言

2019-07-02 14:49:46

代碼編程語言

2023-05-03 21:14:05

UbuntuwindowsIntel

2020-04-22 15:22:23

編程開源代碼

2019-01-18 12:18:31

編程語言Python

2023-10-23 11:06:23

微軟Arm咨詢服務(wù)

2018-08-22 10:27:35

編程人工智能機(jī)器人

2017-02-07 09:37:46

2015-03-13 10:40:37

2015-10-09 09:21:01

程序員寫書

2013-04-07 09:36:22

編程學(xué)習(xí)編程編程語言

2018-06-28 11:35:04

Linux開源編程

2015-03-19 14:50:27

編程拖拽編程合格程序員

2021-03-14 18:22:23

套接字網(wǎng)絡(luò)通信

2013-07-08 15:16:25

2018-08-03 19:49:00

編程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)