Scratch不僅適合小朋友,程序員和大學老師都應該廣泛使用!!!

 

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

網址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 加入了 攝像頭互動,樂高機器人控制,以及語音互動功能。這也告訴了我們人機交互,增強現實,軟硬結合將是趨勢~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章