人人都要學編程?
這個問題第一次被提出來,是在 20 世紀 80 年代,那時,個人電腦方興未艾。后來,軟件產業的發展似乎已經給出了明確而否定的答案。然而現如今,它帶著猛烈的勢頭再一次出現在人們面前。這一次,我們必須認真來對待它。Read this article in English Fran?ais
巴黎高科評論:計算機素養在今天越來越重要。對學生和社會而言,其中的利害關系如何?
Serge Abiteboul:很簡單,信息技術是今天這個數字世界的核心。要理解這個世界,了解它的基本構造并參與其中,計算機技能至關重要。而且從經濟競爭力角度來看,我們確實需要掌握計算機技術和科學,這就如同在 19、20 世紀掌握數學和物理學一樣重要。
美國總統奧巴馬親自呼吁美國年輕人學習編程,包括幾乎所有日常應用和機器程序。親自編寫程序和請別人替我們寫這兩條道路之間,從宏觀角度來看,后者不是不可以,但意味著喪失了主動權,意味著在創新競賽中棄權,因為創新和編寫代碼這兩件事已日益變得密不可分。
從個人角度,不會寫程序也會令你在程序面前非常被動,除了依據使用手冊按部就班,毫無自主權可言。作為網站站長,如果有些功能不盡人意,除非你能搞明白實現這些功能那 10 行代碼,并能寫出兩行代碼來改變它們,否則,你就永遠是一個技術的奴隸。
一個人想掌控技術,隨心所欲,就必須了解諸如云和電子投票之類的知識,必須能獨立編寫小的手機 app 或網站代碼。這與你從事什么職業毫無關系,而且任何人都可以掌握。計算機技能并不比寫英文報告或設計物流系統更難。關鍵是真正參與到其中,扯下其神秘面 紗。這是我們大家的挑戰,而不是企業 IT 部門的專利。
人們總是把計算與數字化混淆,它們的區別和相互關系究竟是什么?
這是一個數字化的世界,在這個世界里,有計算機科學。人們閱讀電子書而不是紙質書籍;課堂上使用的是數字顯示屏而不是粉筆與黑板;人們的相機和 汽車都已經數字化;孩子們剛學打字就知道如何使用拼寫檢查,剛學算術就可以使用 Excel,這些都是數字化工具,但我們仍要學習有關書寫和計數的知識。人們能夠熟練使用谷歌或 非死book,但不知道谷歌搜索背后復雜的算法和 Fackbook 是如何保護隱私的。
計算機和編程是數字世界的核心。信息科學開發出軟件來讓整個世界數字化成為可能。它是一種教育、一門科學和一門藝術——而不僅僅是賦予人們以工具和操作。人們一次又一次地將使用數字工具和編程相混淆,其實兩者毫無關系。
所以,信息科學絕對有必要進入課堂,與物理、化學和數學平起平坐。但它又有很強的技術屬性,你必須學會自己編程、使用計算機來解決問題。這是計算機科學必不可缺的一個方面。
我們應該設立一門獨立的 IT 課,還是根據它跨學科的特點,將其結合在其他學科的學習當中?
注意不要造成混淆。學習數字化工具意味著不同的課程(建筑設計工具、數據庫和搜索工具、科學計算工具等)。但計算機科學本身是一個獨立領域。只 有一種算法思維。不管是你編寫程序來計算莎士比亞或普魯斯特作品中某些詞出現的頻率,還是用來計算矩陣乘法,基本流程都是一樣的(排序操作、測試、循環 等)。只有通過這種科學的訓練,人們才能根據不同領域和情況來選擇不同的編程項目。
那么,教授內容都包括哪些呢?
計算機科學提供了一種全新的思維方式:算法思維,即如何用程序來解決問題。算法思維的概念已經存在了很長時間。當你進行加法、乘法或除法等計算,你就是在學習算法。但是對智能工具和應用的編程要復雜得多。你必須掌握更抽象的概念如 loop——允許特定任務的迭代。
然而,IT 確實很實用。這門科學的美妙之處在于,你可以付諸實踐,你剛剛學到的東西馬上就可以用來編寫小而簡單的程序。即使在小學里,孩子們利用 Scratch 這樣的編程語言就可以從小熟悉編程。問題的關鍵是了解計算思維這種幫助我們理解周邊世界的基礎性思維,并通過編寫小的程序來不斷發展它。
因此,人們可以在很小的時候就開始學習?
每個人都應該從小開始,因為兒童最容易接受新的想法。在“知某數,識某文”之外,我們還應該加上“寫代碼”。它必將進入到國家基礎教育的核心層面。顯然,IT 不僅是編程,就像數學不僅僅是代數,文學不僅僅是寫作。但編程仍然是計算機科學的基礎,需要讓人們從小學習。
學校是這種教育的最佳途徑嗎? 或者它需要通過社會來完成?
很多學校都開始教孩子們編程,學校外也有許多小組、俱樂部、協會等,組織很多又酷又好玩兒的活動。然而,即使這些校外活動很有用,我們必須認識到,要讓所有兒童得到公平受教育的機會,還是需要盡快將這些課程整合進常規的學校教育。
那些已經離開學校但沒有受過任何計算機教育的人呢?
他們可以在職學習相關知識技能,通過各種協會、在線培訓,甚至用游戲來學習編程。工程人士必須現在就開始學習。此外,還必須對其他科目的老師進行培訓。
通常情況下,我們可以設想三個重要的校內學習時段。首先要在小學階段熟悉主要概念,學習算法和計算思維的基礎知識,并通過游戲和 Scratch 這類編程語言,讓人們動手體驗;中學應真正成為每個公民學習計算機技術基礎知識的地方,包括實際的算法編程、信息架構、硬件等。這不是完全式教育,但至少 要將其提升到與中學物理、生物相同的地位。為學生以后的專業學習和接受更高級知識打好基礎。
到了大學,我們可以為學生量身定做計算機課程。選擇理工科的學生可能會對計算的數學應用更感興趣,而走上人文道路的學生可將更多精力放在文本索 引、語言學等方面。今天職業學校里的年輕人已經開始將更多的時間分配在學習計算機上。事實上正是在這些學校,你會意識到學習計算機的重要性和必要性。
具體來說,不發達國家能夠從全球的計算機文化蓬勃發展中得到什么啟示?
一些國家已經解決了迎面而來的挑戰。總體而言,發達國家在這方面非常先進。英國已決定將計算機考試加入高中畢業考試來推廣計算機教育。在德國, 地方政府掌握著這方面的權力和責任,巴伐利亞州就很積極,并因此受益,它們甚至在將計算機科學納入課程體系之前,就開始大規模聘用擁有 IT 技能的教師。一些新興國家如以色列和韓國已在這方面展開競賽。今天,計算機課程正在全球遍地開花,而且受教育者年齡也越來越小。(杜天祥/譯)