1、第一章 引论,李陶深 ,1.1 认识计算机的美,一种速度很快的机器。 103 106 109 1012次操作/秒一次操作:比做一只蚂蚁的重量1012次操作:百万公斤蚂蚁,一种速度很快的机器,未来应用对计算机性能的要求,一种小巧而又精密的机器,一种小巧而又精密的机器,芯片上的系统,芯片上的系统,芯片的集成度,预计到2010年,一个芯片上的晶体管数目将超过10亿个;2018年将超过140亿个。(1971年一个芯片上的晶体管数目为2300个)。,芯片的集成度,著名的摩尔定律,制造商会在一个固定的周期内将芯片上的晶体管数目扩大一倍,而芯片的价格则保持不变。,其他定律,贝尔定律:如果保持计算能力不变,微
2、处理器的价格和体积每18个月减小一倍; 吉尔德定律:在未来年内,主干网的带宽将每个月增加一倍,比的增长速度要快得多。 麦特卡尔定律:网络价值同网络用户数量的平方成正比,即个联结能够创造的效益。,一种灵活、适用的工具,0和1的美妙世界,Turing的可计算性,Turing的可计算性,1. 一个服从指令的机器不能够做什么?2. 对于一个给定的程序和相应的数据集合,确定程序是否被终止?,0和1的美妙世界,0和1的美妙世界,信息的表达:有效性,信息的表达:有效性(压缩),信息的表达:有效性(压缩),信息的表达:有效性(压缩),信息的表达:有效性,信息的表达:可靠性,信息的表达:可靠性,信息的表达:可靠
3、性,计算机网络使得世界变得扁平、距离缩小,Web 1.0,Web 1.0:任何人可以看到任何东西,Web 1.0:任何人可以找到任何东西,Web 1.0:搜索引擎,Web 2.0,Web 2.0,Web 2.0,Web 2.0,Web 2.0,计算机的美,计算机的美,计算机的美,1.2 计算思维(Computational Thinking),作者:美国卡内基梅隆大学(CMU)Jeannette M. Wing (周以真)教授 Computational Thinking, Communications of ACM, Vol.49, No.3, March 2007, pp.33-35.,1
4、.2 计算思维(Computational Thinking),计算思维是建立在计算过程的能力和限制之上的,不管这些过程是由人还是由机器执行的。计算方法和模型给了我们勇气去处理那些原本无法由任何个人独自完成的问题求解和系统设计。,1.2 计算思维(Computational Thinking),计算思维直面机器智能的不解之谜: 什么人类能比计算机做得更好? 什么计算机能比人类做得更好? 最基本的是它涉及这样的问题:什么是可计算的?今天,我们对这些问题的答案仍是一知半解。,1.2 计算思维(Computational Thinking),计算思维是每个人的基本技能,不仅仅属于计算机科学家。在阅读
5、、写作和算术(英文简称3R)之外,我们应当将计算思维加到每个孩子的解析能力之中。正如印刷出版促进了3R的传播,计算和计算机也以类似的正反馈促进了计算思维的传播。计算思维涉及运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。计算思维涵盖了反映计算机科学之广泛性的一系列思维活动。,1.2 计算思维(Computational Thinking),当求解一个特定的问题时,我们会问:解决这个问题有多困难?怎样才是最佳的解决之道? 计算机科学根据坚实的理论基础来准确地回答上述这些问题。表明问题的困难程度是为了考量机器就是用来运行其解的计算工具之基本能力。我们必须考虑机器的指令系统、它的资源约
6、束和它的操作环境。,1.2 计算思维(Computational Thinking),为了有效地求解一个问题,我们可能要进一步问:一个近似解是否就足够了,是否可以利用一下随机化,以及是否允许误正或误负。计算思维就是把一个看来困难的问题重新阐述成一个我们知道怎样解的问题,如通过约简、嵌入、转化和仿真的方法。,1.2 计算思维(Computational Thinking),计算思维是一种递归思维。它是并行处理。它是把代码译成数据又把数据译成代码。它是由推广量纲分析进行的类型检查。对于别名或赋予人与物多个名字的做法,它既知道其益处又了解其害处。对于间接寻址和程序调用的做法,它既知道其威力又了解其代
7、价。它评价一个程序时,不仅仅根据其准确性和效率,还有美学的考量,而对于系统的设计,还考虑简洁和优雅。,1.2 计算思维(Computational Thinking),计算思维采用了抽象和分解来迎战浩大复杂的任务或者设计巨大复杂的系统。它选择合适的方式去陈述一个问题,或者选择合适的方式对一个问题的相关方面建模使其易于处理。它利用不变量简明扼要且表述性地刻画系统的行为。它是我们在不必理解每一个细节的情况下就能够安全地使用、调整和影响一个大型复杂系统的信心。它就是为预期的多个用户而进行的模块化,它就是为预期的未来应用而进行的预置和缓存。,1.2 计算思维(Computational Thinkin
8、g),计算思维是通过冗余、堵错、纠错的方式,在最坏情况下进行预防、保护和恢复的一种思维。它称堵塞为死结,叫合同为界面。它就是学习在谐调同步相互会合时如何避免竞争的情形。,1.2 计算思维(Computational Thinking),计算思维是利用启发式推理来寻求解答。它就是在不确定情况下的规划、学习和调度。它就是搜索、搜索、再搜索,最后得到的是一系列的网页,一个赢得游戏的策略,或者一个反例。计算思维是利用海量的数据来加快计算。它就是在时间和空间之间,在处理能力和存储容量之间的权衡。,1.2 计算思维(Computational Thinking),考虑这些日常中的事例:当你去上学校时,会把
9、需要的东西放进背包-这就是预置和缓存。当你弄丢东西时,你会沿走过的路回寻-这就是回推。在什么时候你停止租用照相机而为自己买一个呢?这就是在线算法。在超市付账时你应当去排哪个队呢?这就是多服务器系统的性能模型。为什么停电时你的电话仍然可用?这就是失败的无关性和设计的冗余性。,1.2 计算思维(Computational Thinking),考虑这些日常中的事例: 完全自动的大众图灵测试是如何区分计算机和人类(简称CAPTCHA)的,即CAPTCHAs是怎样鉴别人类的?这就是充分利用求解人工智能难题之艰难来挫败计算代理程序。,1.2 计算思维(Computational Thinking),计算思
10、维将渗入到我们每个人的生活之中,那时诸如算法和前提条件已成为每个人日常词汇的一部分,非确定论和垃圾收集已含有计算机学家所指的含义,而树已常常被倒过来画了。,1.2 计算思维(Computational Thinking),我们已见证了计算思维在其它学科中的影响。例如,机器学习已经改变了统计学。就数据尺度和维数而言,统计学习用于各类问题的规模仅在几年前还是不可想象的。各种组织的统计部门都聘请了计算机科学家。计算机学院系正在联姻已有或开设新的统计部门。,1.2 计算思维(Computational Thinking),计算机学家们近来对生物科学的兴趣是因为他们坚信生物学家能够从计算思维中获益的信念
11、驱动的。计算机科学对于生物学的贡献决不限于其能够在海量时序数据中搜索寻找模式规律的本领。,1.2 计算思维(Computational Thinking),计算机学家们最终的希望是数据结构和算法我们的计算抽象和方法能够以阐释其功能的方式表示蛋白质的结构。计算生物学正在改变着生物学家的思考方式。类似地,计算博弈理论正改变着经济学家的思考方式,纳米计算改变着化学家的思考方式,量子计算改变着物理学家的思考方式。,1.2 计算思维(Computational Thinking),这种思维将成为不仅仅是其他科学家,而且是其他每一个人的技能组合之部分。普在计算之于今天就是计算思维之于明天。普在计算是已变为
12、今日之现实的昨日之梦,计算思维就是明日之现实。,计算思维的特性:,概念化,不是程序化。计算机科学不是计算机编程。像计算机科学家那样去思维意味着远远不止能为计算机编程。它要求能够在抽象的多个层次上思维。,计算思维的特性:,基础的,不是机械的技能。基础的技能是每一个人为了在现代社会中发挥职能所必须掌握的。生搬硬套之机械的技能意味着机械的重复。具有讽刺意味的是,只有当计算机科学解决了人工智能的宏伟挑战使计算机像人类一样思考之后,思维才会变成机械的生搬硬套。,计算思维的特性:,人的,不是计算机的思维。计算思维是人类求解问题的一条途径,但决非试图使人类像计算机那样地思考。计算机枯燥且沉闷;人类聪颖且富有
13、想象力。我们人类赋予计算机以激情。配置了计算设备,我们就能用自己的智慧去解决那些计算时代之前不敢尝试的问题,就能建造那些其功能仅仅受制于我们想象力的系统。,计算思维的特性:,数学和工程思维的互补与融合。计算机科学在本质上源自数学思维,因为像所有的科学一样,它的形式化解析基础筑于数学之上。计算机科学又从本质上源自工程思维,因为我们建造的是能够与实际世界互动的系统。基本计算设备的限制迫使计算机学家必须计算性地思考,不能只是数学性地思考。构建虚拟世界的自由使我们能够超越物理世界去打造各种系统。,计算思维的特性:,是思想,不是人造品。不只是我们生产的软件硬件人造品将以物理形式到处呈现并时时刻刻触及我们
14、的生活,更重要的是还将有我们用以接近和求解问题、管理日常生活、与他人交流和互动之计算性的概念。面向所有的人,所有地方。当计算思维真正融入人类活动的整体以致不再是一种显式之哲学的时候,它就将成为现实。,1.3 计算科学的来历,最早的计算机科学学位课程是由美国普渡大学于1962年开设的。随后,斯坦福大学也开设了同样的学位课程。但针对“计算机科学”这一名称,在当时引起了激烈的争论。当时的计算机主要用于数值计算,使用计算机仅仅是编程问题,没有必要设立学位。很多人还认为,计算机从本质上说是一种职业而非学科。,1.3 计算科学的来历,要解决学科的认知问题,必须有一套科学的方法有助于人们对学科认识的逻辑化、
15、程序化、理性化和具体化。,计算科学能否作为一门学科应面对的问题,计算学科的本质和根本问题是什么?计算学科是否将持续兴旺下去或者是否会在我们的下一代衰落下去?计算学科是“工科”还是“理科”?程序设计在计算学科中的地位如何?计算学科目前的核心课程能准确反映这个领域吗?这些核心课程是否能培养计算方面的能力?在计算课程中如何做到理论与实践相结合?.,等等。,1.3 计算科学的来历,1984年7月美国计算机科学与工程博士单位评审部的领导们,在犹他州会议上对计算认知问题进行了讨论。促使ACM和IEEE-CS联合攻关组,开始用新的思维方式来理解计算学科。 计算机科学与技术方法论的建立借鉴了数学的公理化思想。
16、,1.3 计算科学的来历,针对激烈的争论,1985年春,ACM和IEEE-CS联手组成攻关组,开始了对“计算作为一门学科”的存在性证明。经过近4年的工作,ACM攻关组提交了计算作为一门学科(Computing as a Discipline)的报告,完成了这一任务。计算作为一门学科报告从定义一个学科的要求、学科的简短定义,以及支撑一个学科所需要的足够的抽象、理论和设计的内容等方面,详细地阐述了计算作为一门学科的事实。,计算作为一门学科报告的主要成果,(1)第一个重大问题:第一次给出了计算学科一个透彻的定义,回答了计算学科中长期以来一直争论的一些问题,完成了计算学科的“存在性”证明(Existe
17、nce Proof)。(2)第二个重大问题:未来计算教育,整个学科核心课程详细设计。,计算作为一门学科报告的主要成果,(3)第三个重大问题:整个学科综述性导引(导论)课程的构建。报告要求该综述性导引课程能以严密(Rigorous)的方式将学生引入整个学科各个富有挑战性的领域之中。(4)给出了计算学科二维定义矩阵的定义及相关研究内容,为最终用“新的思想方法”解决计算教育中的第三个重大问题奠定了一定的基础。,计算作为一门学科报告的局限性,报告选择了抽象、理论和设计3个过程的内容作为“新的思想方法” ,但是在强调3个过程是错综复杂地缠绕在一起的时候,忽视了3个过程的内在联系。“新的思想方法”是对计算
18、领域几十年来的概括和总结,其目标就是构建起计算学科自己的方法论(但是报告没有认识到这一点),CC1991的主要成果,提取了计算学科中反复出现的(具有方法论性质的)12个核心概念。“社会的、道德的和职业的问题”主领域的提出,使计算学科方法论的研究更加完备。由于CC1991没有解决计算教育中的第二和第三个重大问题,CC1991教学计划的执行远没有达到它的预期目标。但使一些学者开始考虑如何构建计算学科方法论的问题。,CC2001的主要成果,将CC1991报告划分的11个主领域扩展为14个主领域,提出了计算机科学知识体的新概念,并从领域、单元和主题三个不同的层次给出了知识体的内容,为整个学科核心课程的
19、详细设计奠定了基础。 CC1991教学计划的执行并没有达到预期的效果,主要是缺乏更详细的课程指导。整个学科大量内容的罗列,有可能使学生们只见树木,不见森林 对新教学计划的争论仍将继续下去。,解决计算教育3个重大问题的意义,第一个重大问题对学科的发展至关重要 第二个重大问题为高校制定计算机教学计划奠定基础 第三个重大问题使人们对整个计算学科的认知科学化、系统化和逻辑化。,计算学科的二维定义矩阵,知识框架 计算作为一门学科报告遵循了一般科学技术方法论的思想,它给出了计算学科二维定义矩阵(简称定义矩阵)的概念并细化了其内容。定义矩阵的一维是“3个过程”(抽象、理论和设计)另一维是主领域。特别当主领域
20、仅为计算学科时,定义矩阵便是计算作为一门学科报告中所指的“知识框架”。,计算学科的二维定义矩阵,“知识框架”反映了计算领域中人们的认识是从感性认识(抽象)到理性认识(理论),再由理性认识(理论)回到实践(设计)中来的科学思维方法。“知识框架”是对计算学科总的概括,它是稳定的;“知识框架”的内容(值),即各主领域及其“3个过程”的内容,则随计算技术的发展而变化。,计算学科分支领域的划分,当前的计算学科已成为一门范围极为宽广的学科,将整个学科划分为若干分支领域有助于我们对计算学科的理解。分支领域的划分一般遵循以下4个原则:科目内容基础的协调一致;实质性的理论部分;有意义的抽象;重要的设计和实现。,
21、计算学科的二维定义矩阵,计算作为一门学科报告给出了一个计算学科的二维定义矩阵,使得学科各主领域中有关抽象、理论和设计3个形态的核心内容完整地呈现出来,该二维定义矩阵是对学科的一个高度概括和总结。,计算学科的三个学科形态,3个学科形态的内容以及学科的根本问题都清楚地表明:计算机科学和计算机工程在本质上没有区别,学科中的抽象、理论和设计要解决的都是计算中的“能行性”和“有效性”的问题。计算机科学注重理论和抽象计算机工程注重抽象和设计计算机科学与技术则居中,计算学科是“工科”还是“理科” ?,不能简单地将计算学科归属于“理科”还是“工科”,在统一认识之后,ACM和IEEE-CS任务组将计算机科学、计
22、算机工程、计算机科学和工程、计算机信息学以及其他类似名称的专业及其研究范畴统称为计算学科。,计算学科的三个学科形态,“纵向”关系的内容,即各分支领域中所具有的共同的能反映学科某一方面本质特征的内容,既有助于我们认知计算学科,又有助于我们更好地运用方法论中的思想从事计算领域的工作,它是方法论中仅次于科学问题与“3个过程”的重要内容。,计算学科的三个学科形态,要把握定义矩阵的本质,就是要分别把握定义矩阵的“横向”(抽象、理论和设计3个过程)以及“纵向”(各主领域)共有的、能反映各主领域内在联系的思想和方法的本质。抽象、理论和设计3个过程的内在联系与发展规律的内容,是计算机科学与技术方法论中最重要的
23、内容。 3个过程之间的相互作用,推动了计算学科及其分支领域的发展。,14个主领域的主要内容,离散结构主要内容集合论、数理逻辑、近世代数、图论以及组合数学等。该领域与计算学科各主领域有着紧密的联系,CC2001为了强调它的重要性,特意将它列为计算学科的第一个主领域。该主领域以抽象和理论两个学科形态出现在计算学科中,它为计算学科各分支领域解决其基本问题提供了强有力的数学工具。,1.离散结构基本内容(43个核心小时),DS1. 函数,关系,和集合论(6)DS2. 基本逻辑(10)DS3. 证明方法(12)DS4. 计算基础(5)DS5. 图和树(4)DS6. 离散概率(6)注:核心学时是CC2001
24、任务组推荐的一个相对授课学时,若将它视为课内学时,则应有3倍的课外学时与之配套。,2. 程序设计基础(38个核心小时),主要内容PF1. 基本的程序设计结构 (9)PF2. 算法和问题求解 (6)PF3. 基本数据结构(14)PF4. 递归(5)PF5. 事件驱动和并行程序设计(4),2. 程序设计基础,基本问题对给定的问题,如何进行有效的描述并给出算法?如何正确选择数据结构?如何进行设计、编码、测试和调试程序?,3. 算法与复杂性(31个核心小时),主要内容AL1. 基本的算法分析(4)AL2. 算法策略(6)AL3. 基本的计算方法(12)AL4. 分布式算法(3)AL5. 基本可计算性理
25、论(6)AL6. P和NP复杂类; AL7.自动机理论AL8.高级算法分析; AL9.加密算法AL10.几何算法; AL11.并行算法,3. 算法与复杂性,基本问题对于给定的问题类,最好的算法是什么?要 求的存储空间和计算时间有多少?空间和时 间如何折衷?访问数据的最好方法是什么?算法最好和最坏的情况是什么?算法的平均性能如何?算法的通用性如何?,4. 体系结构(36个核心小时),主要内容AR1. 数字逻辑和数字系统(6)AR2. 数据的机器表示(3)AR3. 汇编级机器组织(9)AR4. 存储器系统组织和体系结构(5)AR5. 接口和通信(3)AR6. 功能的组织(7)AR7. 多道处理和预
26、备体系结构(3)AR8. 性能提高AR9. 网络和分布式系统的体系结构,4. 体系结构,基本问题实现处理器、内存和机内通信的方法是什么?如何设计和控制大型计算系统,而且使其令人相信,尽管存在错误和失败,但它仍然是按照 我们的意图工作的?哪种类型的体系结构能够有效地包含许多在一个计算中能够并行工作的处理元素?如何度量性能?,5. 操作系统(18个核心小时),主要内容OS1. 操作系统概述(2)OS2. 操作系统原理(2)OS3. 并发(6)OS4. 调度和分派(3)OS5. 存储管理(5)OS6. 设备管理; OS7.安全和保护OS8. 文件系统; OS9.实时和嵌入系统OS10. 容错; OS
27、11.系统性能评价OS12. 脚本,5. 操作系统,基本问题在计算机系统操作的每一个级别上,可见的对象和允许进行的操作各是什么?对于每一类资源,能够对其进行有效利用的最小操作集是什么?如何组织接口才能使得用户只需与抽象的资源而非硬件的物理细节打交道?作业调度、内存管理、通信、软件资源访问、并发任务间的通信以及可靠性与安全的控制策略是什么通过少数构造规则的重复使用进行系统功能扩展的原则是什么?,6. 网络计算(15个核心小时),主要内容NC1. 网络计算引导(2)NC2. 通信和组网 (7)NC3. 网络安全(3)NC4. 顾客-服务器计算的一个实例:web(3)NC5. 建立网络应用;NC6.
28、网络管理NC7. 压缩和解压;NC8.多媒体数据技术NC9. 无线和移动计算,6. 网络计算,基本问题网络中的数据如何进行交换?网络协议如何验证?如何保证网络的安全?分布式计算的性能如何评价?分布式计算如何组织才能够使通过通信网连接在一起的自主计算机参加到一项计算中,而网络协议、主机地址、带宽和资源则具有透明性?,7. 程序设计语言(21个核心小时),主要内容PL1.程序设计语言概述(2)PL2.虚拟机(1)PL3.语言翻译导引(2)PL4.声明和类型(3)PL5.抽象机制(3)PL6.面向对象的程序设计(10)PL7.函数式程序设计PL8.语言翻译系统; PL9.类型系统PL10.程序设计语
29、言语义学;PL11.程序设计语言的设计,7. 程序设计语言,基本问题语言(数据类型、操作、控制结构、引进新类型和操作的机制)表示的虚拟机的可能组织结构是什么?语言如何定义机器?机器如何定义语言?什么样的表示法(语义)可以有效地用于描述计算机应该做什么?,8. 人机交互(8个核心小时),主要内容HC1.人机交互基础(6)HC2.建立简单的图形用户接口(2)HC3.以人为中心的软件评价HC4.以人为中心的软件开发HC5.图形用户接口设计HC6.图形用户接口程序设计HC7.多媒体系统的人机接口HC8.协作和通信的人机接口,8. 人机交互,基本问题表示物体和自动产生供阅览的照片的有效方法是什么?接受输
30、入和给出输出的有效方法是什么?怎样才能减小产生误解和由此产生的人为错误的风险?图表和其他工具怎样才能通过存储在数据集中的信息去理解物理现象?,9. 图形学和可视化计算(10个核心小时),主要内容GV1. 图形学的基本技术(6)GV2. 图形系统(4)GV3. 图形通信GV4. 几何模型; GV5.基本绘制GV6. 高级绘制; GV7.先进技术GV8. 计算机动画;GV9.可视化GV10.虚拟现实; GV11.计算机视觉,9. 图形学和可视化计算,基本问题如何选择支撑图像产生以及信息浏览的更好模型?如何提取科学的(计算和医学)和更抽象的相关数据?图像形成过程的解释和分析方法。,10.智能系统(1
31、0个核心小时),主要内容IS1.智能系统的基本问题(1)IS2.搜索和约束满足(5)IS3.知识表示和推理(4)IS4.高级搜索;IS5.高级知识表示和推理;IS6.代理;IS7.自然语言处理IS8.神经网络IS9.人工智能规划系统;IS10.机器人学,10. 智能系统,基本问题基本的行为模型是什么?如何建造模拟它们的机器?规则评估、推理、演绎和模式计算在多大程度上描述了智能?通过这些方法模拟行为的机器的最终性能如何?,10. 智能系统,基本问题传感数据如何编码才使得相似的模式有相似的代码?电机编码如何与传感编码相关联?学习系统的体系结构怎样?这些系统是如何表示它们对这个世界的理解的?,11.
32、 信息管理(10个核心小时),主要内容IM1.信息模型与信息系统(3)IM2.数据库系统(3)IM3.数据建模 (4)IM4.关系型数据库;IM5.数据库查询语言IM6.关系型数据库设计;IM7.事务处理,11. 信息管理,主要内容IM8. 分布式数据库;IM9. 物理数据库设计IM10. 数据挖掘;M11. 信息存储和检索IM12. 超文本和超媒体;IM13. 多媒体信息和多媒体系统;IM14. 数字图书馆,11. 信息管理,基本问题使用什么样的建模概念来表示数据元素及其相互关系?怎样把基本操作(如存储、定位、匹配和恢复)组合成有效的事务?这些事务怎样才能与用户有效地进行交互?高级查询如何翻
33、译成高质量的程序?哪种机器体系结构能够进行有效的恢复和更新?,11. 信息管理,基本问题怎样保护数据,以避免非授权访问、泄露和破坏?如何保护大型的数据库,以避免由于同时更新引起的不一致性?当数据分布在许多机器上时如何保护数据、保证性能?文本如何索引和分类才能够进行有效的恢复?,12. 软件工程(30个核心小时),主要内容SE1.软件设计(8); SE2.使用API(5)SE3.软件工具和环境(2)SE4.软件过程(2)SE5.软件需求与规格(4)SE6.软件验证(3)SE7.软件演化(3)SE8.软件项目管理(3);SE9.基于构件的计算 SE10.形式化方法;SE11.软件可靠性; SE12
34、专用系统开发,12. 软件工程,基本问题程序和程序设计系统发展背后的原理是什么?如何证明一个程序或系统满足其规格说明?如何编写不忽略重要情况且能用于安全分析的规格说明?软件系统是如何历经不同的各代进行演化的?如何从可理解性和易修改性着手设计软件?,13. 社会和职业的问题(14个核心小时),主要内容SP1. 计算的历史(1)SP2. 计算的社会背景(3)SP3. 分析方法和工具SP4. 专业和道德责任(3)SP5. 基于计算机系统的风险和责任(2)SP6. 知识产权(3)SP7. 隐私和公民自由(2)SP8. 计算机犯罪;SP9. 与计算机有关的经济问题,13. 社会和职业的问题,基本问题计算
35、学科本身的文化、社会、法律和道德的问题;有关计算的社会影响问题,以及如何评价可能的一些答案的问题;哲学问题;技术问题以及美学问题。,14. 科学计算,主要内容CN1.数值分析CN2.运筹学CN3.模拟和仿真CN4.高性能计算,14. 科学计算,基本问题如何精确地以有限的离散过程近似表示连续和无限的离散过程?如何处理这种近似产生的错误?给定某一类方程在某精确度水平上能以多快的速度求解?如何实现方程的符号操作,如积分、微分以及到最小项的归约?如何把这些问题的答案包含到一个有效的、可靠的、高质量的数学软件包中?,1.4 科学哲学与学科方法论,1.4.1 关于一般的科学思维方法 教育学的规律:在教学中
36、,教给学生科学的思想方法比教给学生具体的知识重要的多。 “知己知彼,百战不殆”,1.4 科学哲学与学科方法论,1.4.1 关于一般的科学思维方法 掌握科学的思想方法的过程: (1) 将科学思想方法作为教学的内容融入教学过程中。 (2) 按照科学范型的内容逐步展开。 (3) 通过实际的例子深入浅出地进行分析和讨论。,1.4 科学哲学与学科方法论,1.4.2 关于科学哲学与科学方法 哲学是研究自然科学、社会科学和思维发展最一般规律的科学,是人类知识的最高总结。 科学哲学是认识科学最有力的思想武器之一,是对人类探索科学奥秘,开展应用研究等科学活动的系统的哲学思考和科学的总结。,1.5 一般的科学思想
37、方法,所谓理解科学是指一个人对多种科学知识的综合结构的了解。其中包括最基本的科学原理,科学思想之间的关系,形成这些关系的原因,如何利用这些科学知识解释和预测自然现象和各种人工实验现象,以及认识和理解发生在我们身边的事情。理解科学同时还包括分辨科学和伪科学的能力,在前人工作的基础上探索未知世界和未知领域的能力。,1.5 一般的科学思想方法,理解科学,必然将要求教学从过去单纯以传授知识和记忆知识为主转向以学生通过学习知识,提高理解科学的能力为主。这就要求学生要有较为宽广的、公共的科学基础知识,具有了解自己所从事的专业以外领域的基本知识的愿望。要注意,大学生应具有较为宽广的、公共的科学基础知识应主要
38、体现在大一级学科和与本学科相关的基础学科知识上,而不是面面俱到。,1.5 一般的科学思想方法,理解科学,必然将要求教学从过去单纯以学生被动接受知识的过程为主转向以教师引导学生主动获取知识的积极学习过程为主。积极的学习过程主要是指学习者身体和头脑的一种状态。在这种状态下,学生已不能满足课堂上学到的知识而常常对发生在自己身边的事物产生兴趣,并积极探索,学生也已不能满足动手活动和简单的实验,而愿意理论联系实际,系统地、科学地进行思考、阐述。,1.5 一般的科学思想方法,理解科学,必然要求教学从大量要求学生死记硬背知识的教学方式中解脱出来,而突出最重要的知识,贯彻少而精,加强科学技术能力方面的培养,具
39、有科学哲学的思想基础,正确的思想方法。,1.5 一般的科学思想方法,理解科学,实际上是素质教育的必然要求。要从应试教育转向素质教育,计算科学专业就必须在专业教学中贯彻基础厚实,理论联系实际,激发、探索新知识的兴趣,培养创新能力,塑造科学精神的教育思想,真正从应试教育转向素质教育,还教育功能的本来面貌。,1.5 一般的科学思想方法,所谓科学素养是指一个人参加人类的智力活动所必须具备的科学概念、知识水平和对智力活动过程的理解能力。在日常生活中,科学素养反映在人们对感兴趣的事情充满好奇心,能够理解事情、发现问题、提出问题、参与讨论、解决问题或找到解决问题的途径和方法。在所从事的专业工作中,科学素养反
40、映在人们对自己的工作具有创造性和较高的学术深度,安照科学规律办事,不满足已经取得的成就。,1.5 一般的科学思想方法,要培养学生良好的科学素养,就必须在教学中特别注重贯彻正确的思想方法。正确的思想方法不是一个人与生俱来的,也不是从天上掉下来的,它只能来源于学生的实践。对每一个大学计算科学专业的学生来说,正确的思想方法只能在科学的基本原理、原则的基础上,在教与学的过程中,在理论与实践相结合的教学活动中,通过从具体到抽象,从抽象到具体的反复学习、思考、练习、实践和体会,由自己总结得到。,1.5 一般的科学思想方法,我们提倡的是:一个对问题的正确的思想认识,一组解决问题的科学方法,一套严密的操作程序
41、。一个人按照这样一种思想方法开展工作,实际上也就是初步具备了科学的态度和正确的思想方法,处理问题的结果也常常比较好,这也是一个人是否具有良好的科学素养的重要标志之一。 科学素养也包含着一个人的科学精神,表现在具有实事求是的科学态度,脚踏实地的工作作风,平常而又良好的心态与科学道德,坚持和维护真理的秉性,献身人类进步事业的精神。,思 考 题,简述计算机科学与技术方法论产生的历史背景。计算作为一门学科报告取得的主要成果是什么?存在的局限性是什么?CC1991报告的主要成果是什么?CC2001报告的主要成果是什么?计算教育面临的3个重大问题及其难点、意义是什么?,思 考 题,为什么计算学科的本质问题可以归约为计算学科二维定义矩阵的本质问题?如何正确把握计算学科二维定义矩阵的本质?,