博学之,审问之,慎思之,明辨之,笃行之
离开生活了十几年的家乡,来到佛山开启求学之旅,关于大学的理解,既是“大大地学”,又是“大不了,自己学”。在大学这种较为自由的地方,可以学到书本内外的知识,可以实现梦想,也可以让不自律的人走向堕落。大学强调自主学习,读书主要取决于自己的学习积极性。至于计算机学科概论这门课程,清楚地记得崔老师第一节课提到:了解,理解,掌握,应用。从某种意义上说,计算机学科概论对于我们学网路工程专业的学生而言“并不是特别重要”,但是学习计算机科学与技术专业的基本理论和基本知识,了解计算机学科的基本知识框架和基本能力要求,梳理好基本的知识架构,再去学习日新月异的计算机技术,往往能做到事半功倍,从而最终做到融会贯通。
关于对教材《计算机学科概论》的拙见
教材由十五章构成,七大部分组成。第1部分为认识篇,下分为3章:认识计算机、认识计算机学科、学习计算机学科。计算机的史前史即为计算工具的发展简史,从手动式计算工具到机械式计算工具,到机电式计算机,再到电子计算机。步入真正的计算机,又经历了建立在电子管的第一代计算机;第二代的晶体管计算机;将大量的晶体管和电子线路组合在一块硅片上(芯片)的第三代计算机,此阶段出现了小型计算机;以及使用了大规模和超大规模集成电路的第四代计算机。此外,第四代计算机经过Intel公司的改进,将运算器和控制器集成在一块芯片上,构成中央处理单元。第四代计算机出现了三个里程碑事件:微型计算机、互联网和并行计算机。所谓的并行计算机含有多个处理器,相应地,只有一个处理器的计算机称为串行计算机。综上所述,计算机的发展趋势可归结在如下几个方面:超级计算机、微型计算机、智能计算机、普适计算机、新型计算机和网络与网格。二十世纪四十年代,由冯·诺依曼教授提出的冯·诺依曼计算机基本结构一直延用至今,在这个体系结构下,计算机是一种能够按照事先存储的程序,自动、高速地对数据进行输入、处理、输出和存储地系统。冯·诺依曼体系结构的主要特征是存储程序,而计算机的工作过程就是运行程序的过程,也就是执行指令的过程。目前,按照规模以及性能指标,计算机分为巨型计算机、大型计算机、小型计算机、服务器、工作站、微型计算机、网络计算机、便携式计算机、嵌入式计算机等等。再来谈谈计算机系统,系统科学方法是指用系统的观点来认识和处理问题的各种方法的总称。系统是由相互联系、相互作用的若干元素构成的,具有特定功能的统一整体。计算机系统由计算机硬件和计算机软件构成,硬件分为物理层和机器层;软件分为系统软件层、应用软件层和通信层。
计算机学科是对描述和变换信息的算法过程,包括对其理论、分析、设计、效率、实现和应用等进行的系统研究。它来源于对算法理论、数理逻辑、计算模型、自动计算机器的研究,并与存储式电子计算机的发明一起形成于20世纪40年代初期。计算机学科具有三个形态:抽象(即模型化)、理论、设计,这三个学科形态概括了计算机学科的基本内容。计算机学科的所有分支领域的根本任务就是进行计算,其根本问题仍然是:什么能被有效地自动计算。所谓计算就是计算者(人或机器)对一条可以无限延长的工作带上的符号串执行指令,一步一步地改变工作带上的符号串,经过有限步骤,最后得到一个满足预先规定的符号串的变换过程。通常来说,求解一个问题往往比较困难,但验证一个问题相对来说就比较容易,也就是证比求易。从是否可以被验证的角度,计算复杂性理论将难解问题划分为NP问题和非NP问题,将所有可以在多项式时间内验证的问题称为NP问题。同时,我们不能证明这些问题中的任何一个无法在多项式时间内得到求解,这类问题称为NP完全问题。
随着计算技术的发展,计算机学科被分为4个领域(专业方向),它们分别是计算机科学、计算机工程、软件工程、信息系统、信息技术,在将来还有望添加新领域。作为大学生,我们理应具备计算机专业的基本学科能力,宏观地讲,这可以归纳为计算思维能力、算法设计与分析能力、程序设计与实现能力、系统能力。路漫漫其修远兮,吾将上下而求索。
第2部分为硬件层,下分2章:计算机的运算基础、计算机部件。数理逻辑是用数学的方法来研究推理规律的科学。而所谓命题是一个有具体意义的且能够判断真假的陈述句。表达判断的命题总是具有“真”或“假”两种取值,命题所具有的值称为命题的真值。命题分为原子命题和复合命题两种类型。命题代数和普通代数一样,用字母A、B、C、…表示变量,称为命题变量(命题变元),但是命题变元的取值只有两种:T或F。连接词相当于普通代数中的运算符,在命题代数中最基本的连接词是与、或、非等。按进位的原则进行计数的方法称为进位计数制,简称进制。不同的进制以基数来区分,进位计数制采用位置记数法表示数,处于不同位置上的数码代表不同的值,即每个位置都对应一个位权值。值得一谈的是,将十进制整数转换为二进制整数的规则是:除基取余,逆序排列;将十进制小数转换为二进制小数的规则是:乘基取整,正序排列。关于整数的编码,计算机中同一类型的数据具有相同长度,与数据的实际长度无关。补码是一种使用最广泛的整数表示方法,其编码规则为:正数的补码其符号位为0,其余各位与数的绝对值相同,负数的补码其符号位为1,其余各位是数的绝对值取反,然后在最末位加1。涉及图形和图像的编码,数字化一幅图形通常采用的是矢量技术,而数字化一幅图像采用的是位图技术,且用于表示颜色的二进制位数称为色深度,表示一幅图像使用的像素个数称为分辨率。计算机是电子设备,计算机的硬件需要使用许多功能电路,门为计算机的各种功能电路提供了构件,电路由多个门组合而成。相应地,如前文所提到的集成电路(芯片)是嵌入了多个门的硅片。
我们购买电脑时,必然会考虑计算机的相关配置。存储器的性能指标主要有三个:存储容量、存取速度和每位价格。存储器可分成内存储器(内存或主存)和外存储器(辅助存储器或外存、辅存)。为了使较慢速的内存与高速的CPU相匹配,现代计算机系统大都采用了高速缓冲存储技术,高速缓冲存储器介于内存和CPU之间。总线是计算机内部传输指令、数据和各种控制信息的公共信息通道,是计算机系统的骨架。运算器又称算术逻辑单位,是计算机对数据进行加工处理的部件。控制器是计算机的“神经中枢”,用来控制计算机各部件协调工作。输入设备接收来自用户的数据和程序并转换为计算机可以识别的二进制形式:键盘、定点输入设备、扫描输入设备、语音输入设备、传感器。输出设备将计算机内部的二进制信息转换成人们可以理解的形式提供给用户:显示器、打印机、语音输出设备、绘图仪。在计算机硬件系统中,通常把内存储器、运算器和控制器合称为主机,而主机以外的装置称为外部设备,外部设备包括输入输出设备和外存储器等。接口是指计算机系统中两个硬件设备之间的逻辑电路,可分为串行接口和并行接口两大类。
第3部分为程序设计,程序是能够实现特定功能的指令的有限序列,是描述对某一问题的求解步骤。程序设计是给出解决待定问题的程序的过程,是软件构造活动中的重要组成部分,程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计的关键是数据表示和数据处理,基本的数据结构有线性结构、树结构、图结构。我们将数据从机外表示转换为机内表示,通常有两种存储表示方法:顺序存储方法和链接存储方法。算法是对待定问题求解步骤的一种描述,是指令的有限序列,算法必须满足5个重要特性:输入、输出、有穷性、确定性、可行性。算法分析指的是对算法所需要的两种计算机资源——时间和空间进行估算,所需要的资源越多,该算法的复杂度就越高。为了客观地反映一个算法的执行时间,可以用算法中基本语句执行次数的数量级来度量算法的工作量。这种衡量效率的方法得出的不是时间量,而是一种增长趋势的度量,称作算法的渐进时间复杂度,简称时间复杂度,通常用大O记号表示。至于程序设计语言的发展历史:机器语言→汇编语言→高级语言→非过程式语言→知识型语言。自然语言的一篇文章由段落、句子、单词、和字母组成,类似地,程序设计语言的一个程序由模块、语句、单词和基本字符组成。同自然语言一样,程序设计语言也是由语法和语义两方面定义的。其中,语法包括词法规则和语法规则,词法规则规定了如何从语言的基本符号构成词法单位,语法规则规定了如何由单词构成语法单位。共同的目的使各种各样的程序设计语言具有共同的基本内容,无论哪一种程序设计语言,都是以数据的表示、数据的组织、数据处理、程序的流程控制、数据传递为基本内容。狭义上,程序设计的环境是指利用程序开发的编程环境。目前的编程环境大都是交互式集成开发环境,包括程序编辑、程序编译、运行调试等功能。将高级语言编写的程序(源程序)转换为在逻辑上等价的机器指令(目标程序),实现这种转换的程序称为翻译程序。早期的BASIC语言和近年来流行的Java语言都具有逐条解释执行程序的功能。如同自然语言的翻译,编译程序的翻译规则是源语言的语法规则和语义规则。
第4部分为系统软件层,下分2章:操作系统、数据库管理系统。任何一个正在使用计算机的用户都不可避免地使用计算机的资源,其中硬件资源包括处理器、内存和各种外部设备,软件资源包括各种以文件形式存在的程序、数据和文档。操作系统是负责管理计算机的软硬件资源、提高计算机资源的使用效率、方便用户使用的程序集合。操作系统的作用主要有三个:一是方便性,二是有效性,三是提供应用软件的运行环境。应用软件的兼容性通常由硬件和操作系统共同定义。操作系统的核心指令成为内核,而启动操作系统实质上是将操作系统的内核加载到内存中。配置在微型计算机上的操作系统称为微机操作系统,所谓任务指的是计算机完成的一项工作,计算机执行一个任务通常就对应着运行一个应用程序,具体还可以追溯到单用户单任务操作系统、单用户多任务操作系统、多用户多任务操作系统。关于网络操作系统,这是用户和计算机网络之间的接口,也就是说,用户通过网络操作系统使用计算机网络资源。此外,还有分布式操作系统、嵌入式操作系统。总的来说,操作系统可以完成处理器管理、存储管理、设备管理以及文件管理,其中文件是操作系统进行数据管理的基本单位。
数据库是能够被统一管理的相关数据集合,这些数据具有一定的结构,能够长期存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为多个用户共享。数据库管理系统是为数据库的建立、使用和维护而配置的系统软件,使得用户能够方便地对数据进行增加、删除、修改、查询、统计和打印等各种操作。该系统主要采用数据库语音作为数据库存取语言和标准接口,目前,关系数据库管理系统普遍采用结构化查询语言(SQL语言)作为数据库语言。数据表示可以通过建立数据库实现,将现实世界的事物抽象为E-R模型,通常用实体-联系图来描述实体以及实体之间的联系。将E-R模型映射为关系模型,关系模型的基本思想是把实体以及实体之间的联系都看成是关系,以二维表的形式描述,称为数据表。操作数据库可进行数据处理:数据查询、数据更新、数据控制。事务是并发控制和故障恢复的基本单位,所谓事务是由用户定义的一个数据库操作序列,是一个不可分割的逻辑工作单元,这些操作要么全部执行成功,要么一个也不执行,一个数据库应具备安全性和完整性。
第5部分为应用软件层,下分3章:软件工程、人机交互、人工智能。第6部分为通信层,下分3章:计算机通信、计算机网络、网络安全。第7部分为职业道德篇:职业与职业道德。出于目前课程的进展,未经讲师指点,在下不才,未能如上文一一展述,纵是才学疏浅,相信今后在崔老师的举旗引领之行中,方可砥砺奋进,勇往直前。
佳绩与颜值同步,用实力书写华章
天行健,君子当以自强不息。时间车轮轰隆而过,春种秋收四季轮回,在浩渺的时空里,每个人都站在过去与未来之间,既秉承着过去的期许,也怀揣着对未来的企盼,缔结接力千载的信笺,写给所有的今天与明天——筚路蓝缕启山林,栉风沐雨向前方。冲锋号已扬起风帆,新时代的烈日已徐徐升起,新征程的号角已嘹亮吹响,在这浩瀚的学海里,我们理应争做先锋,当出手,绝不让。
关于《计算机学科概论》,开头已提到过,其重要性毋庸置疑。在我国高等教育逐步实现大众化后,越来越多的高等学校将会面向国民经济发展的第一线,为行业、企业培养各级各类高级应用型专门人才。谈起这类国家级精品课程,每每接受教育,都能让自身如沐光辉,幼小的心灵得到神化洗礼。通过实践深化对理论的理解,更重要的是学会理论方法的实际运用。认知计算机和计算机学科,认知计算机的工作原理和计算机系统,认知计算机学科的根本问题和思维方式,可以为学习计算机学科导航指向。该课程具有无与伦比的启蒙功效,不但作为我们的入门课程,更是可以调动我们的学习兴趣,生活情调,进而领会思想,引发对人生的思考。
顺便一提的是学习计划,计划永远赶不上变化,你无法预想下一秒会发生什么。然而,文大师所言极是,年轻人要敢想,要会想。所谓谋事在人,成事在天,不巧,既是男儿当自强,我命由我不由天。因此,作为网络工程专业的学生,挂科是不可能挂科的,考研是必须要考研的,欲戴皇冠,必承其重。水莲花若取不胜凉风的娇羞,既爱慕水墨青花,又何惧刹那芳华?在高等数学,大学英语,C语言等各大科目的冲击下,我没有理由不迎着春风,扶摇直上。顺从内心,尽可能地参加相关的竞赛,充实自己。术有专攻,在今后好几年的学习生活中,我愿执念不左,把青春献在这里,一路阔步,在知识的海洋里上下求索,投入网络的怀抱,不离不弃。