为什么要去理论计算机科学/研究?


35

我目前正在大学[计算机科学]上学习,在那里我们有很多机会可以开始研究。在找到该网站之前,我无意继续这种方式(我想与AI合作,可能是游戏开发者。),但现在我可以(或需要)做出选择。

您能说服我加入这个“世界”吗?我可以遵循哪些“细分”?关于计算机科学家或研究人员从事何种主题的事情,有什么问题吗?


18
我们很荣幸该网站已经激发您思考理论!如果您想知道理论计算机科学家的工作,那么您来对地方了……只要继续阅读,您就会发现!
瑞安·威廉姆斯

6
这应该是社区Wiki。
戴夫·克拉克

今天才加入,并提出了相同的问题...我在电子工程专业从事工程学,但是在大学期间开始对CS感兴趣。...从未对Theory进行过正式介绍,但是现在我很高兴能找到这个网站... @JúlioSouza感谢您提出这个问题。我将从今天开始进行监视:)
艾伦·图灵

@supercooldave将其更改为社区Wiki。
JulioC

结语:JulioC成为软件开发人员。
domotorp

Answers:


32

在即将到来的冬季,我可以将我作为本科生申请TCS研究生课程的原因联系起来(剩下的时间很少!)。

  • 有美丽。这是我无法解释的(并见证了其他数学家未能解释的东西)。就像“黄色”。如果您还没有看到它,我不确定是否可以向您传达它的含义。但是,既然您对理论感兴趣,我想也许您确实经历过。
  • 有普遍性。超越教会论题的普遍性。TCS的核心是研究信息的高层次和低层次现象-这是信息的“物理”。而且由于信息在本质上原子的,因此信息论确实对物理学有话要说(我的质量管理教授特别告诉我他爱信息论)。综上所述,它介于纯数学和工程学之间。它有能力和灵活性直接为两者做出贡献,并由两者直接做出贡献。尽管如此,它还是在自己的边界上战斗。
  • 有范围。先前的项目符号中已暗示了这一点。信息学将其应用到许多不同的应用程序中-从DHD到新兴公司的每个人都对它感兴趣。您不会发现自己像Pure Mathematics 那样渴望资金。(您仍然总是会发现自己渴望获得资金。)
  • 有挑战。看一看理论计算机科学中的未解决问题列表(并在探究末尾寻求对它们的理解)。他们是很辛苦-这里有一些 原因 为何。我们真的不了解TCS-我们的大多数证据都归结为越来越多的证据。还有很多工作要做!

19

确实,您是否决定进入理论计算机科学领域的研究是一个选择问题。但是,即使仔细阅读本站点上的问题(如您可能已经做过的那样),也有望给您带来广度,让您领会这一领域的美丽。我什至不知道从哪里开始将您引向您可以阅读的资料,以欣赏理论家所做的工作,但是我认为这个站点上有一个问题可能会让您感兴趣。

问题是:

保罗·埃尔多斯(Paul Erdos)谈论了“书”,其中上帝保留了每个数学定理的最优雅的证明。这甚至启发了一本书(我相信现在是第四版):书中的证明。

如果上帝有一本类似的算法书,那么您认为哪种算法是候选人?

目前,该问题有64个答案,涵盖小问题,大问题,难题和深度数学的算法。我坚信,如果您所做的一切只是遍历此列表,并详细了解引起您注意的任何算法,您将学到很多理论计算机科学家的工作方式以及我们为什么这样做的知识。

祝好运 !


16

我们许多人从事研究的原因是,因为我们发现突破了已知的既有智力回报又令人愉悦的事物的界限。做研究还给了我们几乎无与伦比的自由,可以自由地解决我们发现的有意义和有趣的问题,并且使我们不断受到挑战(我们喜欢)。

TCS(与其他领域相对)是计算机科学的数学研究。您可以研究从分布式系统到机器学习的许多不同领域的理论方面。在TCS和计算机科学其他领域之间的选择取决于您的口味和能力所在。如果您的自然兴趣和能力更多地在于编程或系统设计,而不是数学分析,那么也许您不应该进入TCS。另一方面,如果您的技能和兴趣更多地在于数学方面,则应考虑使用TCS。

另外,您不必总是选择一个区域而不是所有其他区域。许多人从理论和实践两个方面来研究问题。例如,这在机器学习中很常见,在机器学习中,我们首先设计和分析算法(通常是理论),然后在现实世界中对它们进行测试(实验设计,应用程序等)。

弄清楚您想做什么的一个好方法是在许多不同的领域上课,并可能在夏天尝试行业和研究。在学习结束时,您可能会对自己想做的事情有个好主意。


我真的很喜欢数学,但是我喜欢编程。也许我可以找到某种方式同时处理两个“方面”,例如机器学习(在AI领域,对吗?)。明年,我将申请大学的一些课程,例如AI和Algorithm Analysis,这些课程可以为我提供帮助。
JulioC 2010年

机器学习(至少在我看来)不是AI的一个子领域,即使有一些重叠。粗略地说,人工智能专注于解决人类通常会解决的问题。机器学习专注于开发在看到数据时会改变行为的算法和系统。因此,这两个字段之间显然存在重叠,但是它们相去甚远。机器学习显然给人们提供了进行理论和编程的机会,但是我确信它不是CS唯一适用的子领域。
列夫·雷津

