我应该参加哪些数学课程来准备CS硕士或博士学位?


10

我是一个自学成才的专业程序员。我非常擅长(Ruby,Unix,Clojure,Java,Objective-C),但现在我正在考虑通过申请CS的硕士或博士学位课程将其提升到一个新的水平。为了达到这个目标,我应该学习哪些数学主题?




1
如果您遇到冷酷,几乎没有学者,那么我的建议是选择一个程序,为非CS人士提供入门。对于拥有EE,物理,数学或其他类似BS学士学位的人来说,想要改变职业并不罕见。一些大学设有旨在帮助在其课程结构中促进这一计划的计划。
诺瓦克2012年

Answers:


10

麻省理工学院开放式课程中心有一门名为“计算机科学数学”的课程,其中列出了您必须涵盖的一些主题

学习一些抽象代数将是一大优势。因为我在文学中看到太多关于群体理论的参考。


3
ang 我的答案中忘了抽象代数-好的电话。
Suresh Venkat

1
上面链接的2005年秋季版本缺少大约1/3的讲义。在2005年春季2010年春季版本有更完整的说明。
Daniel Apon 2012年

13

一般而言,高度的数学成熟度使计算机科学的许多形式方面(不一定是理论上的)更加容易理解。因此,与您的计算机科学专业一起学习数学辅修比弊大于利。



7

您可能需要一些,更多,更少的东西:

  • 数学逻辑
  • 概率论/组合学/统计学
  • 线性代数
  • 结石
  • 图论
  • 集合论
  • 数论
  • 也许一些优化理论

当然,(几乎)任何事情都是有用的,特别是如果您要进入理论计算机科学领域。


4

所有其他答案+ ...

可以说,对您来说最有用的事情就是从事研究。在进行stackexchange之后,阅读一些背景材料/论文并弄清楚您可能会发现有趣的东西可能是准备毕业的最有效方法。


2

到目前为止,表现出色/广泛。我建议到目前为止没有提到的一些课程。特别是倾向于理论应用的esp课程,要求学生编写/调试代码并可视化[图形结果]作为作业的一部分。或构建/调试工作系统。等等

  • 微分方程。特别是它与离散微分方程之间的关系,例如生成函数。
  • 数值方法。优化。Runge Kutta diffeq求解器等。一种简洁/有教育意义的练习是求解/绘制洛伦兹天气方程。关于软件算术中的精度/准确性的概念
  • 有一个MIT类“动力学系统的建模和仿真”。并非所有大学都提供类似的服务,但也许有些人会拥有。
  • 一些大学将具有复杂系统或复杂自适应系统的原理/动力学等
  • 与使用数学软件的系统建模或仿真有关的任何事情
  • 分形系统与数学
  • 机器学习(尤其是梯度下降技术)
  • 量子计算(其中的某些类是高度或大部分是数学的)

1

好问题。我最近才通过了博士资格考试,该考试部分是入学考试-本科和研究生课程的混合。

实用-这取决于您打算上的学校,他们可能需要的入学考试类型以及他们提供的课程类型。

有些要求GRE,因此准备注册不是CS特定的。一些要求GRE的科目,相当于5-6个核心CS本科课程,并且将涵盖理论(自动机理论,离散数学等)

为了获得最基本的背景知识,我将学习Ad Uni的离散数学,算法和计算理论。

麻省理工学院和斯坦福大学还有其他很棒的资料来源,但是由伟大的西蒙·西蒙森(Shai Simonson)提出的这三门课程是很好的基础。

希望这可以帮助。


这些课程之一在YouTube上得到了反映: 计算理论。不幸的是,算法离散数学的镜像不完整。
杰夫·2012年

1

我真的支持上面的答案。我可以添加以下内容,这可能对CS中的数学全景图很有用:

数学本身可以成为目标的一部分。算法分析,复杂性界限,确定性或概率证明,并行算法以及许多与计算时间和空间有关的研究领域。

另一方面,数学可以成为实现更高目标的实际路径。PDE,计算机图形学的光方程,计算物理的整个研究领域(动力学系统,统计力学,星系形成)等。

在适当的情况下,两种形式的数学都可以并存。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.