您的当前位置:首页正文

对计算机导论的认识

2020-07-09 来源:步旅网
对计算机导论

的认识

计算机科学与信息工程系

软件工程一班

学号:2

姓名:孙 贵 德

这学期学习的主要是计算机基础以及操作,也学习了word excel以及幻灯片等方面的知识。同时我也认识到计算机这门课程里有好些特别抽象的概念,有时比较难理解,这时我们不妨用一些比较通俗易懂的东西去理解,因为好多东西我们不能仅仅靠记住或抄写下来就可以啦,最主要的是去理解它。当然这不是仅仅在计算机这门课上,其它科目也一样。

当我们步入新世纪的时候,计算(Computing)技术作为现代技术的标志,已成为世界许多经济增长的主要动力。计算领域也已成为一个极其活跃的领域,计算学科正以令人惊异的速度发展,并大大延伸到传统的计算机科学的边界之外,成为一门范围极为宽广的学科。如何理解这个学科,引发了长期以来激烈的争论,并使计算机教育成为一个公认的富有挑战性的问题。要想从根本上解决这些问题,首要的任务是解决学科的认知问题,而计算机学科方法论正是解决这一问题的有效工具和理论体系。这种理论体系将使人们对学科的认知更加科学、更有条理,从而为计算学科教育的基础研究奠定基础。

在计算教育的历史上,有关整个计算学科综述性导引(简称“计算机学科导论”)课程的构建问题,长期以来一直存在激烈的争论。国际上最著名的两个计算机组织——ACM和IEEE-CS对这一问题十分重视。1989年1月,ACM攻关组在《ACM通讯》杂志上发表了计算教育史上具有里程碑意义的报告——《计算作为一门学科》,该报告明确要求“计算机导论”课程要以严密的方式将学生引入计算学科中各个富有挑战性的领域。2001年12月,ACM和IEEE-CS任务组提交的CC2001报告更进一步指出,该课程应能让学生了解计算学科中那些富有智慧的核心思想。2002年8月,《中国计算机科学与技术学科教程

3

10/19/2022

2002》(简称CCC2002教程)更是将“学科方法论”列为现代教育思想的内核,并明确指出:“按照走内涵发展的道路的要求,在计算机科学与技术学科的教育中,学科方法论的内容占有非常重要的地位。”

在关于“计算机导论”课程的构建问题上,人们容易将“计算机操作初步”(或“计算机文化基础”等)与“计算机导论”(或“计算机学科方法论”等)一类课程混为一谈。其实,这是两类性质不同的课程。“计算机操作初步”这类课程,主要解决的是对计算机功能的工具性认识问题,其目的在于培养人们使用计算机的初步能力,而“计算机导论”一类课程,主要解决的则是人们对计算本质的认知问题。对计算学科而言,即使某人可以相当熟练地操作计算机,甚至还可以进行较为复杂的程序设计,仍不能说他已相当了解计算学科。正如对电子学科而言,即使某人可以相当熟练地操作计算机,甚至还可以进行较为复杂的程序设计,仍不能说他已相当了解计算学科。正如对电子学科而言,即使某人可以相当熟练地操作电子产品(如家用电器),也不能说他已相当了解电子学科一样。

计算机学科方法论遵循一般科学技术方法论的普遍原理。但是,它又不同于一般科学技术方法论,一般科学技术方法论在学科认识中具有一般性的指导意义;而计算机学科方法论直接面对和服务于计算学科的认识过程,使人们对计算学科的认识逻辑化、程序化、理性化和具体化,它是我们认识计算学科的工具。就某种意义而言,学科方法论的建立是该学科成熟的标志之一。

随着20世纪40年代第一台存储程序式通用电子计算机的研制成功,进入20世纪50年代后,计算机的发展步入了实用化的阶段。然而,在最初的应用中,人们普遍感到使用机器指令编制程序不仅效率低下,而且十分别扭,也不利于交流和软件维护,复杂程序查找错误尤其困难,因此,软件开发急需一种高级的类似于自然语言那样的程序设计语言。1952年,第一个程序设计语言Short Code出现。两年后,Fortran问世。作为一种面向

