当前位置:首页 > 计算机 > 正文

计算机学什么?计算机有几个代表课程

计算机 · Jun 01, 2022

计算机学什么?

计算机有几个代表课程,分别是:高级程序设计语言、数据结构、算法导论、计算机网络、操作系统、计算机系统(计算机组成原理)、编译原理等等。

高级程序设计语言:它是一门语言,它是用来人类向计算机传递指令用的。就好像我们的英语一样,是来传达我们人类的意思的,也有像主谓宾这种规则。比如C++,java,python就属于高级程序设计语言。高级语言搭建了人类跟机器的桥梁。

数据结构:数据结构讲的是数据跟数据之间的关系。数据结构的意义在于我们更好地表示数据,操纵数据。比如在学生信息表中,张三跟王五是两个数据,他们的关系是同等的线性关系,所以我的学生信息表是一个列表。而装子弹的弹夹也是子弹和子弹之间是线性关系,但是有个区别就是先装进去的子弹最后才能取出来。又比如我们的家谱:

计算机学什么?计算机有几个代表课程

则是一种树形的数据结构,因为论辈分和血缘关系,家族成员是从属关系(我是你父亲,你是我儿子)。

又比如一个交通地图:

计算机学什么?计算机有几个代表课程

他是一个图的数据结构,这里的数据是一个个地点。地点和地点之间可能有直接通道或者没有通道。图是最复杂的数据结构。

算法导论:有了数据的表示,数据的结构,我们计算机专业还要去思考怎么去更好地处理数据,用什么样的方法去处理数据,这些方法就是算法。算法可以理解为解决问题的步骤。举个例子,给你十个数字:

123,524,521,789,342,254,765,242,653,913

让你从小到大排序,你会怎么排序(你是怎么做到从小到大排序的)?

可能的方法是每次从中挑选一个最小的数字出来,先挑最小的123,再挑最小的242,。。。,直到最后得到一个排序。

但是如果你对10000个数据进行从小到大排序,这种方法可能就很慢,我们计算机专业就要研究更快的方法。比如下面这种:

先按百位数排序,将同一个百位数的数字(比如242和254的百位数都是2)归为一组,在这一组内再按十位数排序,再按个位数排序:按百位数排序,得到242和254一组,再按十位数排序得到242,252,然后再把每个百位数的排序结果串起来,就得到最终的结果了。可以证明,这种方法是更加快速的方法。

又比如,你在做一个数学计算题,你算123*456+789*987,你会怎么算?你会先算123*456,再算789*987,然后再加起来得出计算结果。在这个过程中,你就使用了一种算法,叫做分治法,就是你会把一个问题变成几个子问题再求解。

又比如,你卖东西找零钱给人,找8块5,你会先给5块,再给3张1块,再给5毛,这是一种贪心算法。

上面都是属于我们计算机专业要学习的东西,因为这些方法更高效,我们计算机追求的就是高效率。可以这么说,计算机的科学家,都有多多少少的完美主义,他们都想至善至美的找到最高效的方法去解决问题。

计算机网络:计算机网络学的是计算机和计算机之间的通讯。换句话说,就是两个计算节点如何传递信息。这里,我们也是去探索如何更快、无差错、安全地传播我们的数据。

为了传播数据,就要指定统一的标准,不然就不知道你传的是什么东西。计算机网络就像我们的快递分发。比如天猫的快递小哥,从北京要送快递到广州。他将会收到一个快递,快递由包裹包着,包裹上面写着收件人,收件人地址等信息。然后快递小哥就出发了,从广州到了上海中转站,然后在这个中转站有一个路线图,你说你要送到广州,那么下一站是去杭州,再下一站就到广州,最后把包裹送到你手里。这个过程,如何去建立中转站,中转站要有什么功能,包裹如何包装,包裹要有什么信息,都是我们计算机网络要去学习的东西。

操作系统:windows就是一个操作系统,操作系统就是一个指挥中心,它的任务是资源的调度和分配,工作的安排等等。资源的调度可以这样考虑,我们可以考虑银行贷款,你开了一家银行,你有100万,现在有5个人向你贷款,每个人的贷款数额不一样,你要怎么贷款给他们?当他们的贷款总额小于100万的时候直接全部统一贷款,当贷款总额大于100万之后呢?又来了3个人要贷款呢?在考虑还有4个人计划在下个月还款的情况呢?工作的安排就好像你要做一件大事,比如建一个房子,你会先买砖头、钢筋水泥,买好后,你要叫师傅去建框架,建好后你要装修,等等,你都要安排人员去办,这时候,你就是一个操作系统。除此之外,操作系统还要管理你的个人文件,比如你下载了一个文件,放到哪里,你卸载的一个软件,具体要做什么东西,你清空了回收站,又会发生什么,这些都是操作系统负责。

计算机系统:这门课讲计算机的构成,每个部件之间如何协调工作。计算机有CPU、内存、磁盘、显示器、打印机、键盘、鼠标等,那么他们如何工作呢?这门课就讲这些。

这门课比较关键的有流水线(跟工厂流水线一样)、缓存(先把东西放到仓库,再批量地拿)、中断(多个软件在执行,为什么不会卡顿?)等技术

编译原理:这门课据说是程序员三大浪漫,我就不解释了。