Scratch不只適合小朋友,程序員和大學老師都應該普遍使用!!!

 

去年接觸到了Scratch這個編程工具,它是一種簡易圖形化編程工具,這個軟件的開發團隊來自於麻省理工大學稱爲「終身幼兒園團隊」(Lifelong Kindergarten Group)。java

網址https://scratch.mit.edu/程序員

使用這個工具,當時我是爲了教孩子們,在使用了一段時間以後,一些想法不自主的就萌生出來了。算法

 

Scratch可以使大學教學更有互動性數據庫

我記得當年讀大學的時候,老師都是用C在一個黑色或藍色背景的編輯框中,敲入或輸出一些很是無趣的字符。編程

我只想說老師,其實我就想知道遊戲是怎麼作出來的,怎麼就出來一架飛機,它就能移動且發射子彈了。數據結構

那麼這個在Scratch工具中很容易實現,能夠加入一個Sprite,而後圖片切換來實現物體的運動。數據結構和算法

當時老師若是能先用Scratch來實現一個東西,而後分析一下原理,而後再代碼來一通,這知識點不就聯繫起來了?編程語言

 

Scratch對面向對象的理解有幫助函數

Scratch絕對是面向對象編程入門的神器。由於代碼都是寫給每一個對象的。工具

這樣能很好的使你在思考程序實現的時候,只考慮當前對象應該有的行爲,而不是老想着在某一個對象裏去直接控制其它對象行爲。

在Scratch裏對象的行爲都是靠「事件」來驅動的,這樣你能很好的理解事件的概念。

在Scratch中對象都是獨立的,鬆耦合的,那麼對象直接的協做主要是經過「消息」來控制,這樣你也能很好的理解消息的概念和工做方式。

 

 

Scratch是個很好理解程序語言的工具

在scratch中你會常常須要用到變量循環判斷,和方法定義來實現一些功能。

擴展模塊,其實就是用來定義函數,這樣能使你更好的理解函數的使用方法,使用場景和使用函數的好處。

用來理解遞歸也比java等代碼來得直觀。

 

Scratch是個很好的建模工具,使你關注於編程邏輯而非語言自己

有時候爲了解決某個問題,你有個很好的算法。

可是爲了驗證這個算法,你須要將其用C,C++或java等其中某一種語言來實現。

因爲你不太熟悉編程語言語法以及它提供的方法,使得你花不少時間來編寫程序,有時甚至運行不起來。

你本來目的是驗證算法,然而大部分時間都花在了熟悉編程語言,以及debug上面。是否是很得不償失?

Scratch使用模塊拖拽,你再也不須要關注語言,語法,而更多的是算法,建模。

以下圖的:冒泡排序

 

思考用Scratch將邏輯可視化

其它的編程類工具,要實現解釋一個算法或原理,通常都很晦澀,學生很難理解。

若是能用圖形化界面,編程以後,讓它動態的顯示出來,那就生動得多了。

仍是上面排序的例子,若是將上面的數字,轉化成圖片,而後圖片根據算法動態的一輪一輪交換位置,最後排出想要的結果。

這個能讓學生更直觀的掌握排序或其它算法。

「搜索算法」和一些「貪心算法」,「動態規劃」等都出如今了個人腦海中。

 

我深深的以爲,Scratch這種形式的可視化編程工具,會讓更多的人進入編程行業,編程語言將再也不是障礙,也許將來編程就是這樣。

想一想可視化的代碼和數據庫建模工具吧,是否是就是在朝這個方向發展啊。

 

最後(思考一下):「N.Wirth(沃斯)提出,程序=數據結構+算法.數據結構指的是數據與數據之間的邏輯關係.算法指的是解決特定問題的步驟和方法.」

上面提到了數據結構和算法,並無提到編程語言,編程語言只是實現程序的一種工具,

因此「程序員,程序員,要會數據結構和算法的才能算得上程序員,只會敲代碼的那就是碼農,不是程序員!」

這讓我理解了,爲何不少公司後來不喜歡招那個「xxx鳥」 機構培訓出來的學員了~~

 

P.S. 2018年的總結忙得忘了寫了,人就是這樣,過了那個點就不想補了:)

這篇是最近腦海裏的想法,寫於2019年農曆初四~~ 

再過10多分鐘,迎財神咯~~

 

補一句 scratch 3.0 加入了 攝像頭互動,樂高機器人控制,以及語音互動功能。這也告訴了咱們人機交互,加強現實,軟硬結合將是趨勢~~

相關文章
相關標籤/搜索