汇总计算机方法论.docx
《汇总计算机方法论.docx》由会员分享,可在线阅读,更多相关《汇总计算机方法论.docx(20页珍藏版)》请在冰豆网上搜索。
![汇总计算机方法论.docx](https://file1.bdocx.com/fileroot1/2023-1/29/a62d655b-8980-4c97-b2a5-4d72199938d6/a62d655b-8980-4c97-b2a5-4d72199938d61.gif)
汇总计算机方法论
计算机方法论
绪论
课程内容
1.计算学科发展沿革及二维定义矩阵
2.计算学科中的科学问题
3.计算学科中的三个学科形态
4.计算学科中的核心概念
5.计算学科中的数学方法
6.计算学科中的系统科学方法
什么是计算学科?
P22
计算学科是对描述和变换信息的算法过程,包括对其理论、分析、设计、效率、实现和应用等进行的系统研究。
它来源于对算法理论、数理逻辑、计算模型、自动计算机器的研究,并与存储式电子计算机的发明一起形成于20世纪40年代初期。
计算学科的研究包括从算法与可计算性的研究到根据可计算硬件和软件的实际实现问题的研究。
科学与工程技术两方面,两者互为作用,高度融合。
计算学科的根本问题是:
什么能被(有效地)自动执行
计算机的历史作用:
•开辟了一个新时代——信息时代
•孵化了一类新产业——信息产业
•创立了一门新学科——计算机科学与技术
•形成了一种新文化——计算机文化
把人类社会从工业时代推向信息时代,从物质产业时代推向信息产业时代,将极为深刻地改变人们的生产方式、生活方式与学习方式。
第1章计算学科发展沿革及二维定义矩阵
一、发展沿革
•追求一种会算、会听、会看、会说、会想的工具
•计算学科的根本问题是:
什么能被(有效地)自动执行
•与理论、工业(制造水平)、商业(应用水平)的发展同步
1、计算机的发展线索(1623-1952)
•手指、结绳、算筹、算盘
•1623年,什卡尔特(Schikad),第一个演算机,加、乘法
•1641年,帕斯卡(Pascal),齿轮,加、减法计算器
•1672年,莱布尼兹(G.W.Leibniz),手摇计算机奠基
•1820年,托马斯(C.Thomas),生产100台演算机
•1842~1848年,巴贝奇(C.Babbage),差分机和解析机,提出程序控制计算的思想,助手Ada
•1946年,宾夕法尼亚大学莫尔学院电工系,第一台通用电子数字计算机,ENIAC(ElectronicNumericalIntegratorAndCalculator)
•占地170平米,重30吨,长30.48米,宽1米,30个操作台,约相当于10间普通房间的大小,耗电量150千瓦,造价48万美元
•主要元器件:
电子管(二极管和三极管),它包含了17,468真空管7,200水晶二极管,1,500中转,70,000电阻器,10,000电容器,1500继电器,6000多个开关
•每秒执行5000次加法或400次乘法,是继电器计算机的1000倍、手工计算的20万倍
缺点:
未实现babbage关于“程序控制计算的思想”
•1945~1952年,冯·诺依曼(Von.Neuman),第一台存储程序的通用电子数字计算机EDVAC(ElectronicDiscretVariableAutomaticComputer)为现代计算机奠定了基础
•1951年,威尔斯(M.V.Wilkes),批量生产EDSAC(ElectronicDelayStorageAutomaticComputer),面包公司投资
2、理论奠基
•康托尔(G.Cantor,1845-1918)集合论P98
•罗素(B.Russell)悖论:
s={xxs}P19
•布尔(G.Boole)代数P103
•希尔伯特(D.Hilbert)纲领P20
•图灵(A.M.Turing,1912-1954)机(20世纪30年代后期)P21P62
可计算性=图灵可计算性
任一过程是能行的(能够具体表现在一个计算中),当且仅当它能够被一台图灵机实现
计算学科中的诺贝尔奖——图灵奖(1966)
•1912年出生于英国伦敦,1954年去世
•1936年发表论文“论可计算数及其在判定问题中的应用”,提出图灵机理论
•1950年发表论文“计算机与智能”,阐述了计算机可以具有智能的想法,提出图灵测试
•1966年为纪念图灵的杰出贡献,ACM设立图灵奖
•第一位华人图灵奖获得者——姚期智
3、第一代——第四代计算机的主要特征
第一代
1946-1957
第二代
1957-1964
第三代
1964-1972
第四代
1972-至今
逻辑元件
电子管
晶体管
中小规模集成电路
大规模与超大规模集成电路
存储器
延迟线、磁鼓、磁芯
磁芯、磁带、磁盘
磁芯、磁盘、磁带
半导体、磁盘、光盘
软件
机器语言
汇编语言
高级语言
管理程序
操作系统
结构化程序设计
数据库、软件工程、程序设计自动化
应用
科学计算
数据处理
工业控制
科学计算
系统模拟
系统设计
大型科学计算
科技工程各项域
事务处理、智能模拟、大型科学计算,普及到社会生活的各方面
4、新型计算机系统:
•第五代计算机(人工智能计算机)
•面向科学计算、工程设计、模拟仿真的SIMD、MISD、MIMD并行多机系统,高性能计算机
•面向人工智能求解的LISP机、归约机、逻辑推理机
•量子计算机
•(分子计算机)、DNA芯片与生物计算机
•光计算机
例:
“深蓝”战胜卡斯帕罗夫
•IBM,256(32node*8),2亿步/秒
•1997.5.两胜一负三平
•“深蓝”主管谭崇仁等.70万美元,卡40万,IBM5000万广告收益
计算思维
■美国卡内基梅隆大学(CMU)JeannetteM.Wing(周以真)教授的《ComputationalThinking(计算思维)》
■计算思维是建立在计算过程的能力和限制之上的,不管这些过程是由人还是由机器执行的。
■计算思维涉及运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。
计算思维涵盖了反映计算机科学之广泛性的一系列思维活动。
■把计算机这一从工具到思维的发展提炼到与“3R(读、写、算)”同等的高度和重要性,成为适合于每一个人的“一种普遍的认识和一类普适的技能”。
■“一个人可以主修计算机科学,接着从事医学、法律、商业、政治,以及任何类型的科学和工程,甚至是艺术工作。
”
CDI简介
■“计算思维”这一概念在2006年3月提出后,引起美国科技界的高度重视,并得到美国国家科学基金会(NSF)重大基金资助计划CDI(Cyber-EnabledDiscoveryandInnovation,Cyber能够实现的科学发现与技术创新)的支持。
■该计划涉及NSF所有学科部门,强调以计算思维为核心,得到NSF所有学科部门理事会的赞同,任务书2007年9月28日公布,计划五年完成,支持额度为75000万美元,其中,2008年度预算经费为5200万美元,以后逐年增加。
■该计划旨在使用计算思维(特别是在该领域产生的新思想、新方法)促进美国自然科学和工程技术领域产生革命性的成果。
而所谓的计算思维概括起来包括:
计算的概念、方法、模型、算法和工具。
■计算思维正在深刻的影响美国创造新知识与应用新知识的能力,该计划通过“计算思维”在富有挑战性的自然科学与工程,以及教育等学科领域的应用来进一步扩大这种影响。
■最终CDI的研究成果,将使人们的思维方式产生转变,这种转变反映在对美国自然科学与工程,以及社会经济与技术等学科领域创新问题的理解上,这种变化的应用将进一步保持美国在自然科学与工程等领域所具有的世界领先地位,并进一步提高美国人民的生活质量。
■CDI网址:
http:
//www.nsf.gov/crssprgm/cdi/
计算机模式的演进
■MainframeComputing(主机计算)
■Client/Server(C/S模式)
■Client/Browser/WebServer/DBserver (B/S模式)
■Client/Clusters(集群计算)
■Client/Networking(网络计算)
■MobileComputing(移动计算)
■GridComputing(网格计算)
■Peertopeer(对等计算)
■WearableComputing(可穿戴计算)
■PervasiveComputing(普适计算)
→Client/VirtualServerEnvironment (虚拟服务计算)
Client→p4c(personal,computer,Communication,Customer,Control)
■SocialComputing(社会计算)
■CloudComputing(云计算)
对等计算
P2P是peer-to-peer的缩写,P2P就是人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。
P2P另一个重要特点是改变互联网现在的以大网站为中心的状态、重返“非中心化”,并把权力交还给用户。
网格计算
依托专网或互联网,将处于不同地域、不同领域的多个计算机资源组织起来,统一调度,组成一台虚拟的“超级计算机”,完成一个共同的任务,如一个要求大量计算处理周期和大量数据的科学计算问题。
Manyforone
云计算
互联网上某些节点强大的信息资源,包括存储资源、计算资源、软件资源、数据资源、管理资源,通过云计算以互联网上的服务方式,变成广大用户动态、可伸缩的虚拟资源,为用户所用。
强调需求驱动、用户主导、按需服务,即用即付,用完即散,不对用户集中控制,用户不关心服务者在什么地方。
Oneformany
云计算的应用:
1)网络环境下信息资源的感知、存储、处理、发布、传播和租用;
2)网络化数据挖掘:
用户主导、面向领域的跨系统、跨媒体、即时定制的服务或者服务组合。
网格计算和云计算的相同点:
资源共享、虚拟计算
网格计算
云计算
并行计算为主:
依托网络将跨地域的计算机组织起来并行作业,但需要通过调度系统将作业分解到各个不同的物理节点去。
集群计算为主:
节点自主、自治
屏蔽异构:
用中间件屏蔽异构系统,使用户面向同一环境,实现资源共享
承认异构:
承认节点在原理、规模、能力上的差异性,依靠互操作来实现节点之间的资源共享
完成一次性特定任务:
要完成的任务是预先设定的
完成持久性多样化服务:
中心提供计算、存储等资源,用户利用云计算按需聚合、柔性重组,获取持久、个性化服务
协作式运营:
带宽保证、性能保障
商业式运营:
尽力而为的服务、按租使用,按用付费,多租赁,即用即散
确定的交互:
按规定要求和程序输入/输出,人不主动参与
人机交互、群体智能:
大众参与的计算,包括不确定性、软计算,相互沟通交流
二、计算作为一门学科及二维定义矩阵
1、计算作为一门学科
•《计算作为一门学科》(CompntingasaDiscipline),
ACM工作组,1989——完成了计算学科“存在性”证明。
•CC1991,CC2001(ComputingCurricula)报告,为整个
学科核心课程的详细设计奠定了基础。
(P4)
2、二维定义矩阵
•计算学科二维定义矩阵(体系——知识体),14个主领域(P188)与三个过程。
1.离散结构(DS)2.程序设计基础(PF)3.算法与复杂性(AL)4.体系结构(AR)5.操作系统(OS)6.网络计算(NC)7.程序设计语言(PL)8.人机交互(HC)9.图形学和可视化计算(GV)10.智能系统(IS)11.信息管理(IM)12.软件工程(SE)13.社会和职业的问题(SP)14.科学计算(CN)
抽象--理论--设计
计算机科学知识体
(ComputerScienceBodyofKnowledge(P188-P199)
从感性认识(抽象)到理性认识(理论),再由理性认识(理论)回到实践(设计)。
框架是稳定的,其值(内容)则与时俱进。
每一个主领域的三个过程描述(P54-P59)
计算机科学与技术方法论
■认知该科学的方法与工具
■计算机科学与技术方法论的主要内容:
P9
■科学问题,抽象,理论,设计的三个过程(横)
■14个主领域中的核心概念,数学方法,系统科学方法,形式化技术,社会与职业问题(纵)
第二章计算学科中的科学问题
科学问题的定义
■科学问题是指一定时代的科学认识主体,在已完成的科学知识和科学实践的基础上,提出的需要解决且有可能解决的问题。
它包含一定的求解目标和应答域,但尚无确定的答案。
■能否在所从事的工作中提出关键和重要的科学问题,对我们每个人来说都是一个挑战。
科学问题的主要特征
■时代性:
每一个时代都有它自己的科学问题
■混沌性:
渴望对新知识的追求,追求开始的时候是模糊不清的
■可解决性
■可变异性:
能引出另外具有可解决性的科学问题
■可待解性:
绝非永远不可解决
其余内容见课本第二章(课件与课本内容重复太多,为节约纸张,我不打印了……)
第3章计算学科中的三个学科形态
一、抽象—理论—设计(三种形态):
计算学科中的基本内容,基本概念;同时反映了人们的认识是从感性认识(抽象)到理性认识(理论),再由理性认识(理论)回到实践(设计)中来的一般科学思维方法
1、抽象形态——
•科学抽象是指在思维中对同类事物去除其现象的、次要的方面,抽取其共同的、主要的方面,从而做到从个别中把握一般,从现象中把握本质的认知过程和思维方法。
•学科中的抽象形态包含着具体的内容,它们是学科中所具有的科学概念、科学符号和思想模型。
抽象形态——源于现实世界(建立对客观事物进行抽象描述的方法,建立概念模型)
形成假设
建造模型并作出预测
设计实验并收集数据
对结果进行分析
2、理论形态——
•科学认识由感性阶段上升为理性阶段,就形成了科学理论。
科学理论是经过实践检验的系统化了的科学知识体系,它是由科学概念、科学原理以及对这些概念、原理的理论论证所组成的体系。
•理论源于数学,是从抽象到抽象的升华,它们已经完全脱离现实事物,不受现实事物的限制,具有精确的、优美的特征,因而更能把握事物的本质。
理论形态——源于数学(建立理论体系,建立数学模型)
表述研究对象的特征(定义和公理)
假设对象之间的基本性质和对象之间可能存在的关系(定理)
确定这些关系是否为真(证明)
结论
3、设计形态——
■设计形态与抽象、理论两个形态存在的联系
设计源于工程,用于系统或设备的开发,实现给定的任务
设计形态和抽象、理论两个形态都须以对自然规律的认识为前提
设计必须创造出相应的人工系统和人工条件,还必须认识自然规律的具体表现形式
■设计形态的主要特征与抽象、理论两个形态的主要区别:
设计形态具有较强的实践性、社会性、综合性
设计形态——源于工程(完成一个具体任务,总结与升华)
需求分析
建立规格说明
设计并实现该系统
对系统进行测试与分析
二、例子1信息系统(数据库)三种形态实例(P44-P48)
1、问题:
实体:
学生与课程,联系:
多对多,要建立一个信息管理系统。
2、抽象形态——建模
(1)实体(Entity)、属性(Attribute)、关键字(Key)与联系(Relationship)
•实体:
客观存在并可相互区别的事物实体集
•属性:
实体所具有的某一方面的特性
•关键字(码):
能唯一标识实体的属性集
•联系:
不同实体集之间的联系1:
1,1:
N,N:
M
(2)E-R模型
•三种图元素:
实体(矩形)、属性(椭圆)、联系(菱形)
•P45图3.1学生选课E-R图
(3)关系模型
•实体及实体之间的联系均用关系(二维表)表示
•笛卡尔积:
设D1,D2,…,Dn为任意集合,定义
D1,D2,…,Dn笛卡尔积为:
D1D2…Dn={(d1,d2,…,dn)|diDi,i=1,…,n}
•关系:
笛卡尔积D1D2…Dn的任意一个子集,称为
D1,D2,…,Dn上的一个n元关系
•关系模式:
二维表的表框架,R=
U:
关系中所有属性的集合
F:
属性集合U上的一组函数依赖
3、理论形态——规范化理论
(1)函数依赖:
属性间的关系
•定义:
设有关系模式R(A1,A2,…,An),X和Y均为
{A1,A2,…,An}的子集,r是R的任一具体关系(R-型,
r-值)。
如果R的所有关系r都存在着:
对于X的每一
个具体值,都有Y唯一的具体值与之对应,则称X函数
决定Y,或Y函数依赖于X。
记为XY
•函数依赖判别简法:
设有属性集X、Y及关系模式R
①如果X、Y之间是“1:
1”关系,则XYYX
②如果X、Y之间是“N:
1”关系,则XY
③如果X、Y之间是“N:
M”关系,则X、Y之间不存在函数依赖
(2)感性认识中存在的问题
•插入异常
•删除异常
•冗余太大
(3)规范化理论
•1NF(1NormalForm):
每个属性值都是不可再分的最小单元
•2NF:
若R1NF,且每一非主属性不存在对关键字的部分依赖,则R2NF。
部分依赖:
设R中XY,Y–X,如果存在X的真子集X1Y成立,则称Y部分依赖于X,否则称Y完全函数依赖于X。
•3NF:
若R2NF,且每一非主属性不存在对关键字的传递依赖,则R3NF。
传递依赖:
对R,X、Y、Z均为R的属性子集,如果XY,Y–Z,则称Z传递依赖于X。
结论:
从感性认识(抽象)而来的关系模式,必须用规范化(理论)方法,使之在3NF以上。
4、设计形态——依赖具体的DBMS进行定义与应用(SQL语句)
三、例子2程序设计语言三种形态实例
1、自然语言与形式语言
2、预备知识——图灵机
(1)什么是图灵机
•图3.2P62
•状态
•规则:
五元组(QiSjSkR(或L或N)Ql)
Qi:
当前状态
Sj:
从方格中读入符号
Sk:
写入方格中的符号
R、L、N:
右移、左移(一格),不移动
Ql:
下一状态
•实例(P63-P64)
图灵机及其他计算模型
■图灵的观点及结论:
凡是能用算法方法解决的问题,也一定能用图灵机解决;凡是图灵机解决不了的问题,任何算法也解决不了。
■与图灵机等价的计算模型:
递归函数
λ-演算
POST规范系统
■图灵机是从过程这一角度来刻画计算的本质,其结构简单、操作运算规则也较少,从而为更多的人所理解。
图灵机
■写在带子上的符号为一个有穷字母表:
{S0,S1,S2,…,Sp}。
可以认为这个有穷字母表仅有S0、S1两个字符,
其中S0可以看作是“0”,S1可以看作是“1”,
由“0”和“1”组成的字母表可以表示任何一个数。
■由于“0”和“1”只有形式的意义,因此,也可以将S0改称为“白”,S1改称为“黑”,甚至,还可以改称为“桌子”和“老虎”,这样改称的目的在于割断与直觉的联系,并加深对布尔域中的值{真,假},以及二进制机器本质的理解。
机器的控制状态表为:
{q1,q2,…,qm}。
将一个图灵机的初始状态设为q1,在每一个具体的图灵机中还要确定一个结束状态qw。
一个给定机器的“程序”
■机器内的五元组(qiSjSkR(或L或N)ql)形式的指令集,五元组定义了机器在一个特定状态下读入一个特定字符时所采取的动作。
5个元素的含义如下:
qi表示机器目前所处的状态;
Sj表示机器从方格中读入的符号;
Sk表示机器用来代替Sj写入方格中的符号;
R、L、N分别表示向右移一格、向左移一格、不移动;
ql表示下一步机器的状态。
■一个机器计算的结果是从机器停止时带子上的信息得到的。
容易看出,q1S2S2Rq3指令和q3S3S3Lq1指令如果同时出现在机器中,当机器处于状态q1,第一条指令读入的是S2,第二条指令读入的是S3,那么机器会在两个方块之间无休止地工作。
■另外,如果q3S2S2Rq4和q3S2S4Lq6指令同时出现在机器中,当机器处于状态q3并在带子上扫描到符号S2时,就产生了二义性的问题,机器就无法判定。
图灵机的计算能力
■图灵机可以计算
S(x)=x+1(后继函数),
N(x)=0(零函数),
Ui(n)(x1,x2,…,xn)=xi,1≤i≤n(投影函数)
上述3个函数的任意组合。
■从递归论中,我们知道这3个函数属于初始递归函数,
任何原始递归函数都是从这3个初始递归函数经有限次的复合、递归和极小化操作得到的。
从可计算理论可知每一个原始递归函数都是图灵机可计算的。
3、预备知识——冯·诺依曼计算机
■ENIAC的结构在很大程度上是依照机电系统设计的,还存在重大的线路结构等问题。
■在图灵等人工作的影响下,1946年6月,美国杰出的数学家冯·诺依曼(VonNeumann)及其同事完成了关于“电子计算装置逻辑结构设计”的研究报告,
具体介绍了制造电子计算机和程序设计的新思想
至今为止,大多数计算机采用的仍然是冯·诺依曼型计算机的组织结构,只是作了一些改进而已。
因此,冯·诺依曼被人们誉为“计算机器之父”。
冯·诺依曼型计算机的组织结构
第4章计算机学科中的核心概念
一、算法(Algorithm)
1、欧几里得算法——求两个正整数的m和n的最大公因子。
算法描述(p79)例
2、算法的定义与特征
●定义(非形式化):
一个算法,就是一个有穷规则的集合,其中
之规则规定了一个解决某一类特定类型问题的运算序列。
●特征
·有穷性
·确定性
·初始值(输入)
·结果(输出)
·能行性
●形式化定义(Q,I,W,F)
3、算法实例(表示方法:
自然语言——流程图——程序设计语言)
例1,求
例2,求解调合级数Hn=
例3,求解斐波那契数:
0,1,1,2,3,5,8,13,21,34,…每个数都是前两数之和
F0=1,F1=1,Fn+2=Fn+1+Fn,n≥0
4、算法分析
●内容
(1)时间复杂度
(2)空间复杂度
(3)便于阅读、修改与测试
●常见的复杂度等级
(1)O(l):
常数级
(2)O(logn):
对数级
(3)O(n):
线性级
(4)O(nc):
多项式级
(5)O(cn):
指数级
(6)O(n!
):
阶乘级
二、数据结构
1、数据结构的基本概念
●定性的数学模型:
非数值性的数据结构及其运算
●数据逻辑结构:
DS=
●数据的存储结构:
顺序,链式
●数据结构的基本运算:
建立、清除、插入元素、删除元素、更新元素、查找元素、排序…
2、线性表与数组
线性表数组
3、树与二叉树
树二叉树
4、图
三、程序
程序=算法+数据结构
四、软件
1、系统软件2、支撑软件3、应用软件
五、硬件
六、十二个反复出现的核心概念
1、绑定(Binding)
2、大问题的复杂性(ComplexityofLargePro