第8章 计算思维_第1页
第8章 计算思维_第2页
第8章 计算思维_第3页
第8章 计算思维_第4页
第8章 计算思维_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算思维第8章《大学计算机基础(Windows10+Office2016)》教材编写组本章内容8.1

计算与计算思维8.2科学方法与科学思维8.3计算思维的例子8.4计算思维能力8.5计算思维对其他学科的影响即将学习8.1

计算与计算思维8.2科学方法与科学思维8.3计算思维的例子8.4计算思维能力8.5计算思维对其他学科的影响8.1计算与计算思维8.1.1计算机与计算1.计算机能干什么?计算机是当代最伟大的发明之一。距人类制造出第一台电子数字计算机已超过70年。经过这么多年的发展,现在计算机已经应用于社会、生活的几乎每一个方面。人们用计算机上网、写文章、打游戏、听歌或看电影,机构用计算机管理企业、设计制造产品或从事电子商务,大量机器被计算机控制,手机与计算机之间的差别越来越难以分清,计算机似乎无处不在、无所不能。12:11:48大学计算机基础48.1计算与计算思维8.1.1计算机与计算

虽然计算机能够帮助人们进行上亿次的计算,求解繁复的微分方程和方程组,描绘超乎想象的图像,模拟无法实现或耗资巨大的过程,等等,但是计算机不能替人进行拿主意、定方案等涉及思维的活动。人机的区别恰在于“思考”二字,即把计算机所不具备的直觉、综合、机敏,甚至艺术家的灵感留给人,由人来创造性地开发各种所需的算法、模型、方法。计算机是工具,网络通世界,计算晓天下,存储知古今,它通过建立在计算思维基础上的计算处理来提升人的问题解决能力。12:11:48大学计算机基础58.1计算与计算思维8.1.1计算机与计算2.什么是计算?针对一个具体问题,设计出解决问题的程序(指令序列),并由计算机来执行这个程序,这就是计算(Computation)。例如,我们用计算机帮助我们完成写文章的任务,那么计算机是怎么解决这个问题的呢?12:11:48大学计算机基础68.1计算与计算思维8.1.1计算机与计算

首先,计算机需要具备具有输入、编辑、保存等功能的计算机程序,如由金山软件公司的程序员们开发的WPS办公软件或由Microsoft公司的程序员们所写的Word程序。然后,将这个程序安装到计算机的次级存储器(磁盘),通过启动这个程序,将程序从磁盘被加载到主存储器中。然后CPU逐条取出该程序的指令并执行,直至最后一条指令执行完毕,程序结束。在执行过程中,有些指令会导致计算机与用户产生交互,例如用户利用键盘输入或删除文字,利用鼠标单击菜单进行存盘或打印,等等。由此,计算机通过执行成千上万条简单的指令,最终解决了用计算机写文章的问题。12:11:48大学计算机基础78.1计算与计算思维8.1.1计算机与计算

3.计算机的通用性事实上,计算机就是进行“计算”的机器。计算机在屏幕上显示信息,在Word文档中查找并替换文本,播放mp3音乐,这些都是计算。一般地,日常所说的计算机都是指通用计算机,它能够安装执行各种不同的程序,解决各种不同类型的问题。一台计算机的硬件虽然固定不变,但通过加载执行不同的程序,就能实现不同的功能,解决不同的问题。而在工业控制和嵌入式设备等领域,也存在专用计算机,它们只执行预定的程序,从而实现固定的功能。例如号称计算机控制的洗衣机,其实就是能执行预定程序的计算机。12:11:48大学计算机基础88.1计算与计算思维8.1.1计算机与计算

