計算思維技能

計算思維技能

計算機科學是科學的一個組成部分,儘管它不是一種所謂的“純科學”,因為它還需要借鑑工程學科的許多內容。但毫無疑問,科學思維是計算思維的一個組成部分。

科學思維

所謂科學思維最基本的內容是沒有證據就不要求急於下結論:遵循科學的方法來建立新的知識,無論這些知識只是對日常生活中的現象,或是學科的前沿發現。

假設你發現某個地方有兩個煤核和一個胡蘿蔔散落在地上。這裡曾經發生了什麼?你可能會說從證據來看也許這裡曾經堆過雪人,用煤核做眼睛、胡蘿蔔做鼻子。雪人融化了,這些東西則被留在原地。你的證據可以支持“雪人假說”,假說即指按照預先設定,對某種現象進行的解釋,即根據已知的科學事實和科學原理,對所研究的自然現象及其規律性提出的推測和說明,而且數據經過詳細的分類、歸納與分析,得到一個暫時性但是可以被接受的解釋。現在假如別人走來,他們看了證據後,提出了““兩車假說””,它是由一部煤車上掉了兩個煤核,然後又有拉蔬菜的卡車經過掉下了胡蘿蔔。哪一個假說是正確的?

現在假設你最近的天氣記錄中發現這是最近那裡下過雪。這可以讓“雪人假說”有更大的說服力,但是人們在冬季同樣也需要更多的煤來供熱,以及胡蘿蔔熱湯,所以會有更多的貨車。這意味著“兩車假說”仍然可以是正確的。我們需要的是一個實驗,發現一些新的證據來分離兩個假設,看看哪個更好。一個理想的實驗時:構建一個時間機器,然後回到過去,看看究竟發生了什麼,這將一勞永逸地解決所有的事情。但是,這是不能實現的!這個方案被否決了。那么,下一步怎么辦?

由於技術限制原因,我們不能做的我們要的實驗,所以我們做可能做的。有人提出回到現場去“找車轍”的實驗動議。如果““兩車假說””是正確,那么現場附近應該有留下的車轍的證據。但為確保公平競爭,派出的考察隊員都沒有被告知要尋找什麼。如果他們知道考察的目的是車轍,可能對他們產生誤導。他們會全力以赴試圖尋找,以致把某些其他原因產生的印記誤認為是輪胎印記。考察隊員返回後,帶回新的證據。他們發現,在現場上的路邊有車胎印記,在那裡沒有人專門費心去尋找過,而更重要的那裡到處是有煤塊和胡蘿,和“注意到粗糙路面”的跡象。這就是結果!

現在“兩車假說”占了上風,它解釋了一切。且慢,“雪人假說”陣營又有說法,,建雪人孩子們是坐卡車來到這裡,他們在自己的口袋裡裝了許多的煤塊和胡蘿蔔,而且車在崎嶇的道路行駛時震動並掉了出來。此時可能想這聽起來有點怪怪的。當然,但更可能是“兩車假說”是正確的。你不能100%確定,但確實這是一個新的嘗試。

在這個時候,時間已經不早了,我們離開了現場。但兩大陣營仍在爭論,繼續更多的實驗,按照科學的方法,積累更多的數據和證據。

我們給每一個現象的解釋必須在科學的方法上來考慮,即使是科學成果也一樣。有什麼證據來支持這種說法?這是因為科學是構建在不斷增加的證據基礎上,它是如此強大,能夠支持我們對今天周圍世界的理解。它可能有其局限性,不能給予100%的把握的答案。畢竟可能有一些結果缺少一塊拼圖,但它取得了一些精彩的勝利。但科學發展從不停息。你可以(也可能這樣)在你每天的生活中運用科學的過程,你對某些事物有種看法(假說),並新的經歷中用新的證據不斷測試(實驗)。你並不能總是料事如神,但可以像科學家一樣提出問題,總是有意料之外的情況可以期待。

邏輯思維

計算思維的基本組成之一,是能夠邏輯思考。計算機所使用邏輯計算方式,與計算思維中的邏輯思維不甚相同。計算機必須進行編程(被教)後方能做邏輯推理。計算機自身並不會做邏輯思維!

