计算机科学与技术学习报告

计算机科学与技术导论学习报告

摘要 一个学期的学习快要结束了,回顾这一学期的学习,计算机科学导论这节课将我们带入了浩瀚的计算机的世界。计算机世界是一个充满未知和机遇的领域。无论是否学习计算机,计算机已经是我们生活中最重要的一部分了。我们离开计算寸步难行,这一幕不久的将来就会出现。这也就预示了计算机这个专业将来只会越来越重要,作为学习计算机的人,我们更应该好好学习,不错过这个好机会。

关键词 计算机科学与技术专业的认识 计算机硬件系统的结构和工作过程 离散数学 学习感想

1 对计算机科学与技术的认识

1.1计算机科学与技术专业

计算机科学与技术培养的是具有良好的科学素养,系统地、较好地掌握计算机科学与技术包括计算机硬件、软件与应用的基本理论、基本知识和基本技能与方法,能在科研部门、教育单位、企业等各种岗位上从事计算机教学、科学研究和应用的计算机科学与技术学科的高级科学技术人才

计算机科学与技术是一门软硬件结合的专业,对计算机的领域系统、基础的介绍,为学生将来的发展奠定良好的基础。

1.2本专业的学习方法

(1)培养自己的逻辑思维能力,即学好高数、线代、离散数学。逻辑固然重要,但抽象思维在计算机中的重要性绝不比逻辑思维弱。如果不培养抽象思维,就好比一个建筑师在还没建好一楼的时候,就去建造二楼。这样不仅难度大大的增加,而且还埋下了发生重大事故的隐患。我们学习计算机,要对自己做的产品负责。

(2)要做到软件的可靠性高,这也不是仅靠多练就行的,多练习固然重要,但我认为更重要的是学习工程管理的知识。管理或许不被我们这些理工科生重视,但无论是个人开发还是团队开发,对于工期的控制,对团队的分工还是对成本的控制这都是开发优质软件必不可少的。

(3)牢固掌握各种编程语言,巧妇难为无米之炊,没有编程语言的支持,再好的思想也无法得以实现。学习语言不能凭自己的感觉去做,要从计算机的角度(即语言的标准化),不能自己想怎么写就怎么写。当然可以借此来试错,试错可以帮助我们更好的理解语言。

(4)注重实践,将算法用程序的方式呈现出来,既是对思维能力的锻炼,也是对编程语言的操练。作为计算机科学与技术的学生,还应该对各种应用程序有所涉猎,应该自己解决一些电脑的问题,熟练地掌握基本的一些office类的软件。正是在这过程中,我们技能开阔自己的眼界,也能不断激发对计算机学习的兴趣。

1.3专业前景

专业的前景是光明的。我对于计算机业的信心就如我对明天太阳还会从东方出来一样大。可能有人会说:“现在智能机、平板越来越好用,计算机系的毕业生出来找不到工作。”这句话体现的正是说话者的无知。广义的计算机不仅只有电脑,还包括智能机、平板等计算机。智能机、平板的大发展只是电脑在整个计算机中比重下降,新出现的计算机形式比例提升。他们的出现不是限制计算机的发展,而是推动计算机从家庭走向个人。我们可以设想,这一过程将释放多大的潜在市场,一个更大的市场就将需要更多的专业人才去开拓,去维护。举个例子,以前一个网络公司只需要员工去开发、维护电脑端的应用软件。可现在它除了电脑端的软件开发、维护,还需要其他大量员工去开发、维护移动应用。移动互联网与手持计算机的大结合、大发展正是我们光明的未来。

2 计算机硬件系统及工作过程

2.1计算机硬件发展历史

计算机硬件的发展可以说是一个越来越快的过程,在机械计算机的时代,它的发展一直受到落后的生产力的制约,发展十分缓慢。在十九世纪、二十世纪,工业革命极大地促进了生产力的提升,机械计算机在它的晚年迎来了一个大发展时期,然而电子计算机的萌芽迅速遏制了这一趋势。电子计算机在短短的六十年时间中,走过了四代。它从体积大、运算速度慢、存储容量小、可靠性低、功能单一的第一代电子管计算机发展成为我们现在接触的体积小、可靠性高、功能强大的第四代大规模何超大规模计算机。在这期间,世界经济,科技飞速发展,生产力急剧提高。从计算机的发展中,我们看到了生产力的提升。我们可以说:“计算机的发展是生产力提升的必然结果,而计算机的发展又推动了生产力的提高。

2.2现代计算机的硬件结构及特征

