即使不學程式設計,你也要了解計算機思維(轉載)

計算機已滲入到我們生活的各個方面,生長於網際網路時代的一代甚至被稱作“數字原住民”。對他們而言,會使用計算機已是基本生存技能,瞭解計算機運作背後的邏輯,也就是計算機思維也變得非常必要。計算機思維有哪些特徵?什麼樣的計算機語言才是優美高階的?《紐約時報》的這篇文章能讓我們對此有所瞭解。

即使不學程式設計,你也要了解計算機思維  (轉載)

加州大學伯克利分校的Daniel Garcia老師為非計算機專業的同學設計出了一門名為《計算機的美與樂趣》的課。在這門課裡,Daniel解釋了一個非常重要的概念——抽象化。

他說,以奶昔為例,“你去上《烹飪的樂趣》這門課,因為你想做草莓奶昔,但是你不會專門去找‘草莓奶昔’這門課”。奶昔會有配方,這門課會指導你新增你想加的冰淇淋、牛奶和水果。雖然早期的烹飪書對草莓奶昔、樹莓奶昔和藍莓奶昔會有不同的配方,但是他認為最後肯定有人會問“為什麼我們不把這些不同的配方融合成一個奶昔配方?”

Daniel說,“抽象化的意思就是隱藏細節”。這要求我們可以識別模式、將複雜的東西提煉,並形成精確清晰的概括。

抽象化以及計算機科學領域裡的其他想法都又酷又有用,能激發人們的求知慾。很明顯,電腦已經成為人們解決問題不可或缺的伴友,但是熟練操作軟體還遠遠不夠,瞭解隱藏在電腦魔力背後的東西現在看起來很重要。

計算機思維:從一般到精確,再到一般

美國公共廣播公司位於波士頓的分站正在為3-5歲的孩子製作一檔節目。在這檔節目裡,三隻卡通猴陷入困境,需要孩子們“透過應用計算機思維幫它們從混亂中解脫出來”。

即使不學程式設計,你也要了解計算機思維  (轉載)

計算機思維並不是一個很新的概念。人工智慧領域的前沿學者、MIT教授Seymour Papert,早在1980年,就已經使用這個術語來展望孩子們如何在未來使用電腦來學習。計算機思維主要包括識別模式和順序、創造演算法、設計用於發現以及修正錯誤的測試,把一般濃縮為精確,把精確拓展到一般。

正如達爾文進化理論裡解釋了政治和商業,在微軟負責基礎研究的卡耐基梅隆大學前教授Jeannette M。 Wing博士針對計算機理念的廣泛使用進行爭論。她在一次採訪裡說計算機思維不僅可以應用於思維,“我們也可以提升日常生活效率並且讓我們的壓力變得小一點。”

她說,計算實踐有很多的應用。比如,把困難的問題解構成我們所知道的方式去解決,觀察時間和空間裡的平衡問題以及流水線問題。

即使不學程式設計,你也要了解計算機思維  (轉載)

我們可以看一下自助餐的流水線。“當你去一家自助餐廳吃午餐,你會在第一站看到刀叉。我覺得這個真令人生氣,它們應該是最後一步。你不應該拿著盤子的時候還要去拿刀叉。”Wing博士曾把小孩子收書包看作是電腦快取,她認為自助餐的低效是對邏輯思維以及順序的錯誤運用。

計算機思維可以輔助一個基本的任務,比如策劃一段旅行——你可以把它分成預定機票、預定旅館、租車這幾個步驟。計算機思維也可以用於“像身體保健或政策制定這類複雜的東西”。我們只有識別次問題以及描述這些次問題與主問題之間的關係,才可以完成目標工作。Wing博士說,“一旦你有了一個好的介面,你就可以忽略剩下問題的複雜性。”

將計算機思維運用於其他學科

即使不學程式設計,你也要了解計算機思維  (轉載)

Alexander Torres是一名專業為英語的斯坦福大學高年級學生,他注意到學校和谷歌公司的相似性吸引了所有人,但是很少有學生去聽計算機的課程。他也是其中之一,但是他說“我不認為我丟失了一些技能”。在爭取學位的過程中,我鍛鍊了批判思維、分析能力以及有邏輯的爭辯。“當你分析狄金森、惠特曼或者梅爾維爾,你不得不剖析他們詩句裡的每一句話,然後再把他們綜合起來看。”

沒有一項可靠的研究顯示計算可以使一個人更有創造力或者更有能力解決問題。研究教育與計算機的佐治亞理工互動計算學院的教授Mark Guzdial說,除非一些事情被明明白白地教,否則計算技能並不能讓你更擅長某些事情。“你沒法證明計算技能的消極面”,但是在長達十年的研究中,沒有人發現電腦技能是可以自動轉移來解決其他問題的。

即使不學程式設計,你也要了解計算機思維  (轉載)

另外,他還補充說,因為同樣的原因,人們應該這樣去認識生物、化學以及物理,“理解電腦在生活中的不同應用有很多意義。”越來越多的人在他們的工作裡必須要做程式設計,即使它只是微軟excel。教授說“用電腦解決問題每天都發生在我們的生活裡”,如何能讓更多人獲得電腦技能,是一個很有趣的挑戰。

計算機語言需要簡約優美易學

三月的一天早上,布朗大學計算機科學中心。Brawner 把一個學生的家庭作業投影在螢幕上。他問,有人注意到問題了嗎?沒有一個***科系的學生舉手。最後,一個女生說:“centimeters”和“kilograms”可以簡寫。Brawners說,可以,但是不夠。