邏輯思維是從已知的些微(但非常重要的)信息中推導出儘可能多的信息,而不要輕易下結論。新的信息收集必須按照確定的規程,你不能僅僅因為幸運的而走對路。

邏輯思維是充滿趣味性的,拿起任何一張報紙,你會看到這一點。幾乎所有的報紙雜誌有一些邏輯思維的益智類遊戲做打發時間。數獨是最純粹的形式之一, 數獨遊戲規則為:

在9×9的格子中,用1到9共9個阿拉伯數字填滿整個格子,要求符合

每一行都用到1到9,位置不限每一列都用到1到9,位置不限每3×3的格子(稱為區)都用到1到9,位置不限數獨是一種源自18世紀末的瑞士,後在美國發展、並在日本得以發揚光大的數學智力拚圖遊戲。拼圖是九宮格(即3格寬×3格高)的正方形狀,每一格又細分為一個九宮格。在每一個小九宮格中,分別填上1至9的數字,讓整個大九宮格每一列、每一行的數字都不重複。

數獨的玩法邏輯簡單,數字排列方式千變萬化。被公認為是鍛鍊頭腦邏輯思維的好辦法。一個數獨謎題通常包含有9x9=81個單元格,每個單元格僅能填寫一個值。對一個未完成的數獨題,有些單元格中已經填入了值,另外的單元格則為空,等待解題者來完成。

很多人認為數獨題目的難度取決於已填入謎題中的數字的數量,其實這並不盡然。一般來說,填入的數字越多,題目就越容易求解。然而實際上,有很多填入數字多的題目比填入數字少的題目要難得多。這就需要有其他的方法來確定的難度。

在套用中使用得比較多的一種方法是看看要解決一道數獨題目需要用到哪些數獨技巧。極簡單的題目用到的可能只是最基本的技巧。而相對複雜的題目可能要用到十分高深的解題方法。通過這樣來設定遊戲的難度相對而言較為客觀。

人們總是不滿足於已有的一切。同樣,對於普遍使用的9×9謎題而言,大量湧現的變形數獨題也在不斷豐富著數獨家族。

一種比較常見的數獨變形是大小上的改變。現在已有的大小包括:4×4,6×6,12×12,16×16,25×25,甚至還有100×100。

另一種數獨變形題是在原數獨規則的基礎上加入其他的規則。譬如X形數獨就要求除原來的數獨規則外,連主對角線上的單元格也要滿足數字1到9的唯一性和完整性。而殺手數獨則要求每個“區”中的值必須唯一且總和等於區的右上角所指定的數字。

算法思維

在計算思維技能中,算法思維具有非常鮮明的計算機科學特徵。

有些問題是一次性的,但解決這些問題的方案,則可以不斷發展。在同類問題一再出現時,算法思維就可以介入。沒有必要重新每次從頭思考,而是採用每次都行之有效的解決方案。

算法思維在許多“策略性“棋盤遊戲中非常重要。理想情況下需要有保證勝利,或者至少不會輸的策略。所有這種策略都是一套規則,告訴你無需思索即怎么做每一步:也就是計算機科學家稱之為算法的東西。如果你能建立這樣的一套規則,這不僅可以成為完好遊戲的基礎,也成為一個設計優秀的電腦程式的基礎。無論老幼,只要準遵循這套規則,就可以玩好這場遊戲!

算法思維是在思考使用算法來解決問題的方法。這是學習自己編寫電腦程式時需要開發的核心技術。

