注重培养计算思维,提高应用计算机解决问题的能力_第1页
注重培养计算思维,提高应用计算机解决问题的能力_第2页
注重培养计算思维,提高应用计算机解决问题的能力_第3页
注重培养计算思维,提高应用计算机解决问题的能力_第4页
注重培养计算思维,提高应用计算机解决问题的能力_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、注重培养计算思维,提高应用计算机解决问题的能力开言: 计算机语言种类繁多, 计算机应用领域广泛, 编程对象各不相同, 难以兼顾全面。 仅就其中通性略谈些许, 仅以计算实例小做分析,望对同学们有所启发和帮助。要点:着眼于宏观层面的思维方式,侧重于科学计算的编程能力。0、引言研究生在学习和今后的论文课题中都离不开利用计算机解决面临的问题。掌握一种或数种计算机语言,具备使用计算机解决问题的能力是当代高素质人才不可或缺的。很多时候计算机的使用者特别是初学者,在使用计算机解决实际问题时,总是存在无从下手的困惑。因此,现在有很多关于编程能力和编程技巧的培训和书籍。这些培训和书籍作为程序设计训练的载体, 可

2、以促进计算机使用者多学多练, 对于提高学生的编程能力会有所帮助。但是我认为:掌握和提高编程能力,除了需要多学多练,更重要的却在于培养计算思维,把握自然语言到计算机语言的思维方式转换。掌握计算机编程的核心问题不是语言的熟练程度、 不是编程技巧,而是思维方式的转换和培养。实际上,不管是哪种计算机语言,是面向过程的还是面向对象的、 是解决科学计算问题的还是处理经济管理问题的、 亦或是应用各种专有目的的软件工具, 我们只要以一种计算机语言为载体能够熟练应用,就可以举一反三、融会贯通于其他。如果把利用计算机解决问题的能力简单分级的话,大致可以分成初级阶段:会用计算机做你能做的事情。中级阶段:会用计算机做

3、你想做的事情。高级阶段:会用计算机做你不能做的事情。要从自然语言向计算机语言转换, 就必须了解计算机语言与自然语言的特点。1、 计算机语言与自然语言思维是在表象、概念的基础上进行分析、综合、判断、推理等认识活动的过程,是人类特有的一种精神活动,而思维方式则是人类看待事物的角度。自然语言是人类最重要的交际工具,是人们进行沟通交流的各种表达符号集合,是思维的最重要的载体。“计算机语言”是人类设计的人与计算机进行交流的工具,是人利用计算机实现自然思维的载体。如果我们把“计算机思维方式”解释为“根据计算机的特点、从计算机语言的角度看待事物” , 那么通常所说的 “编程能力” , 很大程度上就指的是“人

4、的自然思维方式到计算机思维方式的转换能力” 。( 1)人类自然语言的特点人类自然语言既是交流的工具, 又是认知的工具, 同时也是思维的工具。 由于人类自然语言同时要满足这三种功能, 它就必须达到如下要求:思想、方法、对象三者同时融于语言之中,这就是人类自然语言的 “三位一体性” 。试想, 如果我们用语言交流, 双方却不能通过语言知晓对方的思想;我们用语言认知,却不能用语言把握对象、掌握方法;我们用语言思维,我们却不知用的什么方法,思维的对象是什么。在这样的情况下,语言对人类而言恐怕就不会有任何意义了。( 2)计算机语言的发展计算机语言是人类所设计出的能让计算机“听懂”和“知晓”的人与计算机进行

5、交流的工具。计算机语言是人与计算机之间传递信息的媒介。 计算机的最大特征是指令通过一种语言传达给机器。 为了使计算机进行各种工作, 就需要有一套用以编写计算机程序的数字、 字符和语法规则, 由这些字符和语法规则组成计算机各种指令或各种语句。机器语言:机器语言是指一台计算机全部的指令集合计算机可以直接识别的由二进制代码构成的计算机语言。缺点可读性差,不易记忆;编写程序既难又繁,容易出错;程序调试和修改难度巨大, 不容易掌握和使用。 机器语言直接依赖于中央处理器,所以用某种机器语言编写的程序只能在相应的计算机上执行,无法在其他型号的计算机上执行,即可移植性差。汇编语言汇编语言是指用一些简洁的英文字

