① 计算思维技能的算法思维
在计算思维技能中,算法思维具有非常鲜明的计算机科学特征。
有些问题是一次性的,但解决这些问题的方案,则可以不断发展。在同类问题一再出现时,算法思维就可以介入。没有必要重新每次从头思考,而是采用每次都行之有效的解决方案。
算法思维在许多“策略性“棋盘游戏中非常重要。理想情况下需要有保证胜利,或者至少不会输的策略。所有这种策略都是一套规则,告诉你无需思索即怎么做每一步:也就是计算机科学家称之为算法的东西。如果你能建立这样的一套规则,这不仅可以成为完好游戏的基础,也成为一个设计优秀的计算机程序的基础。无论老幼,只要准遵循这套规则,就可以玩好这场游戏!
算法思维是在思考使用算法来解决问题的方法。这是学习自己编写计算机程序时需要开发的核心技术。
囚徒困境(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)算法思维的发展扩展阅读:
注意事项:
在计算教学中,我喜欢把学生在计算中可能出现的错误编成一系列的题目,通过巧妙设计,机智地将错误转化为有助于课堂教学的资源,让学生亲身经历错误的解决过程,从而促进学生思维、能力等非智力因素的发展,让学生在判断、改错、比较、互相交流的过程中,理解算理,掌握算法。
学生在学习中不断反思自己的思考过程,思中有悟,悟中有思,只有这样才能真正抓住数学思考的内在本质,提高数学思考能力,改进学习。引导学生学会反思是培养学生数学思考能力、数销竖发展思维不可或缺的重要因薯大素。