在算法设计与分析课程教学中融入计算思维_第1页
在算法设计与分析课程教学中融入计算思维_第2页
在算法设计与分析课程教学中融入计算思维_第3页
在算法设计与分析课程教学中融入计算思维_第4页
在算法设计与分析课程教学中融入计算思维_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、在算法设计与分析课程教学中融入计算思维: Basic teaching contents of design and analysis of algorithms is introduced. Proceeding with the computational thinking one of three scientific thinkings that have promoted human civilization and scientific development , the importance of computational thinking is stated. Finally

2、 , some suggestions for integrating computational thinking into teaching of design and analysis of algorithms are proposed.0 引言 思维能力对人类生活和科技发展的关键意义不言而喻。 近年 来,计算思维在计算机科学教学中的重要意义得到了普遍关注, 众多学者和组织参与了这一思想的讨论和传播。 然而, 如何合理 设置课程体系, 科学地落实培养过程, 在教学中真正使学生的计 算思维能力得到培养, 我们依然面临着严峻的挑战。 本文介绍了 算法设计与分析课程的一般框架和计算思维的思想

3、, 并就如何在 该课程教学中融入计算思维提出一些建议, 希望引起更多专业人 员进行探讨,并引起重视。1 算法设计与分析计算过程的效率和计算结果的准确性是古老的研究课题。 科学技术的发展使得人们一方面更容易获得大量的信息, 另一方面 对这些信息的处理(计算)方法变得日趋复杂,计算量也越来越 大。许多理论上可以计算的问题, 由于计算过程中所需空间或者 时间的限制, 而变成了现实不可计算的问题, 造成了虽然理论上 可计算但现实条件不允许的矛盾。自 20 世纪中期以来,随着各 个领域算法研究工作的发展, 诞生了一个新的研究领域, 即算法 的设计与分析。 这一领域的研究成果不仅对不同学科问题提供了 有效

4、的解决方法,而且提供了一种独特的处理问题的思维方式。由于实际问题求解的需求以及算法的广泛应用, 算法研究领 域已是包罗万象。从最初的排序、查询、图算法、数值计算等, 到信息处理、 工程计算与模拟、 金融分析、 生物计算、 量子计算, 以及最前沿的大数据分析, 计算机的应用无处不在, 算法的应用 也无处不在 1-5 。按照算法所处理的对象进行分类,算法设计 与分析主要包括数值算法和非数值算法两大领域。 数值算法主要 有多项式计算、矩阵计算、有限域计算、数论计算,方程(组) 求解,优化计算等,非数值算法主要有排序、搜索、几何问题的 计算、离散结构的计算、模式匹配等。按照计算时所需数据的提 供情况可

5、分为离线算法和在线算法, 前者是指计算中所需数据在 计算开始时已全部提供, 后者指计算开始时不提供或部分提供数 据,然后在计算过程中逐步提供数据, 其典型的应用是股市风险 和效益的评估分析。 按照计算方式进行分类, 则可分为串行算法 和并行算法,还可以分为智能算法、近似算法、随机型算法、交 错型算法、非确定型算法、确定型算法等。算法设计的任务是对各类具体问题设计高质量的算法, 以及 研究设计算法的一般规律和方法。 常用的算法设计方法主要有回 溯法、贪婪法、分治法、概率方法和近似方法等 6 。算法分析 的主要任务则是对于所设计的每一个具体算法, 讨论它的时间和 空间复杂度、相关概率、近似比和竞争

6、比等,分析的结果既可作 为评价算法质量的标准,也可为改进算法提供参考方向。由于算法设计与分析在计算机学科中的重要地位, 其基本内 容已经成为计算机相关学科的一门专业核心必修课程。 算法设计 与分析课程的教学方式、 内容和质量, 必须能够确保培养学生的 学习兴趣, 提高学习效果, 以便提高学生专业能力和综合能力的 培养,为学生高水平高层次应用和发展提供保障。2 计算思维 计算思维是多种学科学习和研究人员所必备的基本素质, 甚 至与人们的生活也密切相连。科学界一般认为,计算思维、实验 思维和理论思维是推动人类文明进步和科技发展的三大科学思 维方式。近些年,诸多学者从计算思维的定义、内容、特点和培