6、母、 符号串来替代一个特定的指令的二进制串的计算机语言。例如使用 “ADD ”来替代加法的二进制指令,用 "MOV" 代表数据传递等等。为了减轻使用机器语言编程的痛苦, 20 世纪 50 年代初,出现了 汇编语言。汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。 尽管汇编语言比机器语言方便, 但汇编语言仍然具有许多不便之处, 程序编写的效率远远不能满足需要,而且可移植性差。高级语言高级语言与自然语言和数学表达式相当接近,不依赖于计算机型号,通用性较好。早期高级语言

7、1954 年, 第一个高级语言 FORTRAN 问世了。 高级语言的使用, 大大提高了程序编写的效率和程序的可读性。 与汇编语言一样, 计算机无法直接识别和执行高级语言, 必须翻译成等价的机器语言程序 (称为目标程序)才能执行。结构化高级语言随着计算机硬件技术的日益发展, 人们对大型、 复杂的软件需求量剧增, 需要对程序设计方法、 程序的正确性和软件的可靠性等问题进行深入研究,需要对软件的编制、测试、维护和管理方法进行深入研究。 结构化程序设计是一种程序设计的原则和方法。 它讨论了如何避免使用 GOTO 语句;如何将大规模、复杂的流程图转换成一种标准的形式( NS 图) ,使得它们能够用几种标

8、准的控制结构(顺序、分支和循环)通过重复和嵌套来表示。 C 语言就是一种结构化语言。面向对象语言结构化程序设计方法与语言是面向过程的, 存在较多的缺点, 同时程序的执行是流水线式的, 这和人们日常认识、 处理事物的方式不一致。 为了使计算机更易于模拟现实世界, 引入了数据抽象和类的概念,产生了面向对象的计算机语言。由计算机语言的发展过程可以看出随着人类对计算机使用的目的要求的变化,计算机不断更新发展、计算机语言也在同步发展变化。( 3)计算机语言的特点计算机语言始终只是交流的工具,不具备认知和思维的功能。计算机语言不具备人类自然语言 “三位一体性” 的特点(交流、认知、思维;思想、方法、对象)

9、 ,只是一种不具备认知和思维、且将思想、方法和对象分离的交流工具。计算机语言的这个功能单一性特点, 既带来了计算机的速度快和自动化的优势, 但同时也造成了人们使用计算机解决问题过程中, 用自然语言思维转换为用计算机语言思维过程的困难。计算机不能借助计算机语言进行思维, 这就意味着计算机语言是将思想与方法、思想与对象做了分离。通常所称“计算机的思维” ,实际上是编程者借助计算机语言实现的存在于编程者大脑中的思维。计算机语言是一种高度形式化的语言, 其所要处理的对象, 就是各种“数据” (即使我们称现在的计算机能够处理 “图象 ”和 “声音 ” ,它 也是把这些图象和声音变成了数据之后进行处理的)

10、,这意味着计算 机语言是将方法与对象做了分离;而我们之所以能够有效地利用计算 机,其中最关键的一条也就是我们把需要计算机处理的信息变成了数据”。由于计算机语言能使思想与方法、方法与对象、思想与对象 三者之间达到非常有效的分离,计算机 计算”的时候,就不会象人类 大脑那样,左半脑中的一个语词指称的是一个几乎难以确切地划分出边界”的右半脑中的图景,而是一块有着确定 地址”的内存区域,计 算机就能够快速、准确地寻址和计算。以上内容介绍的目的在于让大家了解如下三点计算机的灵魂在于它的速度和自动化, 具硬件和软件的一切发展 都是围绕着这两点进行。计算机实际上不会“思维”,计算机语言只 是人类思维借助于计