4.计算机科学计算机科学(ComputerScience,CS)是系统性研究信息与计算的理论基础以及它们在计算机系统中如何实现与应用的实用技术学科。计算机科学包含很多内容,计算机科学家们思考的根本问题是什么?下面举一个例子。关于到底什么问题是计算机可计算的,可能一般人会以为,一个问题能不能用计算机计算,取决于该计算机的计算能力;而计算机的计算能力又取决于CPU的运算速度、指令集、主存储器容量等硬件指标。若真如此,显然巨型计算机应该具有比微型计算机更强大的计算能力。然而,作为计算机科学理论基础的可计算性理论却揭示了一个出人意料的事实:所有计算机的计算能力都是一样的!尽管不同计算机有不同的指令集和不同性能的硬件,但一台计算机能解决的问题,另一台计算机肯定也能解决。12:11:48大学计算机基础98.1计算与计算思维8.1.2计算思维正如数学家在证明数学定理时有独特的数学思维、工程师在设计制造产品时有独特的工程思维、艺术家在创作诗歌音乐绘画时有独特的艺术思维一样,计算机科学家在用计算机解决问题时也有自己独特的思维方式和解决方法,我们称其为计算思维(ComputationalThinking)。1.计算思维在国外2005年6月,美国总统信息技术咨询委员会(PITAC)给美国总统提交了题为《计算科学:确保美国竞争力》(ComputationalScience:EnsuringAmerica’sCompetitiveness)的报告。报告认为如今美国又一次面临挑战,美国还没有认识到计算科学在社会科学、生物医学、工程研究、国家安全及工业改革中的中心位置,这种认识的不足将危及美国的科学领导地位、经济竞争力及国家安全。报告建议,将计算科学长期置于国家科学与技术领域中心的领导地位。12:11:48大学计算机基础108.1计算与计算思维8.1.2计算思维NSF于2006年首先提出了“扩大计算参与面”(BroadeningParticipationinComputing,BPC)计划。通过扩大计算的参与对象,使更多的人,特别是美国少数民族和妇女受益。2007年,NSF又启动了“振兴大学本科计算教育的途径”(CISEPathwaystoRevitalizedUndergraduateComputingEducating,CPATH)计划,计划认为:计算普遍存在于我们的日常生活之中,培养未来能够参与全球竞争、掌握计算核心概念的美国企业家和员工就变得非常重要。12:11:48大学计算机基础118.1计算与计算思维8.1.2计算思维2008年,NSF提出“计算使能的科学发现和技术创新”计划(Cyber-EnabledDiscoveryandInnovation,CDI),该计划是NSF的一个革命性的、富有独创精神的五年计划,该计划旨在通过“计算思维”领域的创新和进步促进自然科学和工程技术领域产生革命性的成果。2011年,NSF又启动了“二十一世纪计算教育”(ComputingEducationfor21stCentury,CE21)计划,计划建立在CPATH项目成功的基础上,其目的是提高K-14(中小学和大学一、二年级)老师与学生的计算思维能力。2016年1月,美国推出“为了全体的计算机科学”(ComputerScienceforAll,CSforAll)计划,预计投入40亿美元和1亿美元分别资助各州及学区推进K-12计算机科学教育。12:11:48大学计算机基础128.1计算与计算思维8.1.2计算思维英国政府于2013年11月发布了国家计算课程的目标框架,以计算思维的核心概念和主要内容为基础,提出课程培养的4段目标;在基础教育阶段,发展学生分析问题、解决问题的技能以及设计、计算思维技能,并使其能应用这些技能(U.K.,2013)。同年,英国对BCS投资1100万英镑,帮助其发展一项提高小学教师计算机能力的项目,以确保小学计算机教师的授课能力。2016年12月,在欧洲委员会和布鲁塞尔DigitalEurope推出的数字技能和工作联盟的推动下,甲骨文(Oracle)公司提出将在3年内投入14亿美元,用于支持欧洲的计算机科学教育。新西兰当前的“技术背景知识和技能”(TechnologicalContextKnowledgeandSkills)计划中强调了包括“编程与计算机科学”在内的5项数字技术核心培养内容,这一计划从2011年开始在中学课程中实施。12:11:48大学计算机基础138.1计算与计算思维8.1.2计算思维新加坡政府推出“Code@SG运动”发展全民计算思维,实现计算思维的常态化。新加坡与其他国家的不同之处在于,其计算课程非必修,主要面向有编程兴趣的、适龄的学生。澳大利亚于2012年推出“中小学技术学科课程框架”(TheShapeoftheAustralianCurriculum:Technologies),将“数字素养”纳入学生的基本能力要求。框架指出,数字技术课程的核心内容是应用数字系统、信息和计算思维创造满足特定需求的解决方案。12:11:48大学计算机基础148.1计算与计算思维8.1.2计算思维2.计算思维在国内中国高等学校计算机基础课程教育指导委员会于2010年5月召开了合肥会议,讨论如何培养高素质的计算机教育研究性的人才,计算机基础课应包括哪些内容,如何将计算思维融入这些课程中;2010年7月在西安交通大学举办的首届“九校联盟(C9)计算机基础课程研讨会”(以下简称C9会议)上,针对“如何在新形势下提高计算机基础教学的质量、增强大学生计算思维能力的培养”进行了充分的交流和认真的讨论,达成以下共识。12:11:48大学计算机基础158.1计算与计算思维8.1.2计算思维2.计算思维在国内(1)计算机基础教学是培养大学生综合素质和创新能力不可或缺的重要环节,是培养复合型创新人才的重要组成部分。我国高校的计算机基础教学成绩显著。然而,在新形势下,计算机基础教学的内涵在快速提升和不断丰富,进一步推进计算机基础教学改革,适应计算机科学技术发展的新趋势,是国家创新工程战略对计算机教学提出的重大要求。(2)旗帜鲜明地把“计算思维能力的培养”作为计算机基础教育的核心任务。培养复合型创新人才的一个重要内容就是要潜移默化地使他们养成一种新的思维方式:运用计算机科学的基础概念对问题进行求解、系统设计和行为理解,即建立计算思维。12:11:48大学计算机基础168.1计算与计算思维8.1.2计算思维2.计算思维在国内(3)进一步确立计算机基础教学的基础地位,加强队伍和机制建设。牢固确立计算机基础教学的基础性地位,使之与数学、物理等课程一样,成为大学通识教育的基本组成部分,并贯穿整个大学教育过程。以计算思维能力培养为新目标、新任务的计算机基础教学,需要国家教育主管部门的重视和支持;需要学校在教学时数、教学条件方面给予保障;更需要有一支高素质的、稳定的教师队伍。(4)加强以计算思维能力培养为核心的计算机基础教学课程体系和教学内容的研究。①加快组建相关的协作机构,组织在计算机科研工作和各专业应用领域中有成就的教师参加此项工作研讨,同时发动在哲学和教育学等领域从事研究工作的教师积极参与,形成计算机基础教学改革和课程建设的合力,加快推进相关的研究。12:11:48大学计算机基础178.1计算与计算思维8.1.2计算思维2.计算思维在国内②积极争取国家相关部门和学术团体的大力支持,尽快专门立项,组织国内外调研,开展试点工作,及时总结经验,建立与C9高校联盟人才培养目标相适应的计算机基础教学体系。2010年11月在济南的C9会议上,在全国更大范围内,深入讨论了以计算思维为核心的基础课程教学改革,并建议立项研究;2011年6月在北京的C9会议上,大家一致表示:计算机基础学科要改革,大家迫切希望能出一个样本以共同执行;2011年8月,在深圳的C9会议上正式确定对计算思维进行立项研究;2011年11月,在杭州召开了计算机基础课程教育指导委员会第七次工作会议,审议了3个立项报告,分别向教育部、科技部、国家自然基金委提交正式申请报告。计算思维课程现已在部分高校中开启。12:11:48大学计算机基础188.1计算与计算思维8.1.2计算思维3.计算思维的定义2006年3月,美国卡内基·梅隆大学计算机科学系主任周以真(JeannetteM.Wing)教授在美国计算机权威期刊(CommunicationsoftheACM)上发表了《计算思维》(ComputationalThinking)一文,她在文章中给出了计算思维的定义。周教授认为:计算思维是运用计算机科学的基础概念进行问题求解、系统设计及人类行为理解等涵盖计算机科学之广度的一系列思维活动。12:11:48大学计算机基础198.1计算与计算思维8.1.2计算思维3.计算思维的定义对定义的解释如下。(1)求解问题中的计算思维。利用计算手段求解问题,首先要把实际的应用问题转换为数学问题——可能是一组偏微分方程(PartialDiffierentialEqationPDE),其次将PDE离散为一组代数方程组,然后建立模型、设计算法和编程实现,最后在实际的计算机中运行并求解。前两步是计算思维中的抽象,后两步是计算思维中的自动化。(2)系统设计中的计算思维。卡普(R.Karp)指出:任何自然系统和社会系统都可视为一个动态演化系统,演化伴随着物质、能量和信息的交换,这种交换可以映射为符号变换,使之能用计算机进行离散的符号处理。当动态演化系统抽象为离散符号系统,就可以采用形式化的规范描述,建立模型、设计算法并开发软件来揭示演化的规律,实时控制系统的演化并使其自动执行。12:11:48大学计算机基础208.1计算与计算思维8.1.2计算思维3.计算思维的定义对定义的解释如下。(3)理解人类行为中的计算思维。王飞跃认为:计算思维是基于可计算的手段,以定量化的方式进行的思维过程,计算思维就是应对信息时代新的社会动力学和人类动力学所要求的思维。在人类的物理世界、精神世界和人工世界等3个世界中,计算思维是建设人工世界需要的主要思维方式。利用计算手段研究人类的行为可视为社会计算,即通过各种信息技术手段,设计、实施和评估人与环境之间的交互。12:11:48大学计算机基础218.1计算与计算思维8.1.2计算思维3.计算思维的定义

