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

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

出現 思考 直觀 怎麽 程序員 面向 strong 時間 height

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

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