欢迎访问合肥育英学校!

合肥育英学校

您现在的位置是: 首页 > 学习方法 >计算机科学与技术是什么专业干什么的(计算机科学与技术是学什么的-从事什么专业就业前景)

计算机科学与技术是什么专业干什么的(计算机科学与技术是学什么的-从事什么专业就业前景)

发布时间:2024-08-21 16:11:13 学习方法 347次 作者:合肥育英学校

更新时间:2020/05/13

(更新在最后

计算机科学与技术是什么专业干什么的(计算机科学与技术是学什么的-从事什么专业就业前景)

_______________________________________

计算机科学与技术(CS),顾名思义,是研究与计算机相关的科学原理和专业技术的学科。从广义上讲,计算机是对输入信息进行计算然后输出的机器。计算本身可以看作是一个处理信息的过程。

因此,计算机应包含用于输入信息的输入设备(键盘、鼠标)、用于处理信息的计算设备(主机)以及用于输出信息的输出设备(显示器、扬声器)。无论你在电脑上做什么,无论是玩游戏、听音乐还是看电视节目,还是上网学习,电脑要做的本质上都是布尔运算。这是计算机上最基本的操作,就像大脑思维过程的本质一样。以上与无数神经元之间信号的接收和传输是一样的。布尔运算可以实现我们熟悉的加、减、乘等简单运算。这些是计算机的指令。大量的指令组成一个集合,可以完成特定的任务。我们称之为程序(程序,如PPT、QQ、浏览器等)。将计算机完成的功能分解为一组指令是最自然的想法,因为这样我们就可以灵活编写多种程序来完成不同的任务。因此,计算机可以用于各个方面。编写程序的过程称为编程。(编程)。冯·诺依曼于1946年提出了存储程序原理,将程序本身视为数据。程序和程序处理的数据以同样的方式存储。计算机按顺序执行程序。这就是冯诺依曼架构。(冯诺依曼架构)。为了存储程序和数据,上面提到的计算设备应该包括存储设备(主存、磁盘),为了执行程序指令,计算设备还应该包括实现算术运算和逻辑运算的运算单元,以及作为命令各个组件有序地协同工作的控制器。

冯·诺依曼架构(来源见水印)计算机总是分为软件和硬件。下面,我将从软件和硬件的粗略边界,先向下(底层硬件),再向上(应用、网络)一一介绍计算机科学与本科技术专业相关的主要专业的基础课程,然后介绍基础知识本专业所需的数学课程。

1、软硬件接口

当一台计算机同时运行多个程序时,如何有效地管理和分配计算机的软硬件资源就成为一个复杂的问题,于是人们引入了操作系统的概念。操作系统是最底层的软件。它为应用程序和用户提供调用计算机资源的接口和使用计算机的交互界面。需要实现的功能主要有内存管理、进程调度、文件系统等。学习操作系统理论原理和技术实现的课程叫做《操作系统原理》。

计算机应该包含哪些部件?每个组件执行什么功能?哪些功能是由硬件子系统完成的,哪些功能是由软件完成的?回答这些问题的课程就是《计算机体系结构》。计算机体系结构是程序员所看到的计算机的属性,即概念结构和功能特征(1964,C.M.Amdahl)。一般包括数据表示、寻址方式、寄存器组织、指令集、存储系统、中断机制、输入输出结构、信息保护等。

2.硬件

计算机体系结构确定后,如何实现各个组件的功能以及组件之间的连接关系,就是“计算机组成原理”。例如,当我们确定计算机的指令集中应包含乘法指令时,是应该使用加法电路来实现,还是应该使用加法和移位电路一起来实现乘法指令?本题属于计算机组成原理范畴。计算机组成原理包括CPU中指令的具体执行过程、基本数值运算、存储系统和结构、外围设备、I/O接口等概念和原理。

借助计算机组成原理的理论知识,《微机接口技术》进一步带我们了解它们的工程实现,例如对现有通用或专用芯片的理解和实现。本课程将涉及特定CPU(如Interx86系列)的引脚功能、总线周期、I/O端口的地址分配等详细的工程知识。

CPU、存储器等组件的构建离不开组合逻辑电路、时序电路等基本电路单元。基本运算,即布尔运算,离不开AND或NOT等逻辑门电路。如何用晶体管来实现这些电路是“数字电子学”的关键。“技术基础”,而晶体管的原理是在“模拟电子技术基础”中学习的。本课程还教授基本放大电路、波形生成和转换以及常用半导体器件相关的其他知识。其中,电路的基本概念和理论知识是《电路分析基础》中所讲授的内容,接下来就是单电子的运动。这些知识包含在《大学物理》的电磁场部分。

3、软件

如前所述,程序是大量指令的集合。用于编写程序的语言称为编程语言。计算机能够直接识别和执行的是二进制机器语言(机器指令编码)。早期的程序员直接编写机器语言。显然,这是极其低效的。后来,人们用助记符来代替指令的操作码,用地址符号或标号来代替指令或操作数的地址。这催生了汇编语言。汇编语言与硬件相关性较高,是一种低级语言,后来发展了c/c++、JAVA、Python等编写效率更高、抽象层次更高的高级语言。大多数学校都会提供高级编程语言课程作为入门。例如,受访者就读的学校是“基础编程(C语言)”。介绍完之后,还会开设一门课程《汇编语言编程》来帮助我们理解编程。语言和指令集之间的关系,以及对程序执行的本质过程的理解。大多数学校也会选择面向对象语言作为面向对象编程的入门。例如,受访者就读的学校是“面向对象编程(C++)”。学习了编程语言后,如何将高级语言翻译成机器可以识别的机器语言?更一般地说,如何将源语言翻译成另一种目标语言?这就是《编译原理与设计》中要学习的知识。

当然,仅仅会写程序还不够。计算资源是有限的。如何降低程序运行的时间和空间复杂度已经成为必然。这就需要我们学习“计算理论和算法分析设计”,掌握基本的复杂性。分析方法、经典算法思想、以及图灵机、NP完备性等更抽象的计算理论。在使用算法时,我们经常需要按照特定的结构来组织数据。这就是“数据结构”的知识。数据结构是指彼此之间具有一种或多种特定关系的数据元素的集合。精心选择的数据结构往往可以带来更高的操作或存储效率。

当软件变得更大、更复杂时,开发、测试、更新和维护软件就变得非常困难。研究使用工程方法来构建和维护有效、实用和高质量软件的学科是软件工程。这方面的概念基础课是《软件工程基础》。将数据和软件分离,以一定方式存储在一起,实现多个用户共享的统一管理的数据集合称为数据库。学习相关理论和技术的课程是《数据库原理与设计》。

到目前为止,我们只停留在一台计算机上。如何连接不同地理位置的多台计算机?计算机网络是多台计算机连接起来以共享资源和传输信息的计算机系统。就像一个城市的交通系统有很多交通规则一样,很多计算机也需要制定标准化的“交通规则”来相互通信。这是一个协议。人们将计算机网络划分为多个协议层。《计算机网络》课程的主要内容是各层协议。

计算机网络的不同协议层次结构4、数学基础

未完待续.(划掉)

数学是一种思维方式,也可以说是我们人类发明的一种工具,它可以让我们更方便地表达和研究问题。工欲善其事,必先利其器。学好数学自然对学计算机有百利而无一害。CS本科生的必修基础数学课程不多,包括:《线性代数》、《工程数学分析》、《离散数学》、《概率与组合统计》、《数值分析》。这些可以说是基础中的基础。也许你在学习的时候,会觉得不知道学这些有什么用,但是以后,你会越来越发现它们其实很有用……

下面对上述数学基础课程进行简单介绍:

线性代数:线性代数研究线性空间和线性变换(你不明白吗?是的,我也不懂)。然而,工科专业本科阶段学习的线性代数基本上是为了理解一个新的概念比如矩阵(就像理解一个新的数据结构一样)。Matrix在计算机领域非常非常有用,请认真学习!

工程数学分析:即高等数学,简单的微积分知识(只比数学系简单……)。

离散数学:包含了图论、数论、抽象代数等一些非常基础的知识,可以说是大杂烩。离散数学被称为计算机的核心数学,因为当今的数字电子计算机本身就是离散结构,只能处理离散或离散化的数量关系。

概率与数理统计:开始理解概率。数理统计是归纳的、后验的,而概率论是演绎的、先验的。使用计算机模拟现实生活中的问题时,经常会用到概率论知识。

数值分析:简单来说,就是研究如何利用计算机进行数值计算、解决数学问题的学科。如果你不太理解,你可以尝试编写自己的代码来模拟三体运动。