2011年,周以真对计算思维进行重新定义,认为“计算思维是一种解决问题的思维过程,能够清晰、抽象地将问题和解决方案用信息处理代理(机器或人)所能有效执行的方式表述出来”。丹宁(Denning)(2009)认为计算思维最重要的是对于抽象的理解、不同层次抽象的处理能力、算法化的思维和对大数据等造成的影响的理解。阿霍(Aho)(2012)提出计算思维是问题界定的一种思维过程,它使解决方案可以通过计算步骤或算法表示出来。我国学者董荣胜等认为计算思维是运用计算机科学的思想与方法去求解问题、设计系统和理解人类的行为,它包括了涵盖计算机科学之广度的一系列思维活动。12:11:48大学计算机基础228.1计算与计算思维8.1.2计算思维3.计算思维的定义2011年,美国国际教育技术协会(InternationalSocietyforTechnologyinEducation,ISTE)与计算机科学教师协会(ComputerScienceTeachersAssociation,CSTA)联合提出了计算思维的操作性定义,对运用计算思维解决问题的过程进行了表述。此定义将计算思维界定为问题解决的过程。在这个过程中,先形成一个能够用计算机工具解决的问题,然后在此基础上逻辑化组织和分析数据,使用模型和仿真对数据进行抽象表示,再通过算法设计实现自动化解决方案;同时,以优化整合步骤、资源为目标,分析和实施方案,并对解决方案进行总结。英国皇家科学院将计算思维定义为“识别我们周围的世界中哪些方面具有可计算性,并运用计算机科学领域的工具和技术来理解和解释自然系统、人工系统进程的过程”。这一定义的核心在于发现各种不同类型、不同层次的计算问题,并通过计算机技术和工具对人工和自然系统进行剖析和理解。12:11:48大学计算机基础238.1计算与计算思维8.1.2计算思维3.计算思维的定义2010年教育部在《高等学校计算机科学与技术专业人才专业能力构成与培养》中给出了计算思维的定义:针对计算机专业人才的培养,计算思维能力主要包括问题及问题求解过程的符号表示、逻辑思维与抽象思维、形式化证明、建立模型、实现类计算和模型计算、利用计算机技术等。王亚东教授在《计算与计算思维》报告中讲述了各种计算思维已经和即将对各门学科产生的影响,指出应在计算机专业的各门课程中渗透“计算思维”的设想。12:11:48大学计算机基础248.1计算与计算思维8.1.2计算思维4.计算思维的特征周以真教授以计算思维是什么和不是什么的描述形式对计算思维的特征进行了总结,如表8-1所示。