11、算机解决问题的一种交流工具,只是人类为了更 好的利用计算机而依据计算机构造特点而设计的诸多表达符号和规 则的集合。我们使用计算机时呈现出来的所谓“计算机思维方式”,就是使用计算机语言描述我们要解决的问题的求解过程,即是人的自然思维通过计算机语言而实现的一种思维映射。一方面,计算机之所以能够比人类大脑更加快速准确地 计算”, 就是硬件与软件的分离、程序与数据的分离,也就是将我们人类自然 语言中的思想与方法、方法与对象、思想与对象实行了分离。另一方面,由于计算机语言将我们人类自然语言中的思想与方 法、方法与对象、思想与对象实行了分离,使得计算机不能象人的大 脑那样工作,造成了我们使用计算机的困难。

12、所以要应用计算机解决问题,计算机的使用者就必须了解计算机语言中这种“分离” ,学会对人的自然思维进行思想、 方法和对象的恰当分离, 并在使用计算机解决问题的过程中善于将这种分离再连通起来。把握使用计算机语言过程中折射出来的 “思维” 的特点, 实现人的自然思维在计算机上的映射, 是利用计算机解决问题和提高编程能力的关键。( 4) 分 解思维过程,显化潜在意识人类在解决和处理问题的过程中, 有些思维活动是往往 “无意识或隐性”的。这是因为长期学习和训练积淀, 使我们在有些时刻的思维活动成为一种下意识反应,或者是有些信息不是通过显性的语言表示获得,而是通过我们的其他感官隐性获得(如。视觉、味觉、体

13、感等) 。由于计算机不是思维的主体, 计算机语言不具备认知和思维的能力, 要让计算机按照我们的要求工作, 就必须将自然语言的思维过程进行分解, 将思维中的方法和对象进行分离和转化, 用计算机语言对计算过程进行十分清楚和准确的描述, 使得计算机可以实现期望的输出结果。不仅要对我们能意识到的思维过程进行描述,也要对“无意识”的隐性思维过程进行描述(即所谓“显化潜在意识” 。而这一点就是造成计算机使用者尤其是初学者, 感觉编程无从下手或感觉编程困难的常见原因) 。例如:用选择法,对一批数目不详的数据进行由小到大的排序。分解与约简:排序-若干批数据中求最小一两数间比大小显化与转换:一维数组,记忆当前最

14、小及其位置,对调两数,非 正常数据作为终止。除了对于思维过程本身的清楚描述, 还要考虑出现各种意外情况时如何响应和处理。 而这些意外情况在以自然语言为载体的思维中往往是隐性的或带有绝对性的含义。例如: 例如方程求根的牛顿迭代, 必须考虑初值的函数值和一阶导数是否为零的意外情况 (显化) 。而与零的比较,在计算机语言里的表述, 应该是一个绝对值很小的数而不是绝对意义上的 “零” (转换)2、 科学计算实例分析下面选择对于工科学生相对简单、易于理解且较为熟悉的科学计算方面的几个算法实例的计算机实现过程, 进行分析说明, 希望对大家有所启示和帮助。1)利用计算机解决实际问题的一般过程如图1 所示。图

15、1建立模型更多地依赖数学理论知识和专业理论知识,而求解数学 模型则更多地依靠计算科学和计算机知识。而当算法确定后,利用计算机进行编程计算时还要考虑程序的计算复杂度、空间复杂度。其一般步骤为:算法分析、数据分析、绘制流程图、编程、运行测试等、结果分析2)求解线性方程组的高斯消去法算法分析分解与约简:如,求解一消元与回代消元一初等行变换一两项相减显化与转换:如,消元过程一三重循环结构求主元及行交换一子程序意外情况:如,主元 =零即行列式为零 数据分析变量设置:一个二维数组 A、一个一维数组b,若干变量数据类型:实数或整数存储方式: 原始系数矩阵元素和约化后系列矩阵元素置放于二维数组。 同时为节约存