现代计算机系统是一种能够按照事先存储的程序,自动、高速地对数据进行输入、处理、输出和存储的系统,由计算机硬件系统和计算机软件系统两大部分有机结合而成。

硬件系统:由一系列电子元器件按照一定逻辑关系连接而成,是计算机系统的物质基础。

现代计算机的基本结构是冯.诺依曼在1946年提出的。冯诺依曼结构的计算机比较以前的电子计算机主要的优点在于采用了存储程序概念并用二进制代替了十进制。运行不同的程序不必再对cpu重新布线,而只要修改存储器中的内容就行了,这极大地促进了计算机各方面的发展,计算机运算能力提高同时体积变小不再是梦想,可靠性提高成为可能。冯诺依曼结构计算机主要有五部分组成,包括运算器、控制器、存储器、输入设备、输出设备。

软件系统:指挥和控制计算机硬件系统按照预定的程序运行和工作,从而达到预定目标。

2.3计算机软件分类

软件系统可分为系统软件和应用软件。一般把靠近计算机硬件、违反便使用和管理计算机资源的软件叫做系统软件。它负责管理、控制和维护计算机的各种软硬件资源,并为用户提供一个友好的操作界面,以及服务于一般目的的上机环境。系统软件包括操作系统、计算机监控管理程序、高级程序设计语言的编译和解释程序以及系统服务等。操作系统居于核心地位,其他系统软件在它的支持下工作。应用软件是针对某个应用领域的具体问题而开发和研制的程序,它由专业人士为各种应用目的而开发。应用软件必须在系软件的支持下才能工作,它具有很强的专业性和实用性。

现代计算机是以存储器为核心的计算机系统。当利用计算机完成某项任务时,首先把解决的问题的程序和所需的数据存入存储器,在执行程序时再由存储器快速地提供给处理机。

2.4计算机重要组成部分——存储器

2.4.1存储器简介

目前已经出现了多种类型的存储器,根据存储器位于主机中的位置,可以将其分为内存储器和外存储器。内存储器主要用于存放当前执行的程序和数据,与外存储器相比,其容量较小,谈工作速度较快。外存储器位于主机外部,主要用于存放当前不参加运行的程序与数据。在需要时,可以与内存以批处理的方式交换信息,其特点是存储容量大但速度较低。

2.4.2存储器分类

按存储介质,存储器分为半导体存储器、磁存储器和光存储器。

按工作方式,可将其分为随机存储器(RAM)、只读存储器(ROM)、顺序存储器(SAM)、直接存储器(DAM)。

随机存储器可以以任意次序读、写任意存储单元所用的时间都是相同的,,并且在一个存或取周期内只能进行一次访问。随机存取存储器常用于主存或高速缓冲存储器。

只读存储器常用来存取固定不变的系统程序,因此又叫“固存”。早期的只读存储器,在工作时内容不能改变,即禁止写入,是一种非破坏性读出。后来又出现了可编程的只读存储器(PROM)、可擦编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)等。

顺序存储器只能以某种确定的顺序来读、写存储单元。它价格较低,存取速度慢,容量较大。

直接存取存储器介于顺序存储器和随机存储器,存取所需的信息时先随机存取找到要找的地址附近的范围,在顺序存取找到要找的地址。

按信息的可保存性,可分为易失性存储器和非易失性存储器。RAM等存储器断电后存储的信息会消失的是易失性存储器。ROM和磁盘存储器等这种断电后存储的信息不会消失的叫做非易失性存储器。

按在计算机中的作用,可将存储器分为主存储器、辅助存储器和高速缓冲存储器等。

存储器的主要性能指标有存储容量、存储周期、存取访问时间、可靠性、性能价格比等;

2.4.3存储系统3级分层结构

采用该结构的原因是为了解决计算机存储器要求存取速度快、容量大、成本低的矛盾。速度快由高速缓存器来实现,可由于高速缓存器价格极高,且容量极小,必须要设置主存储器来降低成本、扩大容量。主存容量较高速缓冲存储器是大的多,可其容量对于使用计算机实现各种功能来说,明显显得不足,这还需要辅助存储器来帮助实现。通过这三层我们实现了各种性能要求的平衡。

3层分级结构建立在程序运行的局部性原理之上。主要体现在如下几个方面:

时间的局部性原理。在一小段时间内,最近访问过的程序和数据很可能被再次访问。

空间局部性原理。最近被访问过的程序和数据往往集中在一小片存储区域内。

指令执行顺序的局部性原理。指令顺序执行比转移执行的可能性要大。