表8-1计算思维的特征12:11:48大学计算机基础258.1计算与计算思维8.1.2计算思维4.计算思维的特征

计算思维是运用计算的基础概念去求解问题、设计系统和理解人类行为的一种方法,是一类解析思维。它结合了数学思维(求解问题的方法)、工程思维(设计、评价大型复杂系统)和科学思维(理解可计算性、智能、心理和人类行为)。它如同读、写、算能力一样,是所有人都必须具备的思维能力。计算思维最根本的内容,即其本质是抽象和自动化。它反映了计算的根本问题,即什么能被有效地自动进行。计算是抽象的自动执行,自动化需要某种计算机去解释抽象。从操作层面上讲,计算就是如何寻找一台计算机去求解问题,隐含地说就是要确定合适的抽象,选择合适的计算机去解释并执行该抽象,后者就是自动化。计算思维中的抽象完全超越了物理的时空观,并完全用符号来表示,数字抽象只是其中的一类特例。12:11:48大学计算机基础268.1计算与计算思维8.1.2计算思维5.计算思维的基本原则计算思维建立在计算机的能力和限制之上,这是计算思维区别于其他思维方式的一个重要特征。用计算机解决问题时必须遵循的基本思考原则是:既要充分利用计算机的计算和存储能力,又不能超出计算机的能力范围。例如,能够高速执行大量指令是计算机的能力,但每条指令只能进行有限的一些简单操作则是计算机的限制,因此我们不能要求计算机去执行无法划归为简单操作的复杂任务。又如,计算机只能表示固定范围内的有限整数,任何算法如果涉及超出范围的整数,都必须想办法绕开这个限制。12:11:48大学计算机基础278.1计算与计算思维8.1.2计算思维5.计算思维的基本原则计算思维是人的思想和方法,旨在利用计算机解决问题,而不是使人类像计算机一样做事。作为“思想和方法”,计算思维是一种解题能力,一般不可以机械地套用,只能通过学习和实践来培养。计算机虽然机械而笨拙,但人类的思想赋予计算机以活力,装备了计算机的人类能够利用自己的计算思维解决过去无法解决的问题、建造过去无法建造的系统。12:11:48大学计算机基础28即将学习8.1

