计算机考研专业,计算机考研专业课考什么
目录
Contents
关于学科本身
学科的知识结构
专业前景
专业的文化氛围
作者 |卢睿,清华交叉信息学院本科毕业、博士在读
关于学科本身
本篇文章中的“计算机科学”专业位于教育部《普通高等学校本科专业目录》中“工学(08)”下的“计算机类(0809)”,含如下几个细分专业。
计算机科学与技术(080901)
软件工程(080902)
网络工程(080903)
信息安全(080904K)
物联网工程(080905)
数字媒体技术(080906)
本文所主要描述的是其中的“计算机科学与技术”专业,即通常所说的“计算机专业”。软件工程专业已在此前的文章中介绍,其余几个专业与这两个专业会有些差异,但仍有相通之处。
—Σ—
计算机是一门非常年轻的学科,其历史至今还不足百年。但是作为第三次工业革命的主要技术,计算机依然是这个时代最核心的学科之一。
简单来说,最狭义的计算机学科,研究的是如何通过现代的各种电子元器件(如最早的电子管、晶体管、集成电路)的组合,使得它可以按照人类预先设定的流程工作,从而完成各种计算问题。这是抽象到最抽象的计算机学科,也是其原本最根本的出发点和整个学科的基础核心。
事实上,计算机这个学科是一个非常特殊的存在,因为它是如此的包罗万象,以至于从各个不同的侧面和不同的层级看去,计算机科学可以呈现出各类学科的特点。
例如,在最底层的实现部分,计算机学科是一门妥妥的工程学科,如何搭建电路以完成基本逻辑运算、如何提高效率、如何大规模集成,这些和设计精密的机械仪器和汽车发动机别无二致;
再怎么优秀的算法,最后都要依靠硬件实现
然而到了抽象层面,算法、数据结构这些组织数据和解决问题的方法论,却是满满的理论研究的味道,到处充满了组合数学;
在中间的各种应用层级,计算机学科又像是材料、建筑或是生物,在有限的抽象层级和有限的工具范围内进行组合,在某一特定应用领域中发现一些算不上是基础突破、但又不完全纯粹是技巧的技术和知识(例如优化计算机网络结构等)。
现如今,因为信息系统已经深度融合进入了各个学科行业,所以计算机学科也变得格外重要,其下属的具体方面也愈加丰富多元。有硬件层面的不断精益求精、试图突破摩尔定律的极限,有软件应用层面的工程代码的设计、网络系统设计,有交叉学科的人机交互、图形学,有试图破解人类智慧的人工智能,有在理论上探究更加算法与计算本质的理论计算机科学和量子计算等等。
学科的知识结构
01
本科课程体系
计算机学科的培养方案比较庞杂,不同学校也有各自的特点,不能一概而论,但大体上以下部分是几乎所有的培养方案都会包含的:
数理基础课:大一基本上都是上这些,一部分课程可能要到大二。其主要内容除去理工科基本必须的各项现代数学(微积分、线性代数、概率论)等之外,还有程序员必备的核心本领——代码能力,以及一些比较特色的、只有在计算机这个世界里显得格外重要的一些分支(如离散数学等)。部分学校会要求修大学物理
数学课程:高等数学/微积分、线性代数/高等代数、概率论、复变函数、离散数学、数值分析
代码课程:程序设计基础、面向对象程序设计、算法设计
物理课程:大学物理
核心专业课:课程分布在大二、大三两年,据我所知,无论是哪个大学,计算机核心专业课都是十分之多的,因为计算机本身包含的内容确实太丰富了。不然怎么都调侃计算机系是熬夜脱发院系呢(摊手)
代码进阶:汇编,Java,图像化编程,软件工程,数据结构
硬件课程:电路原理,模拟电路,数字电路
计算机系统:编译原理,计算机组成原理,操作系统
计算机应用:网络原理,人工智能原理,信号原理,计算机图形学,数据库
可选方向的专业选修课:这些选修课的内容为计算机应用的最前沿,覆盖计算机各类子学科,一般会要求学生选修若干学分。很多课程会有一线的科研内容,以下是一些例子
密码学,网络安全,数据挖掘,人工智能,神经网络,图像处理,软件开发,嵌入式系统,模式识别,高性能计算,多媒体,数字系统,博弈论,复杂度分析……
其中数理基础课和核心专业课程都属于必修内容,而后续的选修课程则与各类细分的专业方向相关。
02
细分方向
计算机有很多细分方向,不同方向之间也并非泾渭分明,大致归类如下
人工智能:可能是最近最火的方向了,致力于用计算机系统和算法来重现、模拟甚至超越人类的智能,从而解决各种实际问题。其具体领域包括机器学习、模式识别、计算机视觉、自然语言处理、强化学习等等。
高性能计算:致力于充分发挥计算机强大的计算能力、追求其极限,最广为人知的例子就是超级计算机了,如何设计并使得超大的计算集群得以运转并解决规模庞大的任务、尽力将每一个计算过程的效率发挥到极致、降低能耗、设计全新的计算架构(包括硬件和系统组织层面)是这个学科的核心问题。
图为国产超级计算机“天河2号”
计算机系统:在执行最基本运算的硬件和实现各种纷繁复杂应用的软件之间,计算机系统是一个至关重要的平台和桥梁,你很难想象像先人那样用命令行操作你的电脑,用0和1编程。好的系统需要快速、安全、稳定,这其中涉及到大量的底层问题,而这也正是计算机系统的研究内容。
网络技术:我们现在已经很习惯于网络了,但是互联网的到来是一件非凡的事情,其遗留的问题和未来的发展一直在继续。网络结构如何优化?远隔重洋的计算机如何安全的完成互相的身份确认和信息传输?黑客是怎么一回事、又该如何防范?这些都属于网络技术的范畴。
多媒体:多媒体技术包括图像和视频的处理,人机交互过程中可能出现的问题等等。因为其跟新闻传媒、社会科学以及人体工程有很多交集,所以是计算机学科中“人文味”相对比较浓的一个领域。
理论计算机:一切现在存在的计算机本质上都是图灵机,或者更确切的说,是基于冯诺依曼架构体系设计而成的计算机。这一理论本质带来一系列有趣的问题,例如计算能力的边界在哪里?面对一类问题,如何设计更好的算法,或者证明不存在更好的算法?对于一些本质十分困难的算法问题,如何设计好的近似或者随机算法?量子计算机真的在理论上可以完成传统计算机几乎不能完成的任务吗?为什么我们认为我们现在使用的密码系统是安全的?这些都属于理论计算机的范畴。
03
交叉学科
计算机学科与其他学科的交叉非常之多。例如与经济学交叉的算法经济学和算法博弈论,研究各种定价和拍卖的问题;与社会科学结合的数据(AI)伦理;与数学结合的计算数学和理论计算机;与生物结合的计算生物学和生物统计,用计算机的力量帮助破解基因密码,又比如alphafold可以用于破译蛋白质结构……
可以说,只要一门科学里涉及到数学、并可以将某些核心问题转化成数学问题,计算机学科就可以用计算发挥其威力。
专业前景
01
本科生毕业去向
计算机的本科毕业生去向非常之广,根据往年统计来看,继续在研究生深造的人数和选择本科毕业直接工作的人数基本相当。
02
业界工作
很多学习计算机的学生对于学术并无兴趣,相当多的去处便是去各家互联网大公司的业界工作。
去业界工作其实也有更为细致的划分,例如有些是去大厂的研发岗(例如微软亚洲研究院等),本质上是去工业界做科研,没有教师的编制但也省了很多教师的烦恼(比如上课、基金、项目等);
而另外很多则是去互联网公司具体负责业务,例如网络部负责网络维护,开发部负责将客户甲方的需求用代码落到实处,前端负责直接和用户交互的界面部分、后端负责数据库和操作系统相关的底层代码等。
不同具体的岗位职责不尽相同,但大概压力都比较大,在之前互联网公司普遍内卷的环境下加班比较多(俗称996),好在收入比较高。水平过得去的普通本科毕业生刚入职年薪最少有大约二十万,资历老一些、职位更高的则年薪五十万起步。
03
中国高校的计算机学科
中国的计算机学科还是比较强的。第一梯队为清华大学,第二梯队则包括北京大学、上海交通大学、浙江大学、南京大学,往下还有电子科技大学、中国科学技术大学、北京航空航天大学、哈尔滨工业大学、同济大学、北京邮电大学等。
其中第一第二梯队的研究生含金量比较高,加上计算机学科依然处于上升阶段,很多人都在毕业后走入学术界或进入互联网公司。
04
国外的计算机学科
计算机学科最顶尖处还是在北美,更精确的说是美国。计算机俗称的“四大”包括MIT, Stanford, CMU和Berkeley,是全世界计算机最好的四所高校。
往下,Cornell, UIUC, UCLA, USCD, UMich, NYU, UW都是不错的去处。基本上有志于计算机学术、而且要追求很高上限的最优秀的计算机学生大多选择出国,毕业后可以选择留在美国高校(如果可以的话)或是在美国的公司工作,也可以选择回到国内学术圈。除美国以外,加拿大、新加坡和瑞士也有一些计算机比较好的大学值得申请。
专业的文化氛围
计算机学科难度高、压力大,能选择进来的学生大多也很聪明很拼命,基本上在各个院校,计算机系都是工科院系内卷的巅峰。进入计算机系(或相关学科)需要有比较好的数理基础和代码思维,更要有强大的抗压能力和心态,能够应对竞争激烈、强手如云、生活学习压力较大的日常状态。
不过因为大多是男生,环境也比较纯粹,大家在一起也很开心,很多院系都会需要计算机系的同学作为核心生产力和帮手,对外的身份还是很吃香的。
计算机考研专业(计算机考研专业课考什么)