科学计算的高级程序设计语言,Fortran的最大功绩在于牢固地树立了高级语言的地位,并使之成为世界通用的程序设计语言。Algol60的诞生是计算机语言的研究成为一门科学的标志。该语言的文本中提出了一整套的新概念,如变量的类型说明和作用域规则、过程的递归性及参数传递机制等。而且,它是第一个用严格的语法规则——巴科斯范式(BNF)定义语言文法的高级语言。程序设计语言的研究与发展在产生了一批成功的高级语言之后,其进一步的发展开始受到程序设计思想、方法和技术的影响,也开始受到程序理论、软件工程、人工智能等许多方面特别是实用化方面的影响。在“软件危机”的争论日渐平息的同时,一些设计准则开始为大多数人所接受,并在后续出现的各种高级语言中得到体现。例如,用于支持结构化程序设计的PASCAL语言,适合于军队各方面应用的大型通用程序设计语言ADA,支持并发程序设计的MODULA-2,支持逻辑程序设计的PROLOG语言,支持人工智能程序设计的LISP语言,支持面积对象程序变换的SMALLTALK、C等。而且,伴随着这些语言的出现和发展,产生了一大批为解决语言的编译和应用中所出现的问题而发展的理论、方法和技术。有大量的学术论文可以证明,由高级语言的发展派生的各种思想、方法、理论和技术触及到了计算机科学的大多数学科方向,但内容上仍相对集中在语言、计算模型和软件开发方法学方面

数据库技术是计算机科学技术中发展最快、应用做广泛的领域之一,它是计算机信息系统与应用程序的核心技术和重要基础。经过了30余年的发展,其应用已遍及各个领域,成为21实际信息化社会的核心技术之一。数据库系统包括数据库系统的定义、发展、类型、结构,以及数据库管理系统和数据库语言等基础知识。计算机科学和计算机工程是 对计算过程(algorithmic processes)的系统研究,计算过程包括描述信息和转换信息的理论、分析、设计、效率、现实和应用。这些计算(过程)的基本问题是什么是能够被有效 地自动化的。这一学科起始于上世纪四十年代初,结合了算法理论、数理逻辑和存储程序式电子计算机的发明。几千年以来,算术一直是数学至为关心的内容。有很多物理现象的模型被用来创立方程式,并通过计算该方 程式对物理现象进行预测,比如像弹道轨迹的计算、

5

10/19/2022

天气广播和流体力学。很多解这些方程式的通用方法也发明出来了,比如,线性方程组、差分方程和积分方程的 算法。几乎在同一时期,算术用于辅助机械系统设计也成了工程学

至为关心的内容。例子如静止物体压力评估的计算、运动物体的动力量计算等。

当人们从不同的角度来描述这一概念时就有不同的定义(当然是描述性的)。例如,称数据库是一个“记录保存系统”(该定义强调了数据库是若干记录的集合)。又如称数据库是“人们为解决特定的任务,以一定的组织方式存储在一起的相关的数据的集合”(该定义侧重于数据的组织)。更有甚者称数据库是“一个数据仓库”。当然,这种说法虽然形象,但并不严谨。

2005年,一系列具有深远影响的计算机体系结构被曝光,有可能为未来十年的计算机体系结构奠定根本性的基础,至少为处理器乃至整个计算机体系结构做出了象征性指引。我们看到,随的衡量标准和方式在发生变化,从应用的角度讲,讲究移动和偏向性能两者已经找到了最令人满意的结合点,并且有可能引爆手持设备的急剧膨胀。尽管现在手持设备也相对普及,但是在计算能力、可扩展性以及能耗上,完全起步到一台手持设备应该具备的作用;另一方面,讲究性能的服务器端和桌面端,开始考虑减少电力消耗赶上节约型社会的大潮流。

但是,仅仅有这些并不足以让一台电脑更为人性化,电脑的活动需要人多量的干预,不足以抵消它在性能上的进步,“它”没有更体贴人来自电脑无法感知自己本身。下一步需要做的是,让电脑有“感觉”,这样会消耗多量的计算资源,当然也会让电脑真的能够应对一些需求的时候,变得更为简单和方便。

这里说到的“感知”乃是一些软件的算法搭配硬件,实现对基本线条及其造型的判断,从而达到更为智能的目的。比如说,目前还无法对图像进行有意义的搜索,用户无法通过