计算与计算思维8.2科学方法与科学思维8.3计算思维的例子8.4计算思维能力8.5计算思维对其他学科的影响8.2科学方法与科学思维8.2.1科学与思维什么是科学?达尔文曾经给科学下过一个定义:“科学就是整理事实,从中发现规律,做出结论。”科学包括自然科学、社会科学和思维科学。什么是思维呢?思维与大脑有关。思维是高级的心理活动,是认识的高级形式;思维是人脑对现实事物的概括、加工,是对其本质特征的揭露。人脑对信息的处理包括分析、抽象、综合、概括等。12:11:48大学计算机基础308.2科学方法与科学思维8.2.1科学与思维科学的重要性在于它是真理,推动着人类文明的进步和科技的发展。科学思维是什么呢?它一般包括逻辑思维、实证思维和计算思维。逻辑思维又称推理思维,以推理和演绎为特征,以数学学科为代表。实证思维又称实验思维,以观察和总结自然规律为特征,以物理学科为代表。计算思维又称构造思维,以设计和构造为特征,以计算机学科为代表。国科发财〔2008〕197号文附件《关于加强创新方法工作的若干意见》认为,“科学思维不仅是一切科学研究和技术发展的起点,而且始终贯穿于科学研究和技术发展的全过程,是创新的灵魂”。科学思维的含义和重要性在于它反映的是事物的本质和规律。12:11:48大学计算机基础318.2科学方法与科学思维8.2.2科学思维科学思维是指理性认识及其过程,即对感性阶段获得的大量材料进行整理和改造,形成概念、判断和推理,以反映事物的本质和规律。简而言之,科学思维是大脑对科学信息的加工活动。“理论科学、实验科学和计算科学作为科学发现的三大支柱,正推动着人类文明进步和科技发展”。该说法已被科学文献广泛引用,并在美国得到国会听证、联邦和私人企业报告的认同。12:11:48大学计算机基础328.2科学方法与科学思维8.2.2科学思维人类认识世界和改造世界的3种科学思维如下。(1)逻辑思维。逻辑思维以推理和演绎为特征,以数学学科为代表。开拓者是苏格拉底、柏拉图、亚里士多德、莱布尼茨和希尔伯特等。逻辑思维基本构建了现代逻辑学的体系,其思维结论符合以下原则:有作为推理基础的公理集合;有一个可靠和协调的推演系统(推演规则);结论只能从公理集合出发,经过推演系统的合法推理得出结论。理论源于数学,逻辑思维支撑着所有的学科。正如数学一样,定义是理论逻辑的灵魂,定理和证明是其精髓,公理化方法是其中最重要的逻辑思维方法。12:11:48大学计算机基础338.2科学方法与科学思维8.2.2科学思维(2)实证思维。实证思维以观察和总结(归纳的方式,不是数学归纳)自然规律(包括人类社会活动)为特征,以物理学科为代表。其思维结论主要有以下特征:可以解释以往的实验现象;逻辑上自洽;能够预见新的现象。实证思维的先驱是意大利科学家伽利略,他被人们誉为“近代科学之父”。与逻辑思维不同,实证思维往往要借助于某些特定的设备来获取数据以便进行分析。12:11:48大学计算机基础348.2科学方法与科学思维8.2.2科学思维(3)计算思维。计算思维以设计和构造为特征,以计算机学科为代表。计算思维是运用计算机科学的基础概念来进行问题求解、系统设计和人类行为理解,涵盖了计算机科学之广度的一系列思维活动。尽管从人类思维产生的时候,结构、构造、可行性这些意识就已经存在于思维之中,而且是人类经常使用和熟悉的内容,但是其作为概念被提出,可能是在莱布尼茨、希尔伯特之后且经历了较长的时间。计算思维是思维过程或功能的计算模拟方法论,其研究目的是提供适当的方法,使人们能借助计算机逐步达到人工智能的较高目标。模式识别、决策、优化和自动控制等算法都属于计算思维范畴。12:11:48大学计算机基础358.2科学方法与科学思维8.2.3科学方法1.什么是科学方法?科学方法是指人们在认识和改造世界的过程中遵循或运用的、符合科学一般原则的各种途径和手段,包括在理论研究、应用研究、开发推广等科学活动中采用的思路、程序、规则、技巧和模式。简单地说,科学方法就是人类在所有认识和实践活动中所运用的全部正确方法。计算机科学主要研究计算思维的概念、方法和内容,并发展成为解决问题的一种思维模式,这极大地推动了计算思维的发展。12:11:48大学计算机基础368.2科学方法与科学思维8.2.3科学方法2.科学方法的特点科学方法是人类所有认识方法中比较高级、比较复杂的一种方法。它具有以下特点。(1)鲜明的主体性。科学方法体现了科学认识主体的主动性、认识主体的创造性,并具有明显的目的性。(2)充分的合乎规律性。科学方法是以合乎理论规律为主体的科学知识的程序化。(3)高度的保真性。科学方法是以观察和实验以及它们与数学方法的有机结合对研究对象进行的量的考察,保证所获得的实验事实的客观性和可靠性。12:11:48大学计算机基础378.2科学方法与科学思维8.2.3科学方法2.科学方法的特点科学方法是人们为获得科学认识所采用的规则和手段系统,是科学认识的成果和必要条件。科学方法可分为3个层次:①单学科方法,也称专门科学方法;②多学科方法,也称一般科学方法,是适用于自然科学和社会科学的一般方式、手段和原则;③全学科方法,是具有最普遍方法论意义的哲学方法。科学方法是科学家和发明家用来探索自然的方法,是进行科学研究、描述科学调查、根据证据获得新知识的模式或过程。12:11:48大学计算机基础388.2科学方法与科学思维8.2.3科学方法3.科学方法的步骤科学方法包括以下步骤。观察:用感应器官去注意自然现象或实验中的种种转变并将其记录下来,涉及的活动包括眼看、鼻嗅、耳闻和手的触摸。假说:解释从观察得到的事实。预测:根据假说引申出可能的现象。确认:通过进一步的观察和实验去证实预测的结果。12:11:48大学计算机基础398.2科学方法与科学思维8.2.3科学方法4.计算思维区别于逻辑思维和实证思维的关键点与数学和物理学科相比,计算思维中的抽象显得更为丰富,也更为复杂。数学抽象的最大特点是抛开现实事物的物理、化学和生物学等特性,仅保留其量的关系和空间的形式,而计算思维中的抽象却不仅仅如此。计算思维的解释如下。(1)计算思维通过约简、嵌入、转化和仿真等方法,把一个看起来困难的问题重新阐释成一个人们知道如何解决的问题。(2)计算思维一种递归思维,是一种并行处理思维,是一种把代码译成数据又能把数据译成代码的多维分析推广的类型检查方法。(3)计算思维采用抽象和分解的方法来控制庞杂的任务或进行巨型复杂系统的设计,是一种基于关注点分离的方法。12:11:48大学计算机基础408.2科学方法与科学思维8.2.3科学方法4.计算思维区别于逻辑思维和实证思维的关键点(4)计算思维是一种选择合适的方式陈述一个问题或为一个问题的相关方面建模使其易于处理的思维方法。(5)计算思维是按照预防、保护及通过冗余、容错、纠错的方式,并从最坏情况进行系统恢复的一种思维方式。(6)计算思维是利用启发式推理寻求解答,即在不确定的情况下规划、学习和调度的思维方法。(7)计算思维是一种利用海量数据来加快计算,在时间和空间之间、在处理能力和存储容量之间进行折中的思维方法。12:11:48大学计算机基础418.2科学方法与科学思维8.2.3科学方法5.计算机的出现推动了计算思维的发展尽管计算思维在人类思维的早期就已经萌芽,并且一直是人类思维的重要组成部分。但是关于计算思维的研究却进展缓慢,在很长一段时间里,计算思维的研究是作为数学思维的一部分进行的。主要的原因是计算思维考虑的是可构造性和可实现性,而相应的手段和工具的发展一直是缓慢的。计算机出现以后这一情况得到了根本性的改变。计算机对于信息和符号的快速处理能力,使得许多原本只是理论上可以实现的过程变成了实际可以实现的过程。海量数据的处理、复杂系统的模拟、大型工程的组织,人类借助计算机实现了从想法到产品的整个过程的自动化、精确化和可控化,大大拓展了人类认知世界和解决问题的能力和范围。12:11:48大学计算机基础428.2科学方法与科学思维8.2.3科学方法5.计算机的出现推动了计算思维的发展机器替代人类完成部分智力活动催生了对于智力活动机械化的研究热潮,凸显了计算思维的重要性,推进了对于计算思维的形式、内容和表述的深入探索。计算机的出现丰富了人类改造世界的手段,同时也强化了原本只存在于人类思维中的计算思维的意义和作用。从思维的角度来看,计算机科学主要研究计算思维的概念、方法和内容,并发展成为解决问题的一种思维模式,这极大地推动了计算思维的发展。12:11:48大学计算机基础43即将学习8.1

