資訊內(nèi)容
Scratch第十五講:制作新的積木
最近掀起的編程熱,想必大家都知道,作為家長,肯定都不希望自己的孩子輸在起跑線上,自然希望孩子也能學(xué)習(xí)編程,掌握一門技能。但是目前的情形卻有些脫離軌道了,象奧數(shù)一樣的又一次被裹挾的趨勢開始形成。小學(xué)也要開編程課,初中的信息競賽課外班的資料CC哥簡單閱讀了一下,還是相當(dāng)有難度的,估計(jì)公司的程序員也不見得能搞得定。看到這些,作為一個資深的IT人士,CC哥還是挺焦慮的,不希望再把編程變成了又一個套向孩子的枷鎖。
所以CC哥重申一下,對于成人來說,編程是工具,是謀生手段,謀生的手段多種多樣,不是只有編程一種。所以如果你的孩子沒有興趣,完全不要強(qiáng)迫他去學(xué),真心沒有必要。
對于孩子來說,現(xiàn)在的學(xué)習(xí)壓力真的很大,語文,英語,數(shù)學(xué)已經(jīng)是做不完的作業(yè),而且現(xiàn)在趕上課改,幾乎所有的學(xué)科都要考試,CC哥已經(jīng)聽說幾乎所有的初一的小朋友不論好生差生,幾乎作業(yè)都要做到11點(diǎn)。而且,語文,英語,數(shù)學(xué),物理的培訓(xùn)班幾乎是標(biāo)配。這種情況下,再把小孩拉到編程班,您的孩子真的有時間嗎?
CC哥建議,在小學(xué),如果您的孩子語數(shù)英不過關(guān),還是先把時間花在語數(shù)英上吧,這三科學(xué)不好,大學(xué)都考不上,編程沒有任何意義。
另外,編程能力的好壞跟學(xué)習(xí)的早晚沒關(guān)系,編程是一門工具,語言發(fā)展很快,你現(xiàn)在熟悉了pathon,十年之后pathon是否還流行沒人知道。再說就你現(xiàn)在基礎(chǔ)學(xué)科的知識,恐怕在編程里也沒什么實(shí)用價值。所以如果是考慮未來的工作,實(shí)在沒什么意義。
之前的帖子,CC哥就講過了,學(xué)習(xí)編程就是一個能力培養(yǎng),邏輯思維,專注力,創(chuàng)造力。但是這些能力其實(shí)學(xué)奧數(shù)一樣培養(yǎng),效果更好,更實(shí)用。但是唯一的區(qū)別是編程小孩子更有興趣去學(xué),因?yàn)楹猛妫沂钦蚣睿热缱鲆粋€小程序,馬上就可以運(yùn)行,馬上就看到效果,馬上就能有成就感。如果是培養(yǎng)能力,最好的學(xué)習(xí)方式就是自學(xué)加上指導(dǎo),這種教學(xué)方式在國外叫PBL,Problem-Based Learning,也就是基于問題的學(xué)習(xí)方式,而不是傳統(tǒng)課堂。但是目前編程的培訓(xùn)機(jī)構(gòu)為了取悅于家長(家長永遠(yuǎn)希望上課的時間長一些,上課多教些知識),還是慢慢走向了傳統(tǒng)的教學(xué)模式。至于孩子的能力是否培養(yǎng)出來,反而因?yàn)椴缓煤饬浚炊缓鲆暳恕?
CC哥認(rèn)為學(xué)編程對能力培養(yǎng)完全是可以衡量的,就一條:如果孩子學(xué)了編程,語數(shù)英的成績大大提高!那就是有用,如果沒有提升,那就是浪費(fèi)時間精力,趁早放棄!
CC哥的開這個公眾號的目標(biāo),就是給家長和小朋友一個真實(shí)的編程學(xué)習(xí),把編程當(dāng)成一種有益的愛好,通過學(xué)習(xí)編程提升自身的思維能力,專注力和意志力,通過能力的培養(yǎng)來提升基礎(chǔ)學(xué)科的成績。所以CC哥會把培訓(xùn)的重心放在一些編程的邏輯,細(xì)節(jié),還有工具的掌握上,而不是放在做復(fù)雜任務(wù)上。CC哥希望能夠通過培訓(xùn),讓小朋友掌握自學(xué)的能力,并且通過對邏輯和細(xì)節(jié)的專注學(xué)習(xí),提升學(xué)習(xí)能力和學(xué)習(xí)品質(zhì)。之所以不做大任務(wù),一是覺得沒必要,而是覺得小朋友真心沒時間,畢竟是課業(yè)繁重,別把時間耗在編程上,毀了孩子的前途。
制作新的積木:
CC哥真的很佩服麻省的scratch團(tuán)隊(duì),這真是一個偉大的作品,在教育領(lǐng)域具備劃時代意義,讓小朋友的創(chuàng)造性獲得了無限發(fā)揮!
我們搞過編程的都知道:這個制作新積木,就是計(jì)算機(jī)編程的自定義函數(shù)嘛!
函數(shù)是指一段在一起的、可以做某一件事兒的程序。也叫做子程序、(OOP中)方法。
一個較大的程序一般應(yīng)分為若干個程序塊,每一個模塊用來實(shí)現(xiàn)一個特定的功能。所有的高級語言中都有子程序這個概念,用子程序?qū)崿F(xiàn)模塊的功能。在C語言中,子程序的作用是由一個主函數(shù)和若干個函數(shù)構(gòu)成。由主函數(shù)調(diào)用其他函數(shù),其他函數(shù)也可以互相調(diào)用。同一個函數(shù)可以被一個或多個函數(shù)調(diào)用任意多次。(摘自百度百科)
有了這個新積木,用scratch做大型程序就很方便了。CC哥現(xiàn)在開始介紹這個功能的用法:

