不管你是小孩子還是老婆婆,讓我們學習計算機語言吧!
作為一個泛黃的計算機本科生,覺得所學跟我沒有關係,又無趣又難,踏出校門就沒有再編過程序的我,有一天好奇的點開哈佛CS50的計算機導論課,本來只是想看看哈佛怎麼上計算機課的,結果我很快的被一個撕書遊戲吸引了。
這個遊戲是這樣的:
如果我想從一本1000頁厚厚的電話黃頁中找到Mike Smith這個人,那麼我們會怎麼找?
如果從第一頁開始一頁頁的翻,那麼我們可能要翻近千頁,那麼怎麼辦呢?
一種可行的方法是:
首先,我們把書翻到中間,看到L這個字母,根據字母排序,我們知道前半部分肯定沒有我們想要的字母,於是我們把書撕成兩半,並把前半部分扔掉。
這樣我們還剩500頁,然後怎麼離Mike Smith這個名字更近呢? 我們再翻到一半,這時看到了P,我們快找到了。於是我們繼續把剩下的書撕成兩半,並把後半部分扔掉
在計算機里,我們就稱這個為演算法。這種對數級的演算法不僅僅對1000頁的書,對40億的網頁也有同樣大的魔力,能在很快的速度里對半撕完。
假設有一個40億頁的書,我們撕完的次數是多少呢?
40億-20億-10億-5億-2.5億-1.25億……
答案是32次。
這是驚人的。數學演算法的力量是無窮的,這也就是計算思維。
伴隨著台下同學們浪潮似的歡呼聲和台上印度學生羞澀的撕書表演,我突然覺得那曾經讓我覺得枯燥的演算法可以是這麼有趣實用,一種酷極了的感覺湧上來。我開始饒有興趣的重新一點點的學習思考並模擬,似乎計算機美妙的世界慢慢的向我打開了大門,儘管已經姍姍來遲。
在CS50上,我還看到了老師用Scratch軟體演示編程,一個像遊戲一樣的編程軟體界面。但我沒有費心去下載了解,直到有一天看了TED上Scratch軟體創始人講的《讓我們教孩子編程吧》我才知道這個軟體是麻省理工學院媒體實驗室開發的軟體,這個軟體可以使得人們很容易的創作他們自己的互動故事、遊戲和動畫。並把他們的作品和他人分享。
那麼,我今天想講的其實是Scratch。
最近剛好有朋友過生日,我覺得何不做一個互動式的生日卡片給TA,於是我登錄Scratch官網查看,首先我需要熟悉這個軟體到底怎麼操作的。我知道在scratch網站上,有很多8歲以上的小孩子,分享了他們的作品。我很好奇小孩子做出來的作品怎麼玩,於是我搜索了birthday。出現了下面這些:
我點開一個個看,感受到了每一個小孩子的創造表達,有的非常無厘頭,有的很有趣。還通過音樂,聲音等感受到了他們的喜好和情感表達。然後又一個個閱讀Ta們的程序頁面。發現他們可以非常熟練的使用這個語言,創造出極其個性的作品,進而表達他們的思想。
那麼,我想說什麼呢?如果我們學會了一種語言,那麼我們可以寫日記,寫文章,寫信,講笑話。如果我們學會了一種計算機語言,我們就可以用來做相類似的事情,就像這些孩子們可以用scratch語言創造自己的作品一樣。也許很多人認為,年輕人是電子原住民,他們生下來就進入一個電子化的時代,故而能理所當然的吸收學會這些技術。但是,我們看到的只是他們熟練的玩遊戲、用手機。而不是用技術來表達和創作。
也許很多人仍然認為編程這個事情只是很小一部分人的事情(包括幾天前的我)。在他們眼中,編程就是程序員和學計算機相關專業人的事情,是一件非常專業的事情。
編程應該是長這樣:
但是,點開孩子們的作品,你會發現,編程還可以是這樣:
只需要移動積木到右邊就可以控制動作。完成作品後,你還可以把作品分享給其他人,其他人可以打開這個程序,在上面繼續創造。除了這些,我們還可以加上一些感測器,讓程序和現實聯繫起來。與真實的世界互動。
就像我們學會閱讀一樣,閱讀可以帶領我們進入一個廣闊的知識大門。學習一個程序語言,也是同樣的道理,除了我們可以了解計算機是怎麼工作的之外。我們還可以通過編程創造,更加深入的了解很多知識。
舉個栗子:
我們在數學中都學過變數這個知識:變數(Variable)變數或變數,是指沒有固定的值,可以改變的數。
了解了這個定理,跟我的生活有什麼聯繫嗎?我們很難想像,所以也覺得枯燥無味。
但是,當一個十三歲的孩子用Scratch製作自己一個大魚吃小魚的遊戲時,他希望大魚每吃一次小魚就能計分,但是他不知道怎麼計分,後來他通過老師的幫助學會使用變數來計分後,他非常激動開心,對變數的了解也更加的深刻,當孩子在學習計算機編程時候,他也在學習變數這個重要的數學思想。
除了這個,孩子也在學習一種設計思想和方法,如何把一個一開始的小點子,轉變成一個完整能運行的作品。如何將複雜的想法簡化分解為幾個部分,如何與他人合作完成作品。出錯時如何發現並糾正錯誤。如何堅持,如何在失敗時面對挫折,這些都是非常重要的能力。這就是一種激動人心的學習方法。這是一種有意義的學習方法,也是一種最佳的學習方法。
當然有人還會想,我以後又不做這個專業的工作,不需要學這個。那麼我還可以用學語言來比方,我們學會了中文或者英文,我們之後就一定要當專業的作家或者以寫文字為生么?極少部分人會成為語言的專家,但大部分的我們,掌握了語言能力卻對我們的今後的生活非常有幫助,這也同樣適用於學習編程語言。
PS(以下部分摘錄於網路):Scratch目前在美國超級火爆,很多四五歲的孩子開始學這個東西。孩子們通過玩遊戲、編程,編遊戲的方法來掌握計算機編程的一些思維。我還有一個2016年的scratch學習使用數據,第一名不用說,那就是美國,大約403萬,是中國的40倍。第二名的是英國,大約111萬,是中國的11倍。第三名是加拿大,大約23萬,是中國的2倍。美國頂尖的高等教育和基礎教育,整體面向「三十年以後這個世界會怎麼樣」命題:我們需要培養怎樣的人才,我們怎麼培養。這個思路是非常清晰的,而且做得好的項目,拿到投資的項目都是沿著這個思路在跑,也就是說我今天看,打這個冰球,我不是向這個冰球所在的位置滑,而是滑到冰球將要去的那個地方,這是非常有前瞻性的一種教育思維。
中國現在的「互聯網+」教育,基本思路還是用互聯網把應試教育做得更極致,這個是我覺得是有問題的,而且會有很大的問題。
你看到現在很多拿到投資的公司,做題有一個拍照神器,拍個照,抄個答案,孩子用的很多,老師也沒有辦法,這很難想像這樣的產品在除了中國之外,在全球各地別的地方會有。現在大部分拿到投資,呼聲比較高的,很多都在往這個方向做。
國外特別是美國的教學,現在的「水往東流」。什麼意思呢?就是「水」——教學方向,是根據互聯網時代重新來設計教學目標、教學方式,甚至教學的地點,人才招聘都是根據互聯網時代的需求來決定的。
比如計算機語言,小朋友在學,在用,在通過計算機語言來創造新的東西,很多七八歲的孩子自己都可以編程兩三年了,這是非常驚訝的事情。
相反,在中國,互聯網越來越火熱以後,教育反而向西走了更多了,更多是拿互聯網技術把中國現在的應試教育做得更有效率。所以我們看到很多所謂的教育信息化在「鋪貨」,拿KPI來考驗這個孩子作業做了沒有,做得好不好,找每一個知識點的遺漏或錯誤,很典型的是用技術把現在的這個系統做得更強大。按照這條思路來做,也就是用互聯網技術把工業時代的教學目標方式做得更極致,這麼理解,這麼講大家可能更好理解。
TAG:手物境 |