计算与计算思维8.2科学方法与科学思维8.3计算思维的例子8.4计算思维能力8.5计算思维对其他学科的影响8.3计算思维的例子8.3.1计算机科学常见的思想方法基于计算机的能力和局限,计算机科学家提出了很多关于计算的思想和方法,从而建立了利用计算机解决问题的一整套思维工具。下面简要介绍计算机科学家在计算的不同阶段所采用的常见思想和方法。1.问题表示用计算机解决问题,首先要建立问题的计算机表示。问题表示与问题求解是紧密相关的,如果问题的表示合适,那么得出问题的解法就是水到渠成的事,否则可能如逆水行舟,难以得到解法。抽象是用于问题表示的重要思维工具。例如,小学生经过学习都知道将应用题“原来有5个苹果,吃掉2个后还剩几个”抽象表示成“5−2”,这里显然只抽取了问题中的数量特性,完全忽略了苹果的颜色或吃法等不相关特性。一般意义上的抽象,就是指这种忽略研究对象的具体的或无关的特性,而抽取其一般的或相关的特性。12:11:48大学计算机基础458.3计算思维的例子8.3.1计算机科学常见的思想方法计算机科学中的抽象包括数据抽象和控制抽象,简言之就是将现实世界中的各种数量关系、空间关系、逻辑关系和处理过程等表示成计算机世界中的数据结构(数值、字符串、列表、堆栈、树等)和控制结构(基本指令、顺序执行、分支、循环、模块等),或者说建立实际问题的计算模型。抽象是计算机科学中广泛使用的思维方式,只要有可能并且合适,程序员就应当使用抽象。可以在不同层次上对数据和控制进行抽象,不同抽象级可对问题进行不同颗粒度或详细程度的描述。例如,对计算本身的理解就可以形成“电子电路→门逻辑→二进制→机器语言指令→高级语言程序”这样一个由低到高的抽象层次,我们之所以在高级语言程序这个层次上学习计算,就是为了隐藏那些低抽象级的烦琐细节。12:11:48大学计算机基础468.3计算思维的例子8.3.1计算机科学常见的思想方法2.算法设计问题得到表示,接下来的关键是找到问题的解法——算法。算法设计是计算思维的重要领域,计算机科学家采用多种思维方式和方法来发现有效的算法。例如,利用分治法的思想找到高效的排序算法,利用递归思想轻松地解决Hanoi塔问题。大型问题和复杂系统一般很难得到直接的解法,这时计算机科学家会设法将原问题重新表述,降低问题难度,常用的方法包括分解、化简、转换、嵌入、模拟等。如果一个问题过于复杂难以得到精确解法,或者根本就不存在精确解法,计算机科学家将寻求能得到近似解的解法,通过牺牲精确性来换取有效性和可行性。12:11:48大学计算机基础478.3计算思维的例子8.3.1计算机科学常见的思想方法3.编程技术找到了解决问题的算法,接下来就要用编程语言实现算法。例如,类型化与类型检查方法将待处理的数据划分为不同的数据类型,编译器或解释器借此可以发现很多编程错误,这和自然科学中的量纲分析的思想是一致的。编程范型(ProgrammingParadigm)是指计算机编程的总体风格,不同范型中的编程要素(如数据、语句、函数等)有不同的概念,计算的流程控制也是不同的。早期的命令式(或称过程式)语言催生了过程式(Procedural)范型。后来发明了面向对象语言,数据和操作数据的方法融为一体(对象),对象间进行交互从而实现系统功能,这就形成了面向对象(Object-oriented)范型。逻辑式语言、函数式语言的发明催生了声明式(Declarative)范型12:11:48大学计算机基础488.3计算思维的例子8.3.1计算机科学常见的思想方法4.可计算性与算法复杂性在用计算机解决问题时,不仅要找出正确的解法,还要考虑解法的复杂度。这和数学思维不同,因为数学家可以满足于找到正确的解法,决不会因为该解法过于复杂而抛弃不用。但对计算机来说,如果一个解法太复杂,导致计算机要耗费几年、几十年甚至更久的时间才能算出结果,那么这种解法只能被抛弃,问题等于没有解决。有些问题是可解的,但算法复杂度太高;而另一些问题则根本不可解,不存在任何算法过程。计算机科学的根本任务是从本质上研究问题的可计算性。虽然很多问题对于计算机来说难度太高甚至是不可能的任务,但计算思维具有灵活、变通、实用的特点,对这样的问题它们可以去寻求不那么严格但现实可行的实用解法。12:11:48大学计算机基础498.3计算思维的例子8.3.2Google计算思维2018年,谷歌中国教育合作项目推出谷歌计算思维课程中文版,其中定义计算思维是一个有着诸多特点和要求的解决问题的过程,可用于解决人文、数学和科学等各种学科的问题。计算思维是一种问题求解的方式,这种方式会将问题分解,并且利用已有的计算知识找出解决问题的方法。在谷歌计算思维课程中,计算思维被分成4步:

(1)第一步是分解或结构,把问题进行拆分,同时理清各个部分的属性,明晰如何拆解一个任务,即把数据或问题分解成更小的易于管理的部分;

(2)第二步是模式识别,找出拆分后问题各部分之间的异同,为后续的预测提供依据,即观察数据的模式趋势和规律;

12:11:48大学计算机基础508.3计算思维的例子8.3.2Google计算思维

(3)第三步是模式归纳和抽象,要识别和归纳模式背后的一般原理,即探寻形成这些模式的一般规律;

(4)第四步是算法设计或算法开发,为解决这一类问题撰写一系列详细的步骤,即针对相似的问题提供逐步的解决办法。如今人们尝试在许多学科领域中应用计算思维解决问题,提出了很多容易被计算机解决的问题,通过分析和计算探索了问题内部的规律。。12:11:48大学计算机基础518.3计算思维的例子8.3.3计算思维案例

(1)计算思维案例1——分解在计算思维中,需要把问题分解成若干个部分或步骤。分解是把大问题拆解成小问题,即由大化小,将一个复杂的问题分解为简单问题,把新问题拆分转化为老问题,如图8-1所示。以吃蛋糕为例,一块大蛋糕如果没被切开,吃起来是非常困难的,可以使用工具把它分成很多小块,而一小块也不可能一口就吃完,还要一口一口吃。这就是将一个大问题拆解成小问题,再把小问题拆解成简单问题的过程,进而一步一步地来解决一个大问题。

图8-1问题分解12:11:48大学计算机基础52图8-1问题分解8.3计算思维的例子8.3.3计算思维案例

(2)计算思维案例2——模式识别模式识别是指从问题间关系分析入手,寻找问题或者子问题之间的模式规律或者趋势,目标是分析和理解简单问题的实质。如图8-2所示,在水果店买3个苹果共需9元,如果要买5个梨子,每个4元,能找到什么规律计算总价呢?这里的计算模式就是单价乘以数量等于总价。图8-2模式识别

12:11:48大学计算机基础538.3计算思维的例子8.3.3计算思维案例

(3)计算思维案例3——模式归纳模式归纳是基于学科案例中蕴含的一些模式,形成一套独有的、借助模式识别方法来进行问题研究的流程。如将宋词分解为不同构的组成部分,如词牌名、基本结构、词格、韵脚以及词句的对仗等,识别每一个部分背后的模式和规律,并将它们抽象化和一般化,进而就可以实现计算机创作宋词,如图8-3所示。第一步是分解和分析,将要设计的宋词分解成不同部分,并划分成不同的组成,然后分别检查和设计每个组成部分;第二步是进行模式的识别和算法的探究,找规律来创作;第三步是通过抽象化来掌握宋词的结构,之后就可以创作出不同的宋词了。

