魏忠
美國獨立戰(zhàn)爭期間,南軍和北軍最后一次決戰(zhàn),在最后的關(guān)頭,李將軍放棄了游擊戰(zhàn)爭而全部歸順,格蘭特將軍將雙方戰(zhàn)士埋在一起,格蘭特將軍還給予南方將士全部的軍馬以便回家農(nóng)耕。之所以如此,不僅僅是因為雙方都是西點軍校的畢業(yè)生,更重要的是因為西點軍校教的不僅是獲勝的算計,還有今天稱為計算思維的東西。
小時候不明白,古代雙方打仗為什么主帥對決而兵士不出馬,大人們告訴我是為了說書方便,研究歷史和了解西方?jīng)Q斗歷史后才明白,不是這樣。所謂戰(zhàn)爭,是人類的組織方式的一種形式,也是解決沖突的極端方式,與天敵之間的殺戮完全不同。人類在人力資源奇缺的古代,逐漸形成了一種行之有效的默契:講理、下棋、爭論、戰(zhàn)爭,即使戰(zhàn)爭也最好主將決戰(zhàn),少傷及兵士,以便爭出勝敗保留有生力量。學(xué)過博弈論和機制設(shè)計理論后又明白,這種方式叫合作博弈,在計算機世界叫計算思維。
計算思維的老祖宗可以追溯到馮·諾依曼。馮·諾依曼體系的最重要因素是二進制、內(nèi)存、程序和數(shù)據(jù)順序存儲,也就是最節(jié)省和經(jīng)濟高效的模式是找到最基礎(chǔ)的變量、調(diào)用盡可能標(biāo)準(zhǔn)化和小的資源、用最標(biāo)準(zhǔn)化和簡單的規(guī)則。用到兩軍對壘,就是勝和負這種最簡單的變量、兩軍主將在開闊地的對決、對決之間按照規(guī)則出牌生死由命,人類形成這種制度是血的代價進化的結(jié)果。
卡內(nèi)基梅隆大學(xué)的周以真教授將計算思維正式提高到獨立于計算機的思維模式,她定義計算思維是一系列思維活動。實際上,我認為計算思維是一種思考方式,是用計算機所能有效執(zhí)行的方式來對問題進行表述并提出解決方案——這里所說的“計算機”既可以指機器,也可以指人。換句話說,計算思維也是一種解決問題的方式。
打個比方,如果兩軍交戰(zhàn),既要打敗對方,又要得到對方的財產(chǎn)還要讓對方心服口服,要怎么做?在關(guān)羽大戰(zhàn)黃忠之前,他把黃忠的情報和人品了解清楚,準(zhǔn)備好大刀,這就是預(yù)置和緩存;有人提醒關(guān)羽黃忠百發(fā)百中有可能用暗器,這就是回推;當(dāng)知道黃忠的本事后,周倉將刀磨利,將馬休息好,將盔甲準(zhǔn)備得更好,這就是線性算法;兩個人打了100回合不分勝負雙方第二天再戰(zhàn),這就是冗余性;關(guān)羽看到黃忠馬不行了讓黃忠換馬,這就是多服務(wù)器系統(tǒng)的性能模型;黃忠和關(guān)羽都不致對方于死地,這就是失敗的無關(guān)性和設(shè)計的冗余性。從計算機科學(xué)上升到計算科學(xué),變量可以是計算機,也可以是人和事,人類有了這樣的高度,“理”是基于“算”而不是基于“論”,“論”容易情緒化,而“算”可以使人們的理性思維和文明的水位線不至于ISIS。
目前有很多小學(xué)、中學(xué)都在開展計算機的課程,越來越簡單的適合兒童的編程語言被開發(fā)出來了。從計算思維的角度,今天學(xué)習(xí)的語言,這些孩子未來15年根本用不上,但是通過這種思維訓(xùn)練得到的計算思維本質(zhì),讓孩子更容易掌握抽象、分解和組合的能力,也就是未來編程永遠不會變的原始變量。
文明要想進步,什么是能夠抵御實用主義管用的招數(shù)不斷突破水位線的“管涌”呢?是教師的專業(yè)理論,用它守住文明的水位線,這樣即使勝負暫時偶然,勝方也不至于決口。
算計是器,器盡而道廢;計算是道,道通而器順。野蠻人算計,文明人計算,教育與理論的作用在于,守衛(wèi)文明的水位線。