计算学科的形成及其基本问题.ppt
《计算学科的形成及其基本问题.ppt》由会员分享,可在线阅读,更多相关《计算学科的形成及其基本问题.ppt(116页珍藏版)》请在三一办公上搜索。
1、0,第 4 课 计算学科的形成及其基本问题,http:/,1,主要内容,4.1 计算学科的形成4.2 计算学科的基本问题,2,4.1 计算学科的形成,4.1.1 计算教育面临的三个重大问题4.1.2 计算学科的形成过程4.1.3 计算机科学催生者艾伦.佩利,3,4.1.1 计算教育面临的三个重大问题,第一个重大问题:计算作为一门学科的存在性证明解决难点:选择什么证明方式?第二个重大问题:整个学科核心课程的详细设计解决难点:计算机专业本科阶段必须学习哪些内容?第三个重大问题:整个学科综述性导引(导论)课程的构建解决难点:如何用公理化方法来概括学科?学科各主领域中要提出哪些科学问题?,4,解决3个
2、重大问题的意义,计算作为一门学科的地位的确定,对学科的发展至关重要确定一个公认的本科生必须掌握的核心内容,将为高校制定计算机教学计划奠定基础对计算学科的认知能建立在公理化的基础上,将使人们对整个计算学科的认知科学化、系统化和逻辑化,5,4.1.2 计算学科的形成过程,1989年ACM和IEEE-CS联合攻关组在计算作为一门学科报告指出:计算学科是对描述和变换信息的算法过程进行的系统研究,包括理论、分析、设计、效率、实现和应用等。该报告第一次给出了计算学科一个透彻的定义,给出了计算学科二维定义矩阵的概念,完成了计算学科的“存在性”证明(Existence Proof)并将当时的计算机科学、计算机
3、工程、计算机科学和工程、计算机信息学以及其他类似名称的专业及其研究范畴统称为计算学科。在计算教育史上具有里程碑意义。,6,计算学科二维定义矩阵,7,计算学科二维定义矩阵剖析,计算学科二维定义矩阵是对计算学科的一个高度概括,可以将把握计算学科的本质问题归约为把握计算学科二维定义矩阵的本质问题横向关系的内容,即抽象、理论和设计3个过程的内在联系与发展规律的内容,横向关系蕴含着学科中的科学问题,科学问题与3个过程共同构成了计算机科学与技术方法论中最重要的内容纵向关系的内容,即各分支领域中所具有的共同的能反映学科某一方面本质特征的内容。各分支领域之间主要存在以下两个方面的联系:各分支领域中的某些研究内
4、容是一致的计算学科中具有方法论性质的核心概念、数学方法、系统科学方法、形式化技术、社会和职业的问题贯穿于各分支领域之中,揭示了计算学科各分支领域的内在联系,使计算学科各分支领域结合成一个完整的体系,而不是一些互不相关的领域。,8,计算学科的形成过程,随后,于2001至2005年,IEEE-CS和ACM任务组分别提交了计算机科学(Computer Science,CS)、信息系统(Information System,IS)、软件工程(Software Engineering,SE)、计算机工程(Computer Engineering,CE)、信息技术(Information Technolo
5、gy,IT)等5个分支学科(专业)的教程以及相应的总报告,给出了5个分支学科的知识体以及相应的核心课程,为各专业教学计划的设计奠定了基础。,9,Computing Curricula 2005,10,我国计算学科专业名称,根据我国高等学校的情况,教育部高等学校计算机科学与技术教学指导委员会(简称“计算机教指委”)制定的高等学校计算机科学与技术发展战略研究报告暨专业规范(试行)(高等教育出版社2006年9月出版,简称“计算机专业规范”)采纳了CC2005报告中的4个分支学科,并以专业方向的形式进行规范,它们分别是:计算机科学、计算机工程、软件工程和信息技术。,11,有关“计算机科学导论”课程构建
6、问题,“计算作为一门学科”报告认为,“计算机导论课程的构建是计算教育面临的一个重大问题。报告认为,该课程要培养学生面向学科的思维能力,使学生领会学科的力量以及从事本学科工作的价值所在。报告希望该课程用类似数学那样严密的方式将学生引入计算学科各个富有挑战性的领域之中CC2001报告介绍了该课程的构建问题,并认为这是一个引起类似宗教战争那样激烈争论的问题。报告认为,不管怎样设计,这门课程都应该讲授学科中那些富有智慧的核心思想。,12,有关“计算机科学导论”课程构建问题,CC2004和CC2005则进一步指出,该课程的关键是课程的结构设计问题,现有的浓缩结构显然不是一种好的课程结构,报告期待人们在该
7、课程的结构设计上有所突破。,13,“计算机科学导论”课程结构的确定,计算学科二维定义矩阵为构建“计算机导论”课程提供了思路。计算学科二维定义矩阵中的科学问题,抽象、理论和设计3个过程(“横向”关系)与计算学科中的核心概念、数学方法、系统科学方法、形式化技术、社会和职业的问题(“纵向”关系)构成了计算学科方法论的主要内容自此,计算机科学与技术方法论已经建立,从而“计算机科学导论”课程结构也就确定了,14,4.1.3 计算机科学催生者艾伦.佩利,(19221990),15,佩利简介,1966年图灵奖获得者在ALGOL语言定义和扩充上做出了重大贡献创始计算机科学教育,使计算机科学成为一门独立的学科1
8、922年4月1日出生于美国宾夕法尼亚州的匹兹堡。1942年于卡内基-梅隆大学取得化学学士学位1947年于加州理工学院取得数学硕士学位1950年于麻省理工学院(MIT)取得博士学位。,16,佩利简介,1952年加入“旋风(Whirlwind)”计算机计划,为“旋风”编写程序,研究“旋风”的军事应用“旋风”是世界上第一台存储程序式并行计算机,是与通信第一次结合的计算机之后,到普渡大学、卡内基理工学院创建计算中心,开创了在大学中建立计算中心的先河。为此,设计了称为IT(Internal Translator)的语言,并开发了IT的编译器。在此基础上,与Smith、Zoren、Evans等人一起设计并
9、开发了新的代数语言和汇编语言,之后演变成算法语言ALGOL 60.,17,佩利简介,ALGOL60的意义:ALGOL60是程序设计语言发展史上的一个里程碑,它标志着程序设计语言由一种“技艺”转而成为一门“科学”,开拓了程序设计语言的研究领域,又为后来软件自动化的工作以及软件可靠性问题的发展奠定了基础。而后像1967年出现的首次引进”类型”的概念,把数据和被允许施行于这些数据之上的运算结合为一个统一体,因而成为现代抽象数据类型的开端以及第一个面向对象的语言SIMULA67,1971年出现的著名的PASCAL等语言,也都是在ALGOL60的基础上加以扩充而形成的。,18,佩利简介,与此同时,在佩利
10、的积极组织下,卡内基理工学院事先在大学生中开设程序设计课程。在此之前,有关程序设计的知识是作为”数值分析”课程内容的一部分予以介绍的。程序设计课的开设是计算机科学教育的开端。之后,在卡内基理工学院、斯坦福大学、MIT等少数几个大学建立起了计算机科学系和计算机科学研究生院,使计算机科学脱离电气工程、数学等学科而成为一门独立的学科。美国的第一批计算机科学博士生,绝大部分都是佩利的弟子。,19,佩利简介,佩利的至理名言:“任何名词都可以变为动词”(any noun can be verbed)。他的意思是说,任何远大的理想、志向、抱负和对新事物的追求,通过努力和不懈的实践,都是可以实现的。,20,佩
11、利简介,佩利的主要著作:对程序设计语言的思考(A View of Programming Languages,Addison-Wesley,1970)。计算机科学导论(Introduction to Computer Science,Harper Row,1972,1975)软件可重用性(Software Reusability,ACM Press,1989),21,讨论,“任何名词都可以变为动词”,你如何理解?计算教育面临哪3个重大问题?,22,4.2 计算学科的基本问题,4.2.1 哥尼斯堡七桥问题与图论4.2.2 可计算问题与不可计算问题4.2.3 GOTO语句问题与程序设计方法学4.2
12、.4 哲学家共餐问题与计算机资源管理4.2.5 两军问题与计算机网络4.2.6 人工智能中的若干哲学问题,23,4.2.1 哥尼斯堡七桥问题与图论,哥尼斯堡七桥问题寻找“走遍7座桥,且只许走过每座桥一次,最后又回到原出发点”的路径,哥尼斯堡地图,24,欧拉对哥尼斯堡七桥问题的抽象,将哥尼斯堡七桥问题抽象为一个数学问题,即寻找“经过图中每边一次且仅一次”的回路,25,欧拉的结论,欧拉的结论:任一连通无向图存在欧拉回路的充要条件是图的所有顶点均有偶数度。任一连通无向图存在欧拉路径的充要条件是图中只有两个顶点为奇数度。此外,既不存在欧拉路径也不存在欧拉回路。因此,哥尼斯堡七桥问题中的回路是不存在的。
13、欧拉的论文为计算学科中图论的形成奠定了基础。今天,图论已广泛地应用于计算学科、运筹学、信息论、控制论等学科之中,并已成为我们对现实问题进行抽象的一个强有力的数学工具。,26,图论中的哈密尔顿回路问题,哈密尔顿回路问题:在某个图G中能否找到这样的路径,即从一点出发不重复地走过所有的结点,最后又回到原出发点。但至今仍未找到满足该问题的充分必要条件,27,相关图灵奖获得者,伊万萨瑟兰1988年图灵奖获得者,计算机图形学之父,28,伊万萨瑟兰,(1938?),29,4.2.2 可计算问题与不可计算问题,1 梵天塔问题以及复杂性理论2 证比求易算法3 旅行商问题与组合爆炸问题4 找零问题、背包问题与贪婪
14、算法5 一个不可计算问题:停机问题,30,1 梵天塔问题以及复杂性理论,梵天塔问题复杂性理论,31,梵天塔问题,将A柱子上的n个盘子借助B柱子全部移到C柱子上,并且移动时必须同时满足以下规则:每次只能移动一个盘子盘子只能在三根柱子上来回移动不能放在他处在移动过程中三根柱子上的盘子必须始终保持大盘在下小盘在上,32,梵天塔,33,梵天塔问题的求解,用计算机求解一个实际问题,首先要从这个实际问题中抽象出一个数学模型,然后设计一个解此数学模型的算法,最后根据算法编写程序,经过调试、编译、连接和运行,从而完成该问题的求解梵天塔问题是一个典型的只有用递归方法(而不能用其他方法)来解决的问题所谓递归,就是
15、将一个较大的问题归约为一个或多个子问题的求解方法,并且这些子问题比原问题简单,且在结构上与原问题相同,34,算法描述(Java语言版),public class HanoiTower/将n个盘从left柱移到right柱,以middle柱为辅助柱public static void move(int n,char left,char right,char middle)if(n=1)/仅有一个盘时,直接从left柱移到right柱(将#1盘从+left+移到+right);else/将n-1个盘从left柱移到middle柱,以right柱为辅助柱move(n-1,left,middle,ri
16、ght);/将最下的圆盘从left柱移到right柱(将#+n+盘从+left+移到+right);/将n-1个盘从middle柱移到right柱,以left柱为辅助柱move(n-1,middle,right,left);public static void main(String args)/将4个圆盘从A柱移到C柱,移动时利用B柱为辅助柱move(4,A,C,B);,35,运行结果示例,E:APPTESTjavac HanoiTower.javaE:APPTESTjava HanoiTower将#1盘从A移到B将#2盘从A移到C将#1盘从B移到C将#3盘从A移到B将#1盘从C移到A将#2
17、盘从C移到B将#1盘从A移到B将#4盘从A移到C将#1盘从B移到C将#2盘从B移到A将#1盘从C移到A将#3盘从B移到C将#1盘从A移到B将#2盘从A移到C将#1盘从B移到C,36,算法的复杂性,按照上面的算法,n个盘子的梵天塔问题需要移动的盘子数是n-1个盘子的梵天塔问题需要移动的盘子数的 2 倍加 1。于是 h(n)=2h(n-1)+1=2(2h(n-2)+1)+1=22h(n-2)+2+1=23h(n-3)+22+2+1=2nh(0)+2n-1+22+2+1=2n-1+22+2+1=2n-1启示:理论上可以计算的问题,实际上并不一定能行(称为“难解问题”),37,复杂性理论,复杂性理论主
18、要指算法与问题复杂性理论2个基本概念:问题:指需要回答的一般性提问算法:指求解某个问题的一系列具体步骤如果一个算法能解答一个问题的任何实例,那么就说这个算法能解答这个问题如果针对一个问题至少存在一个算法可解答这个问题,那么就说这个问题是可解的(resolvable),否则就说这个问题是不可解的(unresolvable),38,算法复杂性,一个算法复杂性通常用称之为“大O”的符号来表示,它表示了算法复杂性的数量级f(n)=O(g(n)意味着存在一个常数c和n0使得对一切nn0,有f(n)c|g(n)|如:若f(n)=17n+10,则f(n)=O(n),因为存在c=18,n0=10,39,算法复
19、杂性分类,算法复杂性分类多项式的(polynomial):复杂性为O(nc)(c为常数)若c=0,就称它是常量(constant)的,复杂性为O(1)若c=1,就称它是线性(linear)的,复杂性为O(n)若c=2,就称它是二次(quadratic)的,复杂性为O(n2)指数的(exponential):复杂性为O(ch(n)(c为常数,h(n)为多项式)当h(n)大于常数而低于线性函数时,如h(n)=log2n,就称它是超多项式(superpolynomial)的,40,问题复杂性,在问题复杂性理论中,重要的是关于NP与NP完全问题的理论一个问题的复杂性可理解为由解该问题的最有效的算法所需
20、的时间与空间来度量,41,问题的分类,问题的分类P类问题:在多项式时间内可以解决的问题P类问题的全体,记为PNP类问题:在多项式时间内可以验证的问题NP类问题的全体,记为NP,显然P NP,但还未证明PNP如:大整数的素因子分解问题、背包问题、可满足性问题、离散对数问题NP-完全类问题所谓一个NP问题是NP完全的,如果NP中的任何一个问题都可以通过多项式时间转换为该问题如:背包问题、可满足性问题、离散对数问题、旅行商问题、哈密尔顿回路问题NP-完全类问题的全体,记为NPC若NPC中的任何一个问题属于P,则所有的NP问题都属于P,且P=NP,42,2 证比求易算法,“证比求易算法”童话:从前,有
21、一个酷爱数学的年轻国王向邻国一位聪明美丽的公主求婚。公主出了这样一道题:求出48 770 428 433 377 171的一个真因子。若国王能在一天之内求出答案,公主便接受他的求婚。办法1:国王回去后立即开始逐个数地进行计算,他从早到晚,共算了三万多个数,最终还是没有结果。国王向公主求情,公主将答案相告:223 092 827是它的一个真因子。国王很快就验证了这个数的确能除尽48 770 428 433 377 171办法2:由于对一个17位的数,其最小的一个真因子不会超过9位,于是按自然数的顺序给全国的老百姓每人编一个号发下去,等公主给出数目后,立即将它们通报全国,让每个老百姓用自己的编号去
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算 学科 形成 及其 基本 问题
链接地址:https://www.31ppt.com/p-6023342.html