所存储的信息也要满足一下原则:

一致性原则。即同一信息会同时存放在几个级别的存储器中,此时,这一信息在几个级别的存储器中必须要保持一致。

包含性原理。即内层存储器(靠近cpu)中的信息一定要包含在各外层的存储器中。这是保证程序正常运行、实现信息共享、提供按系统资源利用率所必需的。

 

    高速缓冲存储器Cache是根据程序存在局部性,在主存与中央处理器之间设置一个高速但容量较小的存储器。它的工作速度是主存的数倍,全部功能由硬件实现,并对程序员透明。它主要的工作是把正在执行的指令地址附近的一些指令或数据从主存调入自己内部,以便cpu在一段时间内使用。

Cache与主存都被分成了若干个容量相等的块,每块由若干字节组成,Cache的内容是主存部分内容的副本,Cache标记指明主存的那些块在Cache中,主存地址的低位部分(块号和块内地址)直接作为Cache的地址访问Cache,并用主存的块号访问Cache标记,并将取出的标记与主存的标记字段比较。相等则访问Cache有效,即命中;否则,Cache访问失效,即没命中,说明需要访问主存,并将主存中包括该地址的一块信息装入Cache。如果Cache已被装满,则根据替代算法,用调入块替换Cache中原有的某块信息。

虚拟内存用于主存与辅存这一层次。他使计算机拥有辅存的容量和接近主存的速度。设置虚拟内存解决了主存的容量问题,还控制了物理内存的访问权限,分隔了应用程序与物理地址,使得操作系统更加的稳定。虚拟内存的地址并不是辅存的实际地址,而是辅助的逻辑地址。虚拟存储器到辅存实地址的变换。


2.5计算机工作
2.5.1机器语言及指令系统

为了应用存储程序的概念,CPU被设计成可以识别各种指令(二进制编码形式)。计算机主要分为精简指令及计算机和复杂指令及计算机。

精简指令集计算机: RISC (Reduced Instruction Set Computer) 只需执行最小的一组机器指令集; 它效率高、速度快,主要用于嵌入式系统应用。

复杂指令集计算机: CISC (Complex Instruction Set Computer), 它能够执行大量复杂指令,容易编程,开发桌面应用。

2.5.2机器指令集分类

数据传输类:从一个存储位置复制(或移动)数据到另一个存储位置(寄存器、主存单元、外设备)。

算术/逻辑类:控制单元要求在ALU内实现一个活动(算术运算、逻辑运算数据移位等)。

控制类:指导程序执行流程,但不是数据操作的指令;如:条件转移指令(if… then…)。

2.5.3机器指令的格式

操作码(Op-code):执行什么样的操作。

操作数(Operand):参与操作的详细信息(数据、存储位置等)。

2.5.4cpu机器周期

CPU通过程序计数器(指向下一个待执行的指令的地址) 指令计数器( 存放当前执行的指令)专用寄存器来控制程序(指令)的执行:

CPU的机器周期(machine cycle) 是取指(Fetch) -> 译码(Decode) -> 执行(Execute)  ->取指 -> 译码 -> 执行 ……

3 离散数学

3.1离散数学的概念

离散数学(Discrete mathematics)是数学的几个分支的总称,以研究离散量的结构和相互间的关系为主要目标,其研究对象一般地是有限个或可数无穷个元素。 离散结构研究的内容 :数理逻辑、集合论、代数结构和图论等4个部分、组合学、数论、离散概率、运筹学、数值计算等。

3.2学习离散数学的原因

由于数字电子计算机是一个离散结构,它只能处理离散的或离散化了的数量关系, 因此,无论计算机科学本身,还是与计算机科学及其应用密切相关的现代科学研究领域,都面临着如何对离散结构建立相应的数学模型;又如何将已用连续数量关系建立起来的数学模型离散化,从而可由计算机加以处理。

离散数学课程主要介绍离散数学的各个分支的基本概念、基本理论和基本方法 。这些概念、理论以及方法大量地应用在数字电路、编译原理、数据结构、操作系统、数据库系统、算法的分析与设计、人工智能、计算机网络等专业课程中。离散数学所提供的训练十分有益于学生概括抽象能力、逻辑思维能力、归纳构造能力的提高,十分有益于学生严谨、完整、规范的科学态度的培养。

3.3离散数学对于计算机科学与技术的重要性