16、储空间, 将初等行变换所用乘数同步置放在该二维数组经消元后腾出的元素位置。 流程图回代过程高斯主元索法主程序流程图由主程序转来;det det返回主程序高斯主兀素法子程序流程图(3)数值积分的龙贝格算法算法示意图6-3也以3算法示富图算法分析分解与约简:如,数值求积一变步长梯形公式一累加累加分解为:赋初值一求加项一相加一判断显化与转换:如,累加的终止-x<b预处理阶段的完成一档位计数器 k及其判断数据分析(略)流程图好R一1寄回天*军厘儡国、一,带甲q卡审,、Ii. <_t- I -3、计算思维人类思维的进化与发展,是和人类科技进步紧密相关的。如,数学思维、工程思维、艺术思维的进化

17、与发展等等,而计算思维也是如此。实际上计算思维古已有之,而且无所不在。从古代的算筹、算盘到近代的计算器以及现代的电子计算机、 互联网和云计算, 计算思维的内容不断拓展,推动着人类科技的进步。计算机的出现丰富了人类改造世界的手段,同时也强化了原本存在于人类思维中的计算思维的意义和作用。但是,直到 2006 年,美国卡内基梅隆大学周以真教授对计算思维进行了清晰系统的阐述,这一概念才得到人们的极大关注。( 1) “计算思维”涵义计算思维的定义为: “ 计算思维是运用计算机科学的基础概念进行问题求解、系统设计、人类行为理解等的一系列思维活动” ,即是通过约简、 嵌入、 转化和仿真等等方法, 把一个困难

18、的问题阐释为如何利用计算机求解它的思维方法,其核心是抽象和自动化。计算思维的本质是抽象和自动化,其抽象体现在完全使用符号系统甚至形式化语言; 其自动化体现在算法实现最终是机械地按步骤自动执行。典型的计算思维包括一系列广泛的计算机科学的思维方法: 递归、抽象和分解、保护、冗余、容错、纠错和恢复,利用启发式推理来寻求解答,在不确定情况下的规划、学习和调度等。计算思维是对 “人的自然语言承载的思维通过计算机语言而实现的映射”的高度概括,是解读和实现这种映射的有效思维方式。由于计算机对于信息和符号的快速处理能力, 使得许多原本只是理论可以实现的过程变成了实际可以实现的过程。如海量数据的处理、复杂系统的

19、模拟、大型工程的组织,借助计算机实现了整个过程的自动化、 精确化和可控化, 拓展了人类认知世界和解决问题的能力和范围。 机器替代人类的部分智力活动催发了对于智力活动机械化的研究热潮,凸显了计算思维的重要性。在这样的背景下,作为人类科学思维活动中以形式化、 程序化和机械化为特征的计算思维被前所未有的受到重视。( 2) 计 算思维应用举例计算思维是一种问题求解的思维计算思维将问题求解的过程用“程序化”或“机械化”的方式表示出来。例如, “百鸡问题” ,是两个三元不定方程的求解问题。解决方案:数学思维产生的算法是求解二元不定方程组, 计算思维则充分利用计算机的速度优势, 使用穷举算法进行简单重复操作

20、进行求解。反映出人机不同的信息处理特质。又如, 垃圾邮件的辨别与阻止, 也是利用计算思维方式解决了人机辨识问题。作为互联网时代早期最重要的免费邮件提供商, 要解决用户们每天 遇到的数以百计的垃圾邮轰炸。解决方案:验证码。是一种区分用户是计算机或人的公共全自动程序。设计思想:计算机先是产生一个随机的字符串,然后用程序把这个字符串的 图像进行随机的污染,扭曲,再显示给显示器前的人或者机器。 凡是 能够辨识这些字符的,即为人类。验证码的附带作用也是计算思维的作用的很好佐证:美国宾夕法 尼亚州匹兹堡市的CMU研究小组正在做的事。该小组受一家名为 互联网档案馆”的非营利组织委托,要将海量 的古老书籍和手稿通过光学字符识别软件转化为电子文本,以方便电脑储存和查询。由于原稿的质量太差,电脑每扫

温馨提示

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

评论

0/150

提交评论