查看原文
其他

计算机核心算法、AI芯片设计、分布式系统...掌握这些领域的技能,还担心进不去大厂吗?

CIS科研君 CIS科研项目 2023-11-28

计算机科学(Computer Science)和计算机工程(Computer Engineering)共同组成了计算机学科的专业领域。在前两期的文章中,科研君已经为同学们介绍了很多计算机相关的专业领域,今天科研君为大家继续带来一些专业细分的介绍以及一些交叉学科的介绍。


相关阅读:

>> 学习计算机≠当码农,6大CS细分专业带你了解更全面的计算机科学领域

>> 秒懂AI专业选择!牛津、耶鲁、哥大教授一次性教你人工智能到底学什么



1.

计算机算法和理论


定义:

Algorithms and Theory,算法指定义良好的计算过程,它取一个或一组值作为输入,经过一系列定义好的计算过程,得到一个或一组输出。算法是计算机科学研究的一个重要领域,也是许多其他计算机科学技术的基础。



算法主要包括数据结构计算几何图论等。除此之外,算法还包括许多杂项,如模式匹配、部分数论等。


(Bubble Sort)


(Counting Sort)


计算理论的研究就是专注于回答关于什么能够被计算,去实施这些计算又需要用到多少资源(研究解决一个不同目的的计算问题的时间与空间消耗)。计算机算法与理论属于基础理论学习的学科,需要扎实的数学基础。

生活中的应用:

滴滴打车、美团配送、教室排课……



ie.:当你在下班后用滴滴打车时,思考过平台是如何派单的吗?


显然是就近分配嘛,平台都会直接派单给离得最近的司机


但是,网约车平台的算法往往需要解决更复杂的情况:


ie.:如果有10个乘客,10个司机,怎样派单才能让大家总体的等待时长最短?


如果有M个乘客,N个司机,一分钟后又出现几位新的乘客和司机,是否需要重新分配?

......


当用户达到了一定量级,如何站在全局的角度寻找最优解使用算法满足成千上万乃至更多用户,通过分析和建模达到最佳平衡?这种情况下,最近的车接最近的人已经不符合资源最佳分配方式了,不然最外端的人很有可能一直打不到车,在天寒地冻中瑟瑟发抖,发N个微博吐槽下平台的坑爹算法……


点击查看课题详情




2.

计算机图形学


定义:

Computer Graphics,是研究计算机在硬件和软件的帮助下创建计算机图形的科学学科,是计算机科学的一个分支领域,主要关注数字合成与操作视觉的图形内容。



简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。



如科学可视化,基于物理渲染动画制作,计算机辅助几何设计快速成型,计算机辅助角膜建模和可视化,医学成像。相较于艺术类的动画制作而言, 计算机图形学更注重算法及理论的学习。

生活中的应用:

医疗仪器渲染图、渲染技术研发、相关软件制作(工业软件、影像软件及还有面向未来的机器人和三维打印设计软件)、游戏制作、影视制作......


(医疗仪器人体器官渲染图形技术)


点击查看课题详情




3.

安全与加密


定义:

Security and Cryptography,是计算机技术的一个分支,其目标包括保护信息免受未经授权的访问、中断和修改,同时为系统的预期用户保持系统的可访问性和可用性。



密码学是对于隐藏(加密)和破译(解密)信息的实践与研究。现代密码学主要跟计算机科学相关,很多加密和解密算法都是基于它们的计算复杂性。注重密码学从理论到应用的学习和时间,并且强调研究数据库的隐私,监控系统的隐私,基于Web的应用程序的隐私及传感器网络安全,测试平台的安全,人机界面的安全,互联网安全( 在网络专业Networking的学习中也会涉及,但是如果在安全与加密中学习的话,更偏向于密码学的学习,对数学逻辑思维的要求较高 )等等。

生活中的应用:
  • 上网:不管某宝、某乎、某信等等 他们发包到服务器的过程为了防止消息/密码被窃取,都会使用加密。


  • 文件:对文件数据进行加密,这样即使别人在用你电脑,也无法查看这个文件是什么内容。


  • 登录邮箱:你怎么知道你现在登录的邮箱网站是正规的,不是坏人伪造的一个长的一样的网站。(证书,PKI)


  • 电影版权保护,软件激活码。(可撤销广播加密)


  • 微信:我和你不认识,想知道我们有没有共同认识的人呢?通过各自的微信联系列表,但是不泄露双方的联系人列表。(乱码电路)


  • 社交软件:我们用社交工具,聊天的内容是否被监听了呢?(端到端加密)


  • 网络协议,简单说,网络协议如何保护你的IP地址。如何确认你就是你。(身份认证、网络协议)


现在的新基建,人工智能、5G、自动驾驶、工业互联网、大数据都涉及安全与加密。


举个例子,自动驾驶,技术上已经可行了,但是呢,到处都是安全问题。比如,你在高速路上,黑客控制了你的刹车。如何处理刹车和汽车控制中心的信任问题。都需要密码学来解决。



4.

互联网与系统


定义:

Computer Network and Systems,通常也简称网络,是指容许节点分享资源的数字电信网络。在电脑网络,电脑设备会透过节点之间的连接(数据链路)互相交换数据。传输介质可分为有线及无线两类——有线的可用到双绞线、光纤电缆等介质;无线则可用到Wi-Fi、NFC。



其学习往往与操作系统直接相关联,具体研究内容包括分布式系统,操作系统,存储系统,网络和网络架构,移动和无线系统和网络协议设计。


网络架构的学习包括叠加架构,分布式哈希,下一代网络的设计,对等联网,移动和点对点网络,故障排除,能耗影响问题的研究等等。


也有学校将互联网与通信(Communications)结合进行学习,其专业性质是属于EE与CS的交叉课程,很多学校归类于EE,而伯克利大学将其归类于EECS系下。

生活中的应用:

比如访问互联网、数字视频、数字音频;共享打印机;收发电子邮件及即时通信消息;拨接网络电话等。


点击查看课题详情




5.

计算机系统结构


定义:

Computer Architecture,计算机系统结构,或者数字计算机组织,是一个计算机系统的概念设计和根本运作结构。



它主要侧重于CPU的内部执行和内存访问地址,它确定一台计算机硬件和软件之间的链接。这个领域经常涉及计算机工程和电子工程学科,以创造满足功能、性能和成本目标的计算机。


其主要研究计算机系统的基本工作原理,以及在硬件、软件界面划分的权衡策略,建立完整的、系统的计算机软硬件整体概念。


有大学将Complier(编译器)和Architecture(系统结构)一起研究, 研究内容集中在为下一代计算机和计算组件进行硬件,编程语言和编译器的设计,很多大学将编程语言及编译器单独开设课程进行学习。

生活中的应用:

设计芯片如CPU等;


随着软件算法级的不断优化,软件资源已经被最大限度的开掘,而仍然达不到速度要求时,就需要为软件定制适合它生存的硬件环境。如字节跳动接盘锤子手机,就是希望通过硬件为APP加速。


软硬件融合是未来大的趋势。阿里、华为等中国巨头公司也会招专门研究计算机体系结构的人。科书上最出名的冯诺依曼结构,过去的几十年几乎主导主流的个人计算机市场,甚至作为计算机的代名词。


最近10年,由于智能移动终端的迅猛发展,哈弗结构牛X起来了,比如ARM(iphone 三星 华为等手机和平板的CPU都是哈弗结构,听说也有个别ARM用的是冯式结构)。很多差异都是因为,发明之初对计算机计算和存储资源博弈的不同思路,这里面有很多非常棒的“理念”,比如时间局部性和空间局部性,流水和超流水,复用等等。



冯·诺依曼结构是一种将程序指令存储器和数据存储器合并在一起的存储器结构。取指令和取操作数都在同一总线上,通过分时复用的方式进行;缺点是在高速运行时,不能达到同时取指令和取操作数,从而形成了传输过程的瓶颈。由于程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。



哈佛结构是一种将程序指令存储和数据存储分开的存储器结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问,目的是为了减轻程序运行时的访存瓶颈。


点击查看课题详情




6.

数据库系统


定义:

Database Systems,数是为了更容易地组织、存储和检索大量数据。数据库由数据库管理系统管理,通过数据模型和查询语言来存储、创建、维护和搜索数据。


简而言之,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的资料运行新增、截取、更新、删除等操作。


与Data Science相比,它更倾向于单纯的数据处理管理(Database Management Systems or Information Systems),随着时代发展,这个专业方向正在逐渐被发展独立开来成为IS。

生活中的应用:


所有依赖数据的应用都需要数据库。



7.

分布式系统


定义:

Distributed System,往往与操作系统(Operating Systems)同时学习,也有学校直接用系统(Systems)来概括这个专业。学习的偏重性根据学校不同有所偏差。



操作系统的研究重点是针对一台机器或物理设备运行的系统软件,而分布式系统则是研究如何实现网络互连的多台计算机运行一致的,安全的,可扩展的,可靠的系统。 学习重点包括调查算法,设计原则,并制定运行现代计算机系统所必需的软件工程技术。

生活中的应用:

分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统”。



以谷歌、亚马逊等服务商而言,他们的数据中心都由上万台主机支撑起来的。虽然很厉害,但对于外人来说,是感觉不到这些主机的存在。


也就是说,我们只看到是一个系统在运作。其次解决了高可用问题,一台电脑是不能保证100%的可用性的,它总归有可能会坏内存和磁盘中的数据会受到太阳黑子的影响出错,网络需要停机维护升级,机房也可能会停电,所在地区可能会地震等等。


所以我们可以通过分布在全世界的数据中心(也就是机房)组成一个大的分布式系统,通过合理的设计,达到接近100%的可用性,也就是任何时段,都有服务器是好的可以处理你的请求。


这个也很好理解,你去网吧上网,如果家门口就一个网吧,他可能会因为各种问题拒绝给你提供服务,但是全市的网吧你总归能挑出一个好的来让你上网,你说对吧?


点击查看课题详情




关注CIS视频号

教授访谈、学术讲座、项目问答、留学干货CIS科研项目列表
戳下方👇阅读原文”获取最适合你的名校科研
听说
点赞
的都收获梦校offer了呢
继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存