计算机科学数学
答
很好很重要的问题!对每一位计算机科学家来说,对数学的理解是必不可少的,数学要求也开始变得更加多样化。
- Discrete Math是计算机科学中最重要,最基本的类,基于这个原因,它是在CS部门,而不是数学部门通常提供。这门课将巩固你的算法介绍课程,并教你如何数学证明事物,并给你分析数据结构和算法的基础知识。
- Calculus虽然没有直接用于入门级计算机科学课程,但通常是您的大学提供的一系列课程来提高您的数学技能。当你开始进入诸如数值编程和机器学习之类的东西时,它将证明非常有用。这也是先进的概率/统计课程的要求。
- Probability通常在离散数学课上有所涉及,但您可能想要在连续概率分布和statistical inference上课,可能在数学和统计学系。这将使您更好地理解如何进行数值计算和模拟,并且对于计算机科学最重要的应用之一machine learning来说是基本必要的。
- Linear Algebra是一类主要用于机器学习和(高级)算法类的类,但它在计算机视觉,计算机图形学,机器学习和其他量子学科中的重要性至关重要。
也就是说,如果机器学习类的介绍可用,他们可能会覆盖足够的线性代数和其他基本概率类可以得到的东西。然而,对于计算机科学的研究生学习,对上述数学领域的所有领域的了解是非常重要的。
除了本科数学课程之外,更高水平的数学课程对于计算机科学的某些理论领域(例如算法博弈论,与经济学相交),特别是超越机器学习从业者到开发新算法是有用的。这些课程包括:
Real analysis,包括measure theory在那里你会发现,如果你长期研究概率和微积分不够,他们再次收敛。分析通常是了解何时开始使用涉及数字的算法的一个有用的事情。
Optimization,包括linear optimization,convex optimization,gradient descent等等。在许多情况下,“学习”机器学习模型基本上归结为优化目标函数,而此函数的属性(例如凸函数是否为凸)对优化的容易程度有很大影响。
Numerical methods:有些人不认为这是一个数学课本身,但在翻译的算法和理论应用到浮点运算的完美表现,也有需要解决许多实际问题。例如,log-sum-exp trick。
对于那些在“数据科学”及相关领域,高级统计尤其是causal inference非常重要。有很多事情要知道,主要是因为访问大量的数据试图为外行人提供this problem。
答
既然你指定 “计算机科学家”,我们将采取硬路线:
- 算法分析依赖于微积分,微分方程和离散数学。 (许多人认为算法分析是计算机科学和软件工程计划之间的主要区别)。
- 计算机图形/科学可视需要背景的工程分析排序:数值方法,线性代数等
- 计算几何
- 函数逼近
- 集理论,逻辑/一阶积分
- 概率/统计
- 名单继续:)
我应该参加这些课程才能列出它们吗? – LoLzMan 2013-02-14 06:44:53
在典型的四年制大学里,你将从第一年的微积分课程开始,然后在你满足CS课程的一些基本要求时立即采取离散数学。然后,如果您进入计算机科学的更多量化分区,则可以采用更高级的概率/统计课程和线性代数。 – 2013-02-14 07:39:29
在我的单元中,你从第一学期的线性代数,离散数学和微积分开始。 @AndrewMao我会对你问题的最后部分感兴趣。 – phant0m 2013-02-14 11:29:26