7、养方式等多方面进行了探讨。 计算思维能力包括抽象能力和逻辑 思维能力,必须经过系列数学和抽象程度较高的理论课程渐进、 系统地训练才能形成 7 。2006 年,原美国卡耐基 ?梅隆大学计 算机系主任, 现美国基金会计算机和信息科学与工程部主任周以 真( Jeannette M. Wing )教授在国际权威杂志上发表文章,明 确了计算思维的一般定义: “计算思维是运用计算机科学的基础概念进行问题求解、 系统设计、 以及人类行为理解等涵盖计算机 科学之广度的一系列思维活动”。 在此基础上周教授对计算思维 给出了更详尽的描叙(或定义),对计算思维是什么,或不是什 么的特征给出了界定, 指出了计算思维是

8、每个人的基本技能, 不 仅仅属于计算机科学家 8 。计算思维这一概念提出后, 立即引起了国际计算机界的广泛 关注, 已经成为当今社会计算机教育研究的重点课题,美国教育界对此给予了大力支持,卡耐基 ?梅隆大学成立了专门的课题进 行研究, 很多相关组织和团体都参与了这项研究, 比如美国数学 研究所(AIM)、美国国家计算机科学技术教师协会( CSTA、 美国计算机协会(ACM等,不仅如此,计算思维还有效促进了 美国国家科学基金会(NSF重大基金资助计划 CDI( Cyber-Enabled Discovery and Innovation )的产生, CDI 计 划旨在使用计算思维产生的新思想、新

9、方法, 促进美国自然科学和工程技术领域产生革命性的成果,CDI 的最终研究成果将使人们的思维模式发生转变。 而这种转变不仅延伸到了美国国家自然 科学与工程,也体现在了社会经济与技术等各个学科领域。 同时, 计算思维的影响也逐渐从美国延伸到了英国的教育界, 在英国的 爱丁堡大学开展了很多与计算思维相关的研讨会, 重点讨论了计 算思维对不同学科的影响, 比如教育、 建筑、医学、 生物、物理、 哲学等。 此外,英国的计算机学会也组织了相关学者对计算思维 进行研讨,提出了欧洲的行动纲领。国内为了紧跟国际学术的研究步伐, 加紧更新传统的教学理念, 开展了多次计算思 维的专题研讨会, 参会团体包括全国各高

10、等学校计算机教育研究 组织等。研讨内容主要包括如何以课程为载体讲授面向学科的思 维方法,以及这种讲授对国家科学与教育事业发展的作用等。 2010年 7月,九所知名高校在西安交通大学举办了“ C9 高校联 盟计算机基础课程研讨会”, 这九所知名高校分别是西安交通大 学、哈尔滨工业大学、 中国科枝大学、 南京大学、 上海交通大学、 浙江大学、复旦大学、清华大学、北京大学。教育部高等学校计 算机基础课程教学指导委员会主任陈国良院士, 作了“计算思维 能力培养研究”的报告, 并主持了该专题的讨论。 经大会研究讨 论后就增强大学生计算思维能力的培养发表了“九校联盟(C9)计算机基础教学发展战略联合声明”

11、, 声明中强调“旗帜鲜明地 把计算思维能力的培养作为计算机基础教学的核心任务 9 ”。中国大学教学连续发表有关计算思维的文章,一批 知名学者如陈国良、 李廉等积极参与这一思想的阐释与推广 10 , 11 ,对计算思维的理解、普及和应用,进一步对计算机学科的 教学发展起到了积极的推动作用。计算思维并不是要求人类像计算机那样思考, 它只是人类求 解问题的一条途径。 计算机拥有强大的计算能力, 人类拥有了计 算机,也就拥有了强大的计算能力, 人类应该学会利用这种力量 去解决更多的问题。 当今社会计算机几乎无处不在, 计算机科学 的出现不仅给人类带来了便利, 更重要的是计算的概念, 它被人 们用来求解

12、问题、 管理日常生活以及与他人进行交流和互动。 计 算思维无处不在, 作为一个解决问题的有效工具, 人人都应掌握, 处处都会被使用。 因此计算思维应当是当前计算机教育需要继续 重点研究的课题,而且应当有效地融入到我们的课程教学之中。3 算法设计与分析教学中融入计算思维有研究指出, 计算思维作为一种工具, 应当被所有学校的所 有课堂教学采纳。采用这个工具,自然会面临以下几个问题: 人所固有的能力与局限性?计算机的计算能力与局限 性?问题解决的判定条件是什么?问题到底有多复杂? 什么样的技术能被应用于当前的问题求解或讨论之中?什么 样的计算策略更有利于当前问题的解决?对于前两个问题, 计算理论课程

13、做了较好的解释 12 。后三 个问题则应该是算法设计与分析课程重点解释的内容。 由于计算 思维的重要性, 结合多年算法设计与分析的教学经验, 笔者认为 在算法设计与分析教学改革中, 必须要将计算思维的培养融入到 教学当中, 在教学中不能局限于知识的传授, 而应该注重学生思 维的培养, 以提高学生的创新能力。 具体在教学中应该注意以下 几点:算法教学应脱离具体的程序设计语言。 算法独立于具体的 计算机和具体的程序设计语言。 虽然算法的最终具体实现需要某 一种具体的编程语言,例如 C+、Java 等,但这些编程语言只是 一种实现工具。 教学中应避免把算法课变成程序语言和程序设计的教学课程。对算法的

14、描述应主要通过某种伪代码、甚至可以是自然语言的形式。这样的算法描述更为直观、清晰、易懂,并使 得教师的教学和学生学习专注于算法的概念和计算思维的培养, 而不是具体应该如何编程实现某一段代码。 复杂性理论应作为教学重点内容。计算复杂性理论是理论计算机科学的分支学科,使用数学方法对计算中所需的各种资源 的耗费作定量分析,并研究各类问题之间在计算复杂程度上的相 互关系和基本性质,是算法分析的理论基础。 该理论回答了一个 问题到底有多复杂,并指导选择和设计解决问题的策略。而目前 在教学过程中,由于教材通常将复杂性理论部分放在教材的最后 章节,由于学时等因素,对复杂性理论的教学不够重视。而复杂 性理论是

15、培养计算思维及对各种算法深刻理解的必备基础。所以复杂性理论在教学中应该适当提前,并作为教学的重点内容。 教学中应注重培养学生解决问题的思维能力。在各种算法的具体教学过程中,教师应该注重培养学生面对问题时的解决办 法。例如人们往往首先通过猜测,然后经过验证、证明、分析、 完善等过程,最终解决一个问题。这个过程也是人们探究真理的 常见过程。在这个过程中培养学生科学的分析问题、逻辑推理、 抽象概括能力,往往要比单纯地讲解某一种算法有更大的意义。 逻辑推理是依据一定的逻辑规则,从已知项得出未知项,或用已知项来解释未知项。抽象是抽出事物的本质属性或特征的过程。 概括是在抽象的基础上,把抽取出来的那些本质

16、属性归结在一起 进行考察的思维方法。这些都是解决问题、探讨概念、发现事物 规律的重要基本工具,任何一个算法思想的产生都离不开推理、 抽象和概括。 对这些思维能力的训练和培养是大学计算思维和通 识教育的重要组成部分。 算法思想应渗透在整个教学课程中。 发展层次理论认为思 维是多层次的, 逐步发展的过程。 发展层次的最高层次是严密性 或公理性, 算法教学时应有意识地朝着这一方向努力。 很多算法 的提出往往都基于某一个实际的、 有趣的问题。 在教学过程中可 以为学生设置不同的问题情境, 有意识的培养学生多角度思考问 题的能力。 现实生活中通常问题的解决方式都不是唯一的, 在教 学过程中应有意识的培养学生的算法思想, 引导学生用不同的解 决方法面对不同问题, 甚至是同一个问题, 从而加深学生对算法 思想的理解, 并在解决问题的过程中体会到算法思想的意义和作 用,真正意识到算法思想的重要性。4 结束语计算思维已经和人们的生活和各种密不可分, 甚至成为了一 项重要的生存能力。 当今的信息社会已经离不开计算机, 如何培 养具有计算思维的新型人才,变成了

温馨提示

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

最新文档

评论

0/150

提交评论