囚徒困境(prisoner's dilemma)是博弈論的非零和博弈中具代表性的例子,反映個人最佳選擇並非團體最佳選擇。雖然困境本身只屬模型性質,但現實中的價格競爭、環境保護等方面,也會頻繁出現類似情況。

這個1950年代提出的囚徒困境的典型案例是:兩個罪犯準備搶劫銀行,但作案前失手被擒。警方懷疑他們意圖搶劫,苦於證據只夠起訴非法持有槍械,於是將其分開審訊。為離間雙方,警方分別對兩人說:若你們都保持沉默(“合作”),則一同入獄1年。若是互相檢舉(互相“背叛”),則一同入獄5年。若你認罪並檢舉對方(“背叛”對方),他保持沉默,他入獄10年,你可以獲釋(反之亦然)。結果兩人都選擇了招供。孤立地看,這是最符合個體利益的“理性”選擇(以A為例:若B招供,自己招供獲刑5年,不招供獲刑10年;若B不招供,自己招供可以免刑,不招供獲刑1年。兩種情況下,選擇招供都更有利),事實上卻比兩人都拒不招供的結果糟。由囚徒困境可知,公共生活中,如果每個人都從眼前利益、個人利益出發,結果會對整體的利益(間接對個人的利益)造成傷害。

為解決“囚徒困境”難題,美國曾組織競賽,要求參賽者根據“重複囚徒困境”(雙方不止一次相遇,“背叛”可能在以後遭到報復)來設計程式,將程式輸入計算機反覆互相博弈,以最終得分評估優劣(雙方合作各得3分;雙方背叛各得1分;一方合作一方背叛,合作方得0分,背叛方得5分)。有些程式採用“隨機”對策;有些採用“永遠背叛”;有些採用“永遠合作”……結果,加拿大多倫多大學的阿納托爾·拉帕波特教授的“一報還一報”策略奪得了最高分。

“一報還一報”策略是這樣的:我方在第一次相遇時選擇合作,之後就採取對方上一次的選擇。這意味著在對方每一次背叛後,我方就“以牙還牙”,也背叛一次;對方每一次合作後,我方就“以德報德”一次。

該策略有別於“善良”的“永遠合作”或“邪惡”的“永遠背叛”對策,及對方一旦“不忠”,我方就不再給機會,長久對抗的策略。

如果你選擇“永遠背叛”策略,你或許會在第一局拿到最高分,但之後的各局可能都只能拿到低分,最後雖然可能“戰勝”不少對手,但由於總分很低,最終難逃被淘汰出局的命運。所以除非很難與對方再次相遇,不用擔心其日後的反應,才可選擇對抗與背叛;否則,在長期互動、博弈的關係中,“一報還一報”是最佳策略:它是善意的,從不首先背叛;它不迂腐,不管過去相處多好,仍然對背叛有反應;它是寬容的,不因一次背叛而選擇玉石俱焚。

效率思維

效率一詞有時會有多種,有時是相互矛盾的含義。對有些人來說,效率是做事情的成本越低越好,甚至可以不顧最終的質量。而提出多、快、好、省的口號,確往往流於形式,因為缺乏量化的考證。

計算機科學家效率觀念有非常精確的定義,通用的方式是討論如何儘量減少使用的資源來完成任務。可以儘量減少資源各有不同,但最重要的往往是'時間'。重要的是尋找某種途徑,保證能夠任務完成而且使用儘可能少的步驟。

例如,如何可能在一分鐘之內完成一個魔方的復位,一種可能性,是加快搬弄魔方的動作並敏銳的進行思考,但往往與事無補。而真正能夠解決問題的是找到一種途徑,無論魔方開始時候的狀態,都可以最少的步驟將其復原。

在英國倫敦大學女王學院的網站上有一個遊戲,可以幫助我們了解什麼是算法。遊戲的目的是要交換的藍色球和紅色球的位置,且移動的步驟要少。有兩種類型的移動。你可以(向前或向後)通過拖放球移動球到相鄰的空格,或者跳過一個相鄰球(向前或向後)拖放到一個空格中。

當完成這一遊戲時,你所做的一系列移動的動作就是完成遊戲的算法。它是一種算法,是因為它是一系列移動球的指令序列,如果按給定的順序動作,即可以完成交換球的任務。任何他人可以按照你的算法,並成功地完成這個遊戲。

在計算機網路中,可以選擇Bit Torrent(BT)下載這個已廣泛實際套用的網路下載軟體為題材,以“如何實現儘可能最大的提高下載速度”為作為效率思維的問題進行思考和探討。首先,分析得出“儘可能最大的提高下載速度”是極大速運行模式的一種,類似於以最高速度運行CPU,不使其閒置;接著,下載速度是可以計算衡量的,下載速度的快慢取決於單位時間通過數據量的多少,或者是通過單位數據量而耗用時間的多少;然後,結合網路下載中影響速度的諸環節進行分析,確定出可以改變哪些環節而提高下載速度,同時,估算和對比改變不同的環節所需代價的大小,效率會如何;接下來選擇出代價最小,易於實現,效費比最高的環節進行改進;最後,在所確定改進的環節里,探索和選擇技術方法。經過這樣一個分析引導的過程後,再引出基於pnp(多點對多點連線)的技術方法。這種技術方法採用了人人電腦都是伺服器的思想,下載的人越多,共享的人便越多,下載的速度便也越快。這種思想與方法裡充分蘊含和體現了計算思維。

創新思維

發明家和創新者之間有什麼的區別?發明家擁有偉大的想法。而一個創新者會使用一切辦法推行他的想法,並讓大家使用!

要做到這一點需要遠遠不止是有好的想法,而需要毅力,團隊技能,技術技能,將想法變為現實。也許最重要的是具備溝通能力和說服別人。

當談到創新,計算機科學家是進行系統集成的專家。他們不只是套用今天的技術,而且還創造明天的技術。什麼是當今世界的10名大的創新?網際網路,手機,個人計算機,光纖,電子郵件,衛星導航系統,記憶存儲磁碟,數位相機和RFID標籤。計算機科學家則將它們組合在一起,構建新的系統並滿足社會的需求。

如果你認真對待它,創新是可以學習的東西。第一步就是知道你的想法或靈感從而而來?

你必須是一個敏銳的觀察家,這對能夠發現機會至關重要,你會注意到在某些細節可能是有用的;與此相關的是要構建一個廣泛的知識平台,因為可能在遙遠的過去,人們已經對此有了一定的理解。一些非常不同凡響的創新的想法都源自於某些古老的理念,它們被重新認識並用來解決新問題,也許解題的技術或資源現在成為現實。例如前面提到的七橋的案例,歐拉定理是一個近代的發現和證明,而自動進行圖的歷遍則是計算機發明以後的事。

獲得靈感另一種方式來自關注極端用戶。許多現在的發明原本是設計來幫助殘疾人。關注和幫助邊緣人群並解決他們的問題的結果是幫助了所有的人。亞歷山大.貝爾通過教聾啞人講話工作而引發了電話的發明靈感。英特爾公司的一直在實驗Motes—一種灰塵樣大小的計算機—幫助野外生物學家記錄數據,而導致感測網路的誕生。

開啟機會的一種方法是要能夠挑戰他人的成見。具有成見的人往往並不自知,但恰恰是成見限制了他們的發展機會。有時候,當你拋棄那些成見,又可能發生什麼呢?很可能就是一個創新的想法。這種思維方式是與做程式設計時進行調試同樣重要。有段時間,大部分人都以為簡訊不會有什麼發展前景。因為在需要交流時,人們可以通過真正的交談甚至是視訊會議的方式進行,何必使用簡訊這種笨拙的方式。但簡訊就是流行開了,而其中的原因也就是僅僅因為它簡便易行。在這一點上,運氣似乎比創新更重要,原因是沒有人質疑的這樣的假設!

可以想像有些技術問題真正令人惱火,但大多數人選擇了忍耐,或者只是抱怨。而具有開發技能的創新者就可以直接去解決它。這就是開源(open source)世界的工作原理,它把具有創新意識的人們的才能釋放出來,只是為了有更好的方式可以做事。蒂姆.伯納斯李就是這樣做的,他創造了全球資訊網並毫無保留的貢獻出來,現在可以看這一切如何改變了世界。更重要的一點- 看看他開啟了多少新的創新機會。

軟體世界的偉大在於,你無需擁有一個真正的工廠或昂貴的設備,所有開始時需要的東西就是一台計算機和一些基本的開發技術和設計技能。許多計算機科學的百萬富翁有很多的創新在一開始是在寢室或車庫中開始的。所以,別再為所有這些技術難題所頭痛,開始從頭學習必要的技能,開始創新。

在現代,為國民經濟的發展,創新和創意已經成為國家行為。例如在上個世紀90年代,英國組建了“創意產業特別工作組”(CITF),還委託市場分析公司,分析不同創意行業的規模、就業狀況、年營業額。CITF小組拿著新出爐的行業分析報告《文化創意產業圖錄報告》,通過大量的數據描繪出了一個動人的前景:文化創意產業以快於其他行業兩倍的速度增長,帶動的就業機會也是其他行業的兩倍之多,創意產業可能正是英國經濟成長的動力與財富之源。大家也為政府找到了三個方向:教育體系的支援、智慧財產權的保護、資助年輕創意者。時任首相的布萊爾親自出任CITF主席,立志讓英國成為全球的創意中心。

倫理思維

任何新技術都是一把雙刃劍。現代計算機系統的一個偉大成就是它帶來的對數字信息進行分析、處理和共享的便利。但是與此同時,也存在大量負面的影響。

例如,如何處理創建電子商務客戶在線上檔案的便利性與隱私問題之間的平衡,是當代信息系統引發的倫理問題之一。所以,作為資訊時代的科技工作者,必須:

理解新技術的道德風險。技術的迅速變化意味著個人面臨的選擇也在迅速地變化,風險與回報平衡,以及對錯誤行為的理解也會發生變化。正是由於這個原因,侵犯個人隱私已經成為一個嚴重的倫理問題。作為管理者,有責任建立、實施和解釋企事業單位的道德規範。資訊時代的企事業單位必須為計算機和信息技術的套用設立一個覆蓋隱私、財產、責任、系統質量和生活質量的道德準則。計算機倫理學是當代研究計算機信息與網路技術倫理道德問題的新興學科。隨著當代計算機信息與網路技術的飛速發展,計算機信息倫理問題的研究已引起全球性關注。

倫理(ethics)是指作為具有民事能力的個人用來指導行為的基本準則。計算機及信息技術對個人和社會都提出了新的倫理問題,這是因為其對社會產生了巨大的推動,從而對現有的社會利益的分配產生影響。像其他技術如蒸汽機、電力、電話、無線電通訊一樣,信息技術可以被用來推動社會進步,但是它也可以被用來犯罪和威脅現有的社會價值觀念。在使用信息系統時,有必要問要負什麼倫理和社會責任?

倫理、社會和政治問題是緊密相聯的。作為未來社會的管理者,可能面對的典型的道德困境會在社會和政治的波動中反映出來。圖1表達了一種社會倫理模型。將社會想像成夏日裡平靜的池塘,一個由個人、社會和政治團體組成的、局部平衡的微妙的生態系統。

圖1 計算機倫理思維模型 圖1 計算機倫理思維模型

人們知道在這個池塘中如何行動的準則,因為社會團體(家庭、教育、組織)已經為行為制定了詳盡的規矩,立法部門也制定了相關的法律,法律規範人們的行為並對觸犯法律的行為進行處罰。如果向池塘的中心扔一塊石頭,假設這不是一塊普通的石頭,而是某種新的計算機或信息技術墜入一個似乎平靜的社會。接下來會發生什麼? 當然是漣漪。

這時社會公眾突然間要面對現有制度通常無法解釋的情況。政府機構也不可能在一夜之間對這些波動做出反應——它可能花費數年的時間來發展一套經過核准的規則;政治機構根據具有危害性的例證來制定新法也需要一段時間。與此同時,社會公眾可能被迫在一個“灰色地帶”行動,關於什麼才是新技術合乎道德的使用的判斷標準還未統一。

新的計算機技術所引起的波動效應,勢必在個人、社會和政治層次產生新的倫理、社會和政治問題。這些問題有五個道德維度:信息權和義務、財產權和義務、系統質量、生活質量、責任追究與控制。

我們可以使用這個模型來演示倫理、社會和政治問題的動態聯繫。這個模型還可以用來識別貫穿各行為層次——信息社會中個人、社會和政治的道德維度。該五項道德維度如下:

信息權和義務:

個人和組織可以主張哪些信息權? 什麼信息必須保護?

關於這些信息,個人和組織有什麼義務?

財產權:

對所有權的追溯和確認很困難,而在數字社會中忽略這種財產權卻如此容易,傳統的智慧財產權應如何被保護?

責任追究與控制:

誰能夠負責對個人、公共信息和財產權所受到的損害進行解釋,並承擔相應的責任。

系統質量:

為了保護個人權利和社會安全,我們應對數據和系統質量的標準有什麼要求?

生活質量:

在一個以信息和知識為基礎的社會中,什麼價值觀念應該被保持? 哪些制度應該保護不被破壞?新的信息技術支持什麼文化價值觀和實踐?

相關詞條

相關搜尋

熱門詞條

聯絡我們