資訊內(nèi)容
Scratch第十五講:制作新的積木
最近掀起的編程熱,想必大家都知道,作為家長,肯定都不希望自己的孩子輸在起跑線上,自然希望孩子也能學習編程,掌握一門技能。但是目前的情形卻有些脫離軌道了,象奧數(shù)一樣的又一次被裹挾的趨勢開始形成。小學也要開編程課,初中的信息競賽課外班的資料CC哥簡單閱讀了一下,還是相當有難度的,估計公司的程序員也不見得能搞得定。看到這些,作為一個資深的IT人士,CC哥還是挺焦慮的,不希望再把編程變成了又一個套向孩子的枷鎖。
所以CC哥重申一下,對于成人來說,編程是工具,是謀生手段,謀生的手段多種多樣,不是只有編程一種。所以如果你的孩子沒有興趣,完全不要強迫他去學,真心沒有必要。
對于孩子來說,現(xiàn)在的學習壓力真的很大,語文,英語,數(shù)學已經(jīng)是做不完的作業(yè),而且現(xiàn)在趕上課改,幾乎所有的學科都要考試,CC哥已經(jīng)聽說幾乎所有的初一的小朋友不論好生差生,幾乎作業(yè)都要做到11點。而且,語文,英語,數(shù)學,物理的培訓班幾乎是標配。這種情況下,再把小孩拉到編程班,您的孩子真的有時間嗎?
CC哥建議,在小學,如果您的孩子語數(shù)英不過關(guān),還是先把時間花在語數(shù)英上吧,這三科學不好,大學都考不上,編程沒有任何意義。
另外,編程能力的好壞跟學習的早晚沒關(guān)系,編程是一門工具,語言發(fā)展很快,你現(xiàn)在熟悉了pathon,十年之后pathon是否還流行沒人知道。再說就你現(xiàn)在基礎(chǔ)學科的知識,恐怕在編程里也沒什么實用價值。所以如果是考慮未來的工作,實在沒什么意義。
之前的帖子,CC哥就講過了,學習編程就是一個能力培養(yǎng),邏輯思維,專注力,創(chuàng)造力。但是這些能力其實學奧數(shù)一樣培養(yǎng),效果更好,更實用。但是唯一的區(qū)別是編程小孩子更有興趣去學,因為好玩,而且是正向激勵,比如做一個小程序,馬上就可以運行,馬上就看到效果,馬上就能有成就感。如果是培養(yǎng)能力,最好的學習方式就是自學加上指導,這種教學方式在國外叫PBL,Problem-Based Learning,也就是基于問題的學習方式,而不是傳統(tǒng)課堂。但是目前編程的培訓機構(gòu)為了取悅于家長(家長永遠希望上課的時間長一些,上課多教些知識),還是慢慢走向了傳統(tǒng)的教學模式。至于孩子的能力是否培養(yǎng)出來,反而因為不好衡量,反而被忽視了。
CC哥認為學編程對能力培養(yǎng)完全是可以衡量的,就一條:如果孩子學了編程,語數(shù)英的成績大大提高!那就是有用,如果沒有提升,那就是浪費時間精力,趁早放棄!
CC哥的開這個公眾號的目標,就是給家長和小朋友一個真實的編程學習,把編程當成一種有益的愛好,通過學習編程提升自身的思維能力,專注力和意志力,通過能力的培養(yǎng)來提升基礎(chǔ)學科的成績。所以CC哥會把培訓的重心放在一些編程的邏輯,細節(jié),還有工具的掌握上,而不是放在做復雜任務上。CC哥希望能夠通過培訓,讓小朋友掌握自學的能力,并且通過對邏輯和細節(jié)的專注學習,提升學習能力和學習品質(zhì)。之所以不做大任務,一是覺得沒必要,而是覺得小朋友真心沒時間,畢竟是課業(yè)繁重,別把時間耗在編程上,毀了孩子的前途。
制作新的積木:
CC哥真的很佩服麻省的scratch團隊,這真是一個偉大的作品,在教育領(lǐng)域具備劃時代意義,讓小朋友的創(chuàng)造性獲得了無限發(fā)揮!
我們搞過編程的都知道:這個制作新積木,就是計算機編程的自定義函數(shù)嘛!
函數(shù)是指一段在一起的、可以做某一件事兒的程序。也叫做子程序、(OOP中)方法。
一個較大的程序一般應分為若干個程序塊,每一個模塊用來實現(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)在開始介紹這個功能的用法:
在更多積木類里點擊制作新的積木,就彈出一個對話框,把選項點開。這就是一個積木的定義,在新積木里輸入文字,積木的名稱,選項中是可以添加的參數(shù)類型。所以新積木首先包括兩項內(nèi)容:名稱和參數(shù)!舉個例子:讓我們做一個畫一個多邊形的積木吧,那么積木名字就可以起:畫一個多邊形。但是畫幾個邊?畫多大呢?這就是兩個參數(shù),幾邊形?和邊長?。
字一定要盡量寫清楚,這是一個好習慣,否則程序一大,做的積木多了,自己反而看不懂自己做的積木式干嘛的了,而且,大程序基本都是需要團隊協(xié)作的,所以你起的名字還得隊友一眼就能看懂才好。名字中可以添加數(shù)字參數(shù),字符參數(shù),布爾參數(shù),和文字段,這些以后再一一細說,今天的例子就是兩個數(shù)字參數(shù):邊長和機邊形。點擊確定,就生成了一條新的命令。
有了新的指令,我們就需要給指令來做指令內(nèi)部的程序了。
這段指令很簡單,但是注意的是其中移動指令中的參數(shù)和重復執(zhí)行指令以及右轉(zhuǎn)指令中的參數(shù),需要把你的名稱中的參數(shù)拖入對應的位置。
好,新建的指令的內(nèi)容也封裝好了,剩下的就是在程序里調(diào)用了。
調(diào)用非常簡單,只需要把這條新建的指令積木,拖入你的程序里就可以了。
新建積木也是自定義函數(shù),可以大大簡化編程。在很多設(shè)計里都可以用到。比如一個固定的復雜運算公式:就三角形面積,或者梯形面積。你都可以用新建積木的方式去做。做一個新的積木來算所有三角形的面積,只要輸入底和高。圓形面積:只要輸入直徑。游戲里也有很多地方可以用到自定義的指令,比如之前我們做的有重力干擾的彈跳軌跡,只要給出初始速度和發(fā)射角度,就可以通過自定義指令畫出重力軌跡。
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過郵件及時和我們聯(lián)系刪除