12:11:48大学计算机基础548.3计算思维的例子8.3.3计算思维案例

(3)计算思维案例3——模式归纳

图8-3计算机创作宋词的步骤

12:11:48大学计算机基础558.3计算思维的例子8.3.3计算思维案例

(4)计算思维案例4——抽象抽象是指高度概括简单问题的实质,为高效解决问题指引方向。看到有蓝天白云、一望无际的草原以及两只小羊的画面,艺术家、生物学家、数学家有着不同的感受与理解。如图8-4所示。

图8-4计算思维案例——抽象12:11:48大学计算机基础568.3计算思维的例子8.3.3计算思维案例

(4)计算思维案例4——抽象艺术家觉得这是一幅描绘了蓝天、白云、绿草、小羊的自然美图;对于生物学家来说,图中是一对雌雄羊,繁衍生息;而数学家想到的则是图中共有1+1=2只羊。艺术家关注的是自然美,生物学家关注的是生命,数学家却从色彩、性别状态中抽象出数量关系,这就是数学高度抽象性的体现。抽象涉及的是从无关细节中分离出核心信息,它是计算思维的核心。

12:11:48大学计算机基础578.3计算思维的例子8.3.3计算思维案例

(5)计算思维案例5——算法设计算法设计是要解决前面分而治之的小问题,通过用切实可行的方法解决小问题,进而达到解决复杂问题的目标。在算法设计中,要完成某项任务的一系列的指令以及解决问题的方案,或者是步骤(包含分解抽象及模式识别),就像一条线,串起了计算思维在各个领域的应用。如图8-5所示,火星机器人着陆后,如何在无人控制情况下实现自动寻路呢?

图8-5火星探测器翻越障碍自动寻路12:11:48大学计算机基础588.3计算思维的例子8.3.3计算思维案例

(5)计算思维案例5——算法设计分解:在控制火星机器人翻越前面障碍的过程当中,机器人要左右移动,可以把它分解成左移或者是右移的动作。模式:左移的模式与右移类似,左移设计好了,直接运用到右移即可。抽象:机器人与障碍物的处理可以将机器人抽象成多边形,通过计算多边形之间是否重叠来判断其是否撞到障碍物而导致失败。算法:实现程序,依次完成角色导入(即背景、火星机器人、障碍图标等)、设定机器人初始位置、控制机器人上下移动、背景移动,设计碰撞法等。

12:11:48大学计算机基础598.3计算思维的例子8.3.4日常生活中的计算思维计算思维存在于人们日常生活中的很多方面,我们在日常生活中的很多做法都与计算思维不谋而合。下面列举一些日常生活中的实例,帮大家理解计算思维。(1)缓冲。假如我们将学生用的教材视为数据,将课堂教学视为对数据的处理,那么学生每天背着的书包就可以看作缓冲存储。学生不可能每天随身携带所有的教材,因此每天只能把当天要用的教材放入书包,第二天再用新的教材替换。(2)算法过程。日常生活中使用的菜谱会将一道菜的烹饪方法一步一步地罗列出来,即使不是专业厨师,照着菜谱的步骤也能做出可口的菜肴。由此,菜谱可以看作一个算法(指令或程序)。而菜谱上的每个步骤必须足够简单、可行,这样人们才能进行制作。例如,“将土豆切成块状”“将1两油入锅加热”等都是可行的步骤,而“使菜肴具有奇特香味”则不是可行的步骤。12:11:48大学计算机基础608.3计算思维的例子8.3.4日常生活中的计算思维(3)模块化。很多菜谱都有“勾芡”这个步骤,与其说这是一个基本步骤,不如说它是一个模块,因为勾芡本身代表着一个操作序列——取一些淀粉,加点水,搅拌均匀,在适当的时候倒入菜中。由于这个操作序列经常使用,为了避免重复,也为了使菜谱结构清晰、易读,所以用“勾芡”这个术语简明地表示。这个例子同时也反映了在不同层次上进行抽象的思想。(4)查找。如果要在英汉词典中查一个英文单词,相信读者不会从第一页开始一页页地翻看,而是会根据字典是有序排列的事实,快速地定位单词词条。又如,如果现在老师说请翻到本书第8章,学生会怎么做呢?是的,正文前的目录可以帮助我们直接找到第8章所在的页码。这正是计算机中广泛使用的索引技术。12:11:48大学计算机基础618.3计算思维的例子8.3.4日常生活中的计算思维(5)回溯。人们在路上遗失了东西之后,会原路返回边走边寻找。或者在一个岔路口,人们会选择一条路走下去,如果最后发现此路不通就会原路返回岔路口,再选择另一条路。这种回溯法对于系统地搜索问题空间是非常重要的。(6)并发。厨师在烧菜时,如果一个菜需要在锅中煮一段时间,厨师一定会利用这段时间去做点别的事情(如将另一个菜的原材料洗净切好),而绝不会无所事事。在此期间,如果锅里的菜需要加盐等佐料,厨师又会放下手头的事情去处理锅里的菜。就这样,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论