在更多積木類里點(diǎn)擊制作新的積木,就彈出一個對話框,把選項(xiàng)點(diǎn)開。這就是一個積木的定義,在新積木里輸入文字,積木的名稱,選項(xiàng)中是可以添加的參數(shù)類型。所以新積木首先包括兩項(xiàng)內(nèi)容:名稱和參數(shù)!舉個例子:讓我們做一個畫一個多邊形的積木吧,那么積木名字就可以起:畫一個多邊形。但是畫幾個邊?畫多大呢?這就是兩個參數(shù),幾邊形?和邊長?。

字一定要盡量寫清楚,這是一個好習(xí)慣,否則程序一大,做的積木多了,自己反而看不懂自己做的積木式干嘛的了,而且,大程序基本都是需要團(tuán)隊(duì)協(xié)作的,所以你起的名字還得隊(duì)友一眼就能看懂才好。名字中可以添加數(shù)字參數(shù),字符參數(shù),布爾參數(shù),和文字段,這些以后再一一細(xì)說,今天的例子就是兩個數(shù)字參數(shù):邊長和機(jī)邊形。點(diǎn)擊確定,就生成了一條新的命令。
有了新的指令,我們就需要給指令來做指令內(nèi)部的程序了。

這段指令很簡單,但是注意的是其中移動指令中的參數(shù)和重復(fù)執(zhí)行指令以及右轉(zhuǎn)指令中的參數(shù),需要把你的名稱中的參數(shù)拖入對應(yīng)的位置。
好,新建的指令的內(nèi)容也封裝好了,剩下的就是在程序里調(diào)用了。

調(diào)用非常簡單,只需要把這條新建的指令積木,拖入你的程序里就可以了。
新建積木也是自定義函數(shù),可以大大簡化編程。在很多設(shè)計(jì)里都可以用到。比如一個固定的復(fù)雜運(yùn)算公式:就三角形面積,或者梯形面積。你都可以用新建積木的方式去做。做一個新的積木來算所有三角形的面積,只要輸入底和高。圓形面積:只要輸入直徑。游戲里也有很多地方可以用到自定義的指令,比如之前我們做的有重力干擾的彈跳軌跡,只要給出初始速度和發(fā)射角度,就可以通過自定義指令畫出重力軌跡。
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過郵件及時和我們聯(lián)系刪除
- 上一篇
Scratch 貓坊傳奇 | vol.61 Flappy Cat
《Scratch 貓坊傳奇》是“科技傳播坊”于17年12月推出的系列視頻,目的是記錄各位貓主探險之旅的精彩瞬間,展示大家的奇思妙想,每集視頻長度約5分鐘。
- 下一篇
淺談學(xué)習(xí)Scratch的必要性
一、Scratch簡介 Scratch是由MIT(美國麻省理工學(xué)院)針對5至16歲的兒童和青少年設(shè)計(jì)的可視化程序設(shè)計(jì)語言與開發(fā)環(huán)境,專注于用編程實(shí)現(xiàn)簡單的動畫效果。 Scratch的目的是“創(chuàng)作和分享你自己的交互故事、游戲、音樂和藝術(shù)”,