11

编程语言理论对年轻人和年轻人都很有趣。它将逻辑应用于现实世界。快来参加游行!!

更严重的是,对我来说,编程语言理论之所以有趣是因为以下原因:

  • 感知到的对现实世界的影响:Haskell和其他功能语言中的大量类型系统工作源自纯粹的逻辑思想(系统F),极大地影响了Java(其可怕的泛型,闭包)和Scala(现代的理论会议在操场上举行的那一天)。

  • 美丽:编程语言理论中使用的许多工具都是基于逻辑的。它的大部分源于Curry-Howard对应关系,它表明了逻辑证明规则与编程语言的输入规则之间的紧密联系,以及逻辑中的切分消除与编程语言中的评估之间的紧密联系。逻辑在编程语言研究中的两个最近的美丽例子是在验证中的分离逻辑上的大量工作,以及证明思想的应用在理解编程语言概念(如评估顺序和模式匹配)方面的应用

  • 好玩:您可以同时进行编程和理论,尤其是当您使用Coq等证明助手来形式化和验证您的理论时。

  • 还有很多。


11

我之所以认为计算理论(理论计算机科学的“我的”分支)令人着迷并且值得研究的主要原因之一,是因为以下原因:它为我们提供了一种研究一些深层(有时令人费解)哲学问题的方法。

计算理论的奠基人之一,艾伦·图灵(Alan Turing)试图通过对过程进行数学描述,来确定配备一张纸的人的“计算函数”的含义。我并不是唯一一个认为他非常成功的人,图灵机被证明是许多其他计算过程的精确模型。

现在我们拥有一类描述计算的数学对象,我们实际上可以证明有关它们的定理,从而试图揭示可计算的内容以及如何计算的定理。立刻发现,根本无法计算出很多完全合法的函数,并且可以根据不可计算的程度对它们进行分类(某些函数比其他函数“更不可计算”)。

其他一些人(通常由Juris Hartmanis和Richard E. Stearns共同识别的第一个人)试图用数学方法描述难以易于计算(例如解决)的函数(分别是问题)的含义。有几种复杂性度量可以用来描述问题的严重性;最常见的是我们需要多少时间来解决它们。Alan Cobham和Jack Edmonds在确定“高效计算”的合理概念方面非常成功。

现在,在计算复杂度框架内,我们可以证明一些与我们的直观计算概念一致的结果。我最喜欢的示例是时间层次定理:如果给我们更多的时间进行计算,我们可以解决更困难的问题。

复杂性理论的中心开放问题P vs NP只是另一个哲学上重要问题的形式化:解决一个问题真的比检查一个所谓的解决方案是否正确难得多吗?我认为,无论其实际意义如何,这个问题都值得提出和回答。


+1:喜欢:) ps:有人在Scott的博客上表达了类似的观点。
卡夫

6

我们无法“说服”您,因为计算机科学在数学上并不比AI或任何其他领域都要好。因此,我们无法证明其优势!海事组织,更多的是品味问题。


1
我同意您的意见,但他可能想知道为什么“您”(或此处的其他所有人)选择了此字段。
MS Dousti

@JúlioSouza:在标题中,应该是“理论”而不是“理论”。
MS Dousti

我不想知道它是否更好,但是我想知道您为什么选择这个领域,如Sadeq所说。
JulioC 2010年

6

很难肯定地回答这个问题,但是这里有几点需要牢记。

如果您从事计算机科学家的职业,那么您的工作可能不仅会涉及以有用和高效地使用数据的方式来处理和构建数据,而且还会考虑您的工作方式和原因以及工作方式。它的作用范围(如果没有其他原因,除非足以理解它以实现它)。AI / NLP / IR尤其是这种情况,即使您不在学术界,这也需要大量研究。实际上,进入AI几乎可以确保您将大量地处理“理论上的”问题,实际上,如果没有这一背景,可能很难找到工作。因此,这可能是您考虑的一个令人信服的原因。

不仅如此,但它很可能是很难花大部分生活在任何CS野战,你必须保持这样的细腻和反复无常(更不要说难)过程,亲密接触,同时保持甚至对事物运作的基础都感兴趣。换句话说,我想您可以在余生中将库粘合在一起,但是,如果这听起来不像您的事情,那么您至少必须对所处理问题的基础知识有所了解。

积极参与TCS研究是一个可能只有您可以回答的问题,一个好的出发点(IMO)是从您感兴趣的问题出发并从那里出发。您甚至可能没有足够的信息来回答该问题,因此更好的进行方法可能是仅查看您的兴趣将您带到何处。


感谢您的回答。我完全同意您的POV,只是做某事而已,却不知道它为什么起作用,如何起作用以及是否可以做得更好,这不是我想要的。我想我可以尝试通过AI来保持我的计划(或其他类似“实用研究”的东西),但是我将继续尝试学习有关TCS的其他主题。
JulioC 2010年

6

最让我着迷的是将计算机科学理论应用于其他学科,尤其是生物学和细胞生物学的能力。如果这个想法也引起您的兴趣,我建议您看一下以下内容:Jeannette Wing撰写的有关计算思维重要性的文章;美国国家科学基金会(NSF)关于将算法镜头应用于其他科学学科的报告。

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.