① 計算思維技能的演算法思維
在計算思維技能中,演算法思維具有非常鮮明的計算機科學特徵。
有些問題是一次性的,但解決這些問題的方案,則可以不斷發展。在同類問題一再出現時,演算法思維就可以介入。沒有必要重新每次從頭思考,而是採用每次都行之有效的解決方案。
演算法思維在許多「策略性「棋盤游戲中非常重要。理想情況下需要有保證勝利,或者至少不會輸的策略。所有這種策略都是一套規則,告訴你無需思索即怎麼做每一步:也就是計算機科學家稱之為演算法的東西。如果你能建立這樣的一套規則,這不僅可以成為完好游戲的基礎,也成為一個設計優秀的計算機程序的基礎。無論老幼,只要准遵循這套規則,就可以玩好這場游戲!
演算法思維是在思考使用演算法來解決問題的方法。這是學習自己編寫計算機程序時需要開發的核心技術。
囚徒困境(prisoner's dilemma)是博弈論的非零和博弈中具代表性的例子,反映個人最佳選擇並非團體最佳選擇。雖然困境本身只屬模型性質,但現實中的價格競爭、環境保護等方面,也會頻繁出現類似情況。
這個1950年代提出的囚徒困境的典型案例是:兩個罪犯准備搶劫銀行,但作案前失手被擒。警方懷疑他們意圖搶劫,苦於證據只夠起訴非法持有槍械,於是將其分開審訊。為離間雙方,警方分別對兩人說:若你們都保持沉默(「合作」),則一同入獄1年。若是互相檢舉(互相「背叛」),則一同入獄5年。若你認罪並檢舉對方(「背叛」對方),他保持沉默,他入獄10年,你可以獲釋(反之亦然)。結果兩人都選擇了招供。孤立地看,這是最符合個體利益的「理性」選擇(以A為例:若B招供,自己招供獲刑5年,不招供獲刑10年;若B不招供,自己招供可以免刑,不招供獲刑1年。兩種情況下,選擇招供都更有利),事實上卻比兩人都拒不招供的結果糟。由囚徒困境可知,公共生活中,如果每個人都從眼前利益、個人利益出發,結果會對整體的利益(間接對個人的利益)造成傷害。
為解決「囚徒困境」難題,美國曾組織競賽,要求參賽者根據「重復囚徒困境」(雙方不止一次相遇,「背叛」可能在以後遭到報復)來設計程序,將程序輸入計算機反復互相博弈,以最終得分評估優劣(雙方合作各得3分;雙方背叛各得1分;一方合作一方背叛,合作方得0分,背叛方得5分)。有些程序採用「隨機」對策;有些採用「永遠背叛」;有些採用「永遠合作」……結果,加拿大多倫多大學的阿納托爾·拉帕波特教授的「一報還一報」策略奪得了最高分。
「一報還一報」策略是這樣的:我方在第一次相遇時選擇合作,之後就採取對方上一次的選擇。這意味著在對方每一次背叛後,我方就「以牙還牙」,也背叛一次;對方每一次合作後,我方就「以德報德」一次。
該策略有別於「善良」的「永遠合作」或「邪惡」的「永遠背叛」對策,及對方一旦「不忠」,我方就不再給機會,長久對抗的策略。
如果你選擇「永遠背叛」策略,你或許會在第一局拿到最高分,但之後的各局可能都只能拿到低分,最後雖然可能「戰勝」不少對手,但由於總分很低,最終難逃被淘汰出局的命運。所以除非很難與對方再次相遇,不用擔心其日後的反應,才可選擇對抗與背叛;否則,在長期互動、博弈的關系中,「一報還一報」是最佳策略:它是善意的,從不首先背叛;它不迂腐,不管過去相處多好,仍然對背叛有反應;它是寬容的,不因一次背叛而選擇玉石俱焚。
② 對計算思維的認識和理解
計算思維包括演算法、分解、抽象、概括和調試五個基本要素。
與許多概念一樣,計算思維在學術界存在一定的共識,但也有不少爭議。在取得共識的層面,多數研究者都認可:
1.計算思維是一種思維過程,可以脫離電腦、互聯網,人工智慧等技術獨立存在。
2.這種思維是人的思維而不是計算機的思維,是人用計算思維來控制計算設備,從而更高效、快速的完成單純依靠人力無法完成的任務,解決計算時代之前無法想像的問題。
3.這種思維是未來世界認知、思考的常態思維方式,它教會孩子理解並駕馭未來世界。
計算思維的定義是從目前計算機科學所處的水平和角度提出的概念。這個概念可以概括當前計算機工作的特點,但如果作為一種思維方式進行推廣可能會在某種程度上限制人們的思維。
從另一個角度看計算思維概念的提出具有非常積極的意義,它從一定程度上簡明扼要地指出了計算機科學的核心和本質問題。為其他科學領域的研究人員深入學習和理解計算機科學提供了很好的目標與方向。綜上所述計算思維目前還是一個處於研究和探索的定義或概念,有待發展和完善。
③ 計算思維隨著計算機的誕生而誕生,隨著計算機的發展而發展嗎
對。
計算思維是每個人的基本技能,不僅僅屬於計算機科學家。我們應當使每個孩子在培養解析能力時不僅掌握閱讀、寫作和算術(Reading, wRiting, and aRithmetic——3R),還要學會計算思維。正如印刷出版促進了3R的普及,計算和計算機也以類似的正反饋促進了計算思維的傳播。
計算思維是運用計算機科學的基礎概念去求解問題、設計系統和理解人類的行為。它包括了涵蓋計算機科學之廣度的一系列思維活動。當我們必須求解一個特定圓笑的問題時,首先會問:解決這個問題有多麼困難?怎樣才是最佳的解決方法?計算機科學根據堅實的理論基礎來准確地回答這些問題。表述問題的難度就是工具的基本能力,必須考慮的因素包括機器的指令系統、資源約束和操作環境。
為了有效地求解一個問題,我們可能要進一步問:一個近似解是否就夠了,是否可以利用一下隨機化,以及是否允許誤報(false positive)和漏報(false negative)。計算思維就是通過約簡、嵌入、轉化和模擬等方法,把一個看來困難的問題重新闡釋成一個我們知道怎樣解決的問題。
計算思維是一種遞歸思維 它是並行處理。它是把代碼譯成數據又把數據譯成代碼。它是由廣義量綱分析進行的類型檢查。對於別名或賦予人與物多個名字的做法,它既知道其益處又了解其害處。對於間接定址和程序調用的方法,它既知道其威力又了解其代價。它評價一個程序時,不僅僅根據其准確性和效率,還有美學的考量,而對於系統的設褲余計,還考慮簡潔和優雅。
抽象和分解 來迎接龐雜的任務或者設計巨大復雜的系統。它是關注的分離(SOC方法)。它是選擇合適的方式去陳述一個問題,或者是選擇合適的方式對一個問題的相關方面建模使其易於處理。它是利用不變數簡明扼要且表述性地刻畫系統的行為。它使我們在不必理解每一個細節的情況下就能夠安全地使用、調整和影響一個大型復雜系統的信息。它就是為預期的未來應用而進行的預取和緩存。計算思維是按照預防、保護及通過冗餘、容錯、糾錯的方式從最壞情形恢復的一種思維。它稱堵塞為「死鎖」,稱約定為「界面」。計算思維就是學習在同步相互會合時如何避免「競爭條件」(亦稱「競態條件」)的情形。
計算思維利用啟發式推理來尋求解答,就是在不確定情況下的規劃、學習和調度。它就是搜索、搜索、再搜索,結果是一系列的網頁,一個贏得游戲的策略,或者一個反例。計算思維利用海量數據來加快胡腔滾計算,在時間和空間之間,在處理能力和存儲容量之間進行權衡。
計算思維將滲透到我們每個人的生活之中,到那時諸如演算法和前提條件這些詞彙將成為每個人日常語言的一部分,對「非確定論」和「垃圾收集」這些詞的理解會和計算機科學里的含義驅近,而樹已常常被倒過來畫了。
我們已見證了計算思維在其他學科中的影響。例如,機器學習已經改變了統計學。就數學尺度和維數而言,統計學慣用於各類問題的規模僅在幾年前還是不可想像的。各種組織的統計部門都聘請了計算機科學家。計算機學院(系)正在與已有或新開設的統計學系聯姻。
計算機學家們對生物科學越來越感興趣,因為他們堅信生物學家能夠從計算思維中獲益。計算機科學對生物學的貢獻決不限於其能夠在海量序列數據中搜索尋找模式規律的本領。最終希望是數據結構和演算法(我們自身的計算抽象和方法)能夠以其體現自身功能的方式來表示蛋白質的結構。計算生物學正在改變著生物學家的思考方式。類似地,計算博弈理論正改變著經濟學家的思考方式,納米計算改變著化學家的思考方式,量子計算改變著物理學家的思考方式。
④ 如何培養和拓展學生的計算思維能力
為了培養學生的應用能力,貫徹了以學生為主體的教學理念,實行邊學習、邊設計開發、邊實踐的教育過程,在傳授科學知識的同時培養學生的系統開發實踐、技術研究與認知能力,提高其綜合素質。
通過學習知識的過程,參與科技活動,培養了學生計算思維能力和應用開發能力,增強了學生可持續發展能力和認知能力。
(4)演算法思維的發展擴展閱讀:
注意事項:
在計算教學中,我喜歡把學生在計算中可能出現的錯誤編成一系列的題目,通過巧妙設計,機智地將錯誤轉化為有助於課堂教學的資源,讓學生親身經歷錯誤的解決過程,從而促進學生思維、能力等非智力因素的發展,讓學生在判斷、改錯、比較、互相交流的過程中,理解算理,掌握演算法。
學生在學習中不斷反思自己的思考過程,思中有悟,悟中有思,只有這樣才能真正抓住數學思考的內在本質,提高數學思考能力,改進學習。引導學生學會反思是培養學生數學思考能力、數銷豎發展思維不可或缺的重要因薯大素。