Brawners打破了沉靜,然後指出這一長串的程式碼已經觸碰到了螢幕邊了。課堂一陣騷動中,他重複輸入反斜線然後點選“返回”,這可以將符號變成整齊的塊。對一個機器來說,這也許就是指令,但是計算機科學家很在乎視覺的美感。Brawner一邊刪除重複的指令,一邊說,“不論何時我們定義衡量,我們希望美感在程式碼之上。”之後,他又佈置了一個新的作業任務:寫一個程式來用電腦玩石頭、紙和剪刀。

即使不學程式設計,你也要了解計算機思維  (轉載)

Mili Mitra是主修公共政策和經濟的低年級學生,她把電腦放在膝蓋上,說她在一年前從來沒有考慮過這門課程。但是看到小組研究專案總是給那些有專業電腦知識的人去做,Mili決定“不想這些專案讓別人接手”。她已經學會了寫基礎的程式碼,以及從網路中提取出資料來分析她感興趣的東西,比如,地緣親近如何塑造聯合國大會的投票模式。

儘管Mitra發現和電腦的交流就像和一個剛學步的小孩解釋問題,她還是覺得這門課能夠逐漸灌輸一種習慣——“讓學生們一步一步走,然後尋找出解決方案。”她承認自己是不耐煩的學習者:“我會往前跳。但是在計算機科學專業裡,你沒有選擇。如果你錯過了一步,你就會弄亂所有事情。”

“Block”就像Scratch一樣是一種程式語言,由MIT媒體實驗室於十年前公佈。Block會把文字字串隱藏起來,這些文字字串就像電腦鍵在瘋狂執行一樣。這使得程式碼看上去不那麼令人害怕。

你可能會從選單裡選擇然後拖出有顏色的空格而不是用鍵盤字母和一些符號。這些有顏色的空格上寫著“say( ) for( )secs”或者“play note( )for( )beats。”顏色和形狀分別與“聲音”和“動作”兩個種類相對應;這些空格可以用拼圖來填充以指揮說明。學生們用這個程式語言時,會說,來,設計一個遊戲。

一個人不需要成為一個數碼Doolittle博士,然後熟練掌握生硬困難的程式語言,比如Java或Python來編碼。Block語言省去了記住指令的需要,這對電腦語言會有不同程度的依靠,因為block語言“按照你想的那樣去讀就可以了。”Garcia博士這樣說道。伯克利課程的學生用“block”語言Snap來做作業——直到最後兩週,他才教Python,這樣他們就可以去上更高階的課程。“我們會告訴他們,你們已經知道如何去程式設計”,Garcia博士說。因為步驟都是一樣的。

“數字原住民”的生活

在Eliot-Pearson兒童學校一個通風的幼兒園教室裡,在塔夫茨大學兒童學習和人類發展部門,孩子們用真實的木塊來程式設計。兒童發展和計算機科學的教授Marina Umaschi Bers發明了帶有條形碼的木塊。條形碼上會有一些指示,比如“向前”、“旋轉”、“搖動”。這些指示可以用來為機器人程式設計序。這些機器人就是一些小小的,有內建掃描器以的轉輪推車。透過給木塊進行排序,然後掃描它們。這個程式就可以完成。每一個程式都會以綠色的“開始”模組開始,然後以紅色的“結束鍵”結束。

小孩子學習程式設計已經成為一種新潮的教育方法,伴有很多玩具以及應用程式,比如Bers博士的積木。Bers和MIT合作開發了block語言 Scratch Jr,對宣揚編程式碼非常狂熱。她說,學習機器的語言就像寫作被認為是學好外語的基礎一樣。“你可以用很多表達方式寫一首愛情詩或者寫一張生日卡片”,“你不僅僅是在識讀,你也在生產。”

Bers博士的同行評議研究顯示,在學會為機器人程式設計序後,孩子們能夠更好地為圖片故事排序。她說,甚至有傳聞,當老師們讓孩子列出刷牙的步驟,他們僅僅知道幾個步驟,“但是在接受完程式設計訓練後,他們就會列出15-20個刷牙步驟”。

Bers博士把計算機融入小孩子們非常熟悉的活動裡,比如,講故事、跳舞或者藝術創作。最近的一個早上,塔夫斯學校的孩子們對一個問題感到困惑:一個機器人如何慶祝春天?

一個捲髮小孩Hallel Cohen-Goldberg說,“他去跳舞,然後假裝自己淋溼了”。

Solina Gonzalez用馬克筆畫了一個棕色、藍色和紅色的圈,然後透過粉色邊框的眼鏡冷靜地看著,說:“他跳了個棒棒糖舞蹈。”Solina的夥伴,Oisin Stephens對Solina捆綁在木塊上的啤酒棒棒糖畫很擔心。他說“機器人是不會識讀這個的”。

當孩子們跪在地毯上時,他們可以執行計算機科學裡的一些概念,比如,把指示分解成有序的指令,測試然後除錯。一個團隊使用“重複”和“停止重複”的模組,這樣形成一個程式“迴圈”,這一串指示會不斷重複直到程式的特定條件達到了。

和機器的對話就像孩子玩的遊戲一樣這種想法或許是一種飛躍。但是孩子們在排列積木時,Bers博士在和孩子們聊天,孩子們很難注意到他們是在編程式碼。“他們說,‘嗯,我不是在程式設計’”。

不管是有意識還是無意識,下一代可能毫不費力地吸收計算機思維技能,並且處在一個數字原住民的程序中。

轉載自: 小花生花溪