一个图片的大概映像在浩如烟海的图片库中找到自己想要的。而这些图片往往应为数量巨大没有进行标注,查找就是很麻烦的事情,现在Intel和一家公司正在研究可以进行图片搜索的软件,如果真的能够判断线条组合的话,将是计算机史上的一大飞跃,这就意味着,

电脑真的能够学习了,在IDF Fall2005上,Intel展示了这个软件的初潜功能。

用计算机来代替人进行计算,就得首先研究计算方法和相应的计算机算法,进而编制计算机程序。由于早期计算机的应用主要集中在科学计算领域,因此,数值计算方法就成为最早的应用数学分支与计算机应用建立了联系。最初的时候,由于计算机的存储器容量很小,速度也不快,为了计算一些稍稍大一点的题目,人们常常要挖空心思研究怎样节省存储单元,怎样减少不需要的操作。为此,发展了像稀疏矩阵计算理论来进行方程组的求解;发展了杂凑函数来动态地存储、访问数据;发展了虚拟程序设计思想和程序覆盖技术在内存较小的计算机上运行较大的程序;在子程序和程序包的概念提出之后,许多人开始将数学中的一些通用计算公式和计算方法写成子程序,并进一步开发成程序包,通过简洁

的调用命令向用户开放。子程序的提出是今日软件重用思想的开端。

在计算机应用领域,科学计算是一个长久不衰的方向。该方向主要依赖于应用数学中的数值计算的发展,而数值计算的发展也受到来自计算机系统结构的影响。早期,科学计算主要在单机上进行,经历了从小规模数值分析到中大规模数值分析的阶段。随着并行计算机和分布式并行计算机的出现,并行数值计算开始成为科学计算的热点,处理的问题也从中大规模数值分析进入到中大规模复杂问题的计算。所谓中大规模复杂问题并不是由于数据的增大而使计算变得困难,使问题变得复杂,而主要是由于计算中考虑的因素太多,特别是一些因素具有不确定性而使计算变得困难,使问题变得复杂,其结果往往是在算法的研究中精度与复杂性的矛盾难于克服。

在“计算机导论”课程的构建问题上,CC2001报告认为:符合所有有不同需要的学

7

10/19/2022

生的综述性导引课程是不存在的。由此我们得到启发:不要再试图去建立那些引起类似于宗教战争那样激烈争论的、符合所有学生的整个学科综述性导引课程,而应当将注意力集中在学科中具有共同的、本质特征的内容上,这是解决这个问题的正确方法。计算机学科方法论承担的正是这样的任务,因此该课程的具体教学内容为:

① 学科方法论产生的历史背景、建立、研究意义

② 学科的特点、发展规律及发展趋势

③ 学科发展过程中典型的历史人物及传奇人物介绍

④ 学科中的科学问题、学科中的3个学科形态、学科中的核心概念

⑤ 学科中的数学方法、学科中的系统科学方法

⑥ 社会和计算职业问题

⑦ 计算教育哲学

⑧ 学科的教学计划与课程体系

⑨ 如何学好计算学科

对“计算机学科导论”这门课程,我的感觉是:

(1)“计算机学科导论”课程系统全面地为学生介绍了计算机科学知识领域划分的过

程,涵盖的问题,以及学科的本质。使自己一进入本学科就有了清晰、明确的方向和认识,在学习的过程中不再感到困惑、茫然等。

(2)通过对“计算机学科导论”的学习,使自己触及了计算机乃至计算学科的本质,不再把计算机仅仅当作一种工具来使用,对它的认识也随之提升到了理论和哲学的高度。

(3)通过对“计算机学科导论”的学习,使自己渐渐认识到,该学科远比自己内心想象的高深得多,神气得多,知道了自己将来会学到什么,将来要做什么,对学习的兴趣更加浓厚。

(4)学习本学科目的不再是浅显的计算机操作和程序设计,要向人类的未知领域发出冲击,要从方法论的角度去思考计算学科中那些富有挑战性的问题,要为祖国的计算机事

业作出自己的贡献 《完》

9

10/19/2022

因篇幅问题不能全部显示,请点此查看更多更全内容