离散数学是计算机学科的专业基础课,不但为后续课程提供必须的理论基础,而且可以培养学生的抽象思维能力和解决问题的能力。离散数学的教学内容与计算机硬件和软件都有着密切的关系,具有鲜明的基础特点,不仅是数据结构、数据库原理、数字逻辑、编译原理、人工智能、信息安全等课程的前续课程,同时以计算机导论和程序设计基础作为离散数学的先导课程。

离散数学是计算机应用的必不可少的工具。例如数理逻辑在数据模型、计算机语义、人工智能等方面的应用,集合论在数据库技术中的应用,代数系统在信息安全中的密码学方面的应用,图论在信息检索、网络布线、指令系统优化等方面的应用。

离散数学与数据结构的关系非常紧密,数据结构课程描述的的对象有四种,分别是线形结构、集合、树形结构和图结构,这些对象都是离散数学研究的内容。线形结构中的线形表、栈、队列等都是根据数据元素之间关系的不同而建立的对象,离散数学中的关系这一章就是研究有关元素之间的不同关系的内容;数据结构中的集合对象以及集合的各种运算都是离散数学中集合论研究的内容;离散数学中的树和图论的内容为数据结构中的树形结构对象和图结构

离散数学与数据库原理的关系也异常紧密。目前数据库原理主要研究的数据库类型是关系数据库。关系数据库中的关系演算和关系模型需要用到离散数学中的谓词逻辑的知识;关系数据库的逻辑结构是由行和列构成的二维表,表之间的连接操作需要用到离散数学中的笛卡儿积的知识,表数据的查询、插入、删除和修改等操作都需要用到离散数学中的关系代数理论和数理逻辑中的知识。

数字逻辑为计算机硬件中的电路设计提供了重要理论,而离散数学中的数理逻辑部分为数字逻辑提供了重要的数学基础。在离散数学中命题逻辑中的联结词运算可以解决电路设计中的由高低电平表示的各信号之间的运算以及二进制数的位运算等问题。

编译原理和技术是软件工程技术人员很重要的基础知识,编译程序是非常复杂的系统程序,包括词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成、依赖机器的代码优化7个阶段。离散数学中的计算模型的语言和文法、有限状态机、语言的识别和图灵机等知识点为编译程序中的词法分析和语法分析提供了基础。

4 学习感想

4.1科目知识交叉互通

学习过程中,我印象最深刻的是我搞不懂计算机是如何寻找主存的地址,这个疑惑是在我编写c程序时产生的。计算机科学导论课也讲了关于主存的一些知识,我在计算机科学的书上找关于计算机寻找主存的方式,终于初步理解了原来计算机是通过主存附近的电路来实现对主存地址的识别。虽然这个解释并不具体,有点抽象,但这已经可以帮助我们理解计算机寻找贮存地址的方式,对我们学习c语言也有帮助。

4.2知识层次上抽象

   我们学习计算机的要编程,就要理解计算机的结构及工作原理,但在我们日常使用计算机的过程中,我们并不需要了解这些,也不用面对冷冰冰的字符界面和一串串长长的代码。这就是抽象的直观体现。就像计算机科学导论课上曾介绍过门电路是电子电路的基础,可后来对主存的介绍中,却不介绍主存是如何用门电路实现功能的。抽象是解决复杂问题的好方法。计算机中到处是抽象,TCP\IP协议,系统软件和应用软件等都是。

5 总结

计算机是个朝阳产业,计算机涉及领域极广。现代社会文明是一个建立在计算机之上的,我们应以学习计算机为荣。中国在计算机方面落后美国很多,在国家的十二五以及以后的五年计划中核高基一定会得到越来越多的重视和支持。我们现在的机会可以说是绝无仅有的,我们更应抓住机遇,好好学习计算机技术,争当时代的弄潮儿。

  为此,我将努力学习,在学好高数和离散数学的基础上,广泛的学习软硬件知识。软硬件结合能实现性能的最大化。Apple的iphone和ipad在硬件实力上远不及Andriod的情况下以软硬件结合的优势在用户体验上将Andriod远远甩在了后面。软硬件结合,必将是未来的趋势。软硬件知识的结合,也能帮助我们更好的拓展自己主修方向的深度和广度。更不应该将自己的视野局限在计算机,管理,通信以及电气等学科的知识也要有所涉猎。

  计算机科学与技术这个专业需要我们开阔眼界,广泛的阅读,以多学科知识交融来促进我们对本专业的理解。我们在将头低下看计算机方面的书时,请先抬头看看这个世界。计算机的问题来源于实际,计算机解决问题也需要抽象思维。细致的观察加上深刻的思考是就好的学习方法。

相关推荐