TCS入门书籍列表,供那些对TCS不太了解的人使用[关闭]


10

如果您必须向希望在入门级学习更多有关TCS的人推荐书籍,例如自动机理论,算法学,复杂性理论等,那么您会为那些有兴趣并想了解更多信息的人推荐什么书? TCS,但没有接触过它吗?


2
我认为这应该是CW问题。
Gigili 2012年

1
请参阅有关如何管理此问题的元讨论
拉斐尔

3
cstheory.SE拥有先进的列表
ULI


2
@Gigili否。以前是CW的书籍清单,但现在不再这样做了。请阅读我链接的博客文章。
吉勒斯(Gilles)'所以

Answers:


9

如果您想在不深入了解技术细节的情况下进行一般性介绍,我建议使用David Harel的Algorithmics:计算的精神。之后,这是我最喜欢的列表:

  • 迈克尔·西普瑟(Michael Sipser)的《计算理论导论》:关于自动机理论,可计算性和复杂性的最佳介绍。
  • 算法最直观的介绍与算法更加注重直觉不是技术证明:由S.达斯古普塔,CH PAPADIMITRIOU和UV瓦齐拉尼。
  • 乔恩·本特利(Jon Bentley)的《Programming Pearls》:这不是一本关于算法的教科书,但它很好地展示了如何使用算法设计技术来解决困扰真正程序员的实际问题。:-)如果您对编程有所了解,这可能是一个不错的开始。

DPV尚未打印;这是众所周知的吗?
拉斐尔

由于该答案的得分,我将这些答案包含在汇总答案中。为了清楚起见,请考虑删除您的答案。
拉斐尔

@Raphael DPV已经出版了好几年,但是仍然可以在网上很好地获得。我试图不链接到亚马逊这样的商业网站。
2012年

@戴:我知道了。您链接到的页面上说:“这是我们即将出版的教科书的倒数第二稿。”因此,我感到困惑。
拉斐尔

7

对于没有TCS背景的人,我觉得Clarke的书太重了。我认识(亲自)博士生,他们很难理解这本书。
2012年

@Dai,您可能是对的,我已将其更改为Baier的模型检查原则
Daniil 2012年

在没有逻辑和/或自动机基础的情况下,能否理解模型检查?
拉斐尔

1
《龙书》当然是一个很好的参考。不过理论上足够吗?(老实说我不知道​​)
拉斐尔

@Raphael“ Principles”在某种程度上介绍了逻辑(至少需要一些必要的知识)和自动机。这也是一本相当大的书,约980页。至于《龙书》,我认为编译器是一个相当理论的领域,不是吗?
丹尼尔,2012年

6

对于算法分析所需的数学,我建议使用唯一的GKP:

格雷厄姆(Graham),克努斯(Knuth),帕塔什尼克(Patashnik)的具体数学
全面,高质量地处理了(基本)算法学中几乎所有需要的数学。这是一本有趣的读物,包括许多练习(和解决方案)。


我尝试阅读这本书,但我不喜欢它,因为它感觉非常……笨拙且聚集。我只是不觉得那里的数学之美。将其与Sipsers的自动机理论大纲或Smullyan的逻辑书籍甚至Dummit&Foote的Abstract Algebra进行比较。也许那只是我。
丹尼尔(Daniil)2012年

我第二个丹尼尔。这是理论家的优秀工具的集合。但是它太干且太技术化,初学者无法享受。我真的很喜欢上面提到的书,因为它们似乎有自己的灵魂。他们读起来好像有人在讲故事,有趣的故事。
2012年

不幸的是,它没有涵盖结构归纳,共归,域理论以及理论B型TCS所需的所有内容。
戴夫·克拉克2012年

@DaveClarke:正确。我不确定我是否希望任何数学书籍都能包含其中的任何内容。但是后来,GKP应该是一本CS书籍。它也不包含任何逻辑,因此我应该改写一下。
拉斐尔

2
@DaveClarke您能为我们推荐一些有关B论数学的书吗?
丹尼尔(Daniil)2012年

5

算法 4.版R. Sedgewick

算法分析简介 P. Flajolet,R。Sedgewick

自动机理论,语言和计算概论 JE Hopcroft,JD Ullman,(R。Motwani)
1979年的第一版具有更多的理论结果,而2001年的第二版中却没有。还没有看过第三版的Ed。

形式语言理论导论 MA Harrison始于
1978年,但我仍然希望看到它。

Logicomix:对真相的史诗搜索 A. Doxiadis,CH Papadimitriou,
因为它真棒!

1979年再次,
Garey and Johnson的“ 计算机与难缠性:NP完全性理论指南”

我很乐意将TAoCP列入名单,但我担心Don Knuth的细致入微是无法被视为“入门”的。可悲的是...


Logicomix当然是一颗宝石,没有说其他的不是。
戴夫·克拉克2012年

我真的不喜欢Logicomix将逻辑学家描述为“疯狂”的人的方式。如果以正确的方式进行解释,逻辑上的思想就会扎根和简单,而不是那么“疯狂”。
2012年

1
@Dai看看非凡人士的生活,例如Gödel,Wittgenstein,Nash等。他们……非常非凡。
乌里2012年

哪些真正适合初学者?
拉斐尔

@Raphael恕我直言,所有这些,否则我不会在这里发布。有些人的学习曲线可能很陡,但是我认为这没关系。
乌里2012年

4

如果您是TCS领域的新手,那么Sipser的《计算理论导论》绝对是入门的最佳书。我读过其他入门书籍,我认为这些书籍都不比Sipser提出问题的方式更接近。

其他更具体的优秀理论书籍包括:


上面已经提到过。
戴夫·克拉克

@DaveClarke我正打算更多的资源添加到列表中,因为我现在跟我的编辑做了,但我也想强调多么伟大 Sipser的书是通过再次提到它!:-)
codd 2012年

1
皮尔斯的书是一颗宝石。我希望当我攻读博士学位时(在类型方面)已经存在了。
戴夫·克拉克

@DaveClarke我目前正在我的顾问的推荐下将其用于我的学士论文,这也给我留下了深刻的印象!
codd 2012年

1
感谢您的参考,今天晚些时候我将进行介绍。我看到您是KUL的教授,明年我将去那里学习Secure Software(Veilige软件)。多么小的世界。
2012年

3

一些涵盖TCS理论B部分的好书:

  • CS中的逻辑计算机科学中的逻辑:系统的建模和推理,作者:Michael Huth和Mark Ryan。
    广泛涉及计算机科学中逻辑的各种用途。大约本科三年级。

  • Lambda微积分Lambda微积分和组合器。介绍由J.罗杰辛德雷和Jonathan P.塞尔丁。
    引入了lambda演算,它是编程语言基础中的重要组成部分。大约本科三年级。

  • 导致领域理论:本科生Davey和HA剑桥大学出版社Priestley 着的《格和序入门》(第二版)。(2002)。
    涵盖了一个非常有用的主题,尤其是在您打算使用语义的情况下。它比其他主题更具数学意义,但是早期的课程肯定是在较高的本科水平上。

  • 语义应用的语义:Hanne Riis Nielson和Flemming Nielson 的开胃菜
    编程语言语义的非常不错的介绍。它没有深入探讨任何特定的形式主义,而是给出了广泛的介绍,并包括了其他有关语义的书中通常没有考虑的应用程序。可能对二年级本科生有用。


我什至连声誉都一无所知,所以我不能说它们有什么好处(即使我倾向于相信你的话)。:/
拉斐尔

1
我已经为每本书添加了描述。一切都很好。
戴夫·克拉克2012年

3

这是一个汇总答案,其中包含得分至少为5的答案中的书籍。请在聊天中讨论其内容。

算法与数据结构

  • Cormen,Leiserson,Rivest,Stein撰写的《算法简介》(2009年第3版)
    全面论述了基本算法和数据结构及其分析,而无需过于深入。
  • 算法,作者:Dasgupta,Papadimitriou,Vazirani(2006年)
    ,最直观的算法介绍,比技术证明更注重直觉。

可计算性和复杂性

  • Sipser 的计算理论导论(第2版,2005年)
    自动机理论,可计算性和复杂性的最佳介绍。

形式语言与自动机

应用理论

  • Baier,Katoen(2008)的模型检查原理
    大量书籍,可作为模型检查的全面介绍。
  • Jon Bentley 编写的《 Programming Pearls》(第二版,1999年)
    不是一本关于算法的教科书,而是精美地演示了如何使用算法设计技术来解决实际问题。如果您对编程有所了解,则可能是一个好的开始。

这不能回答问题,或者如果是要回答的话,则不是很好的答案。您是说启动TCS的人需要阅读所有这些书吗?如果没有,他们将如何选择?请记住,根据您的规则,此答案可能会包含数百本书
吉尔斯(Gilles'SO-不要邪恶)'

@Raphael您是否礼貌地要求别人删除自己的答案?通常,提问者本人可以通过修改自己的问题文本来汇总自己喜欢的答案,但是我从未见过有人强迫他人删除自己的帖子来创建自己的答案。这些自恋行为使这种cs stackexchange变得很奇怪。
2012年

@Raphael:将其设置为CW并不适合要求某人删除自己的答案。这就像在说我要写一本书/调查论文(我将在网上免费发表),所以我四处走走,请所有我引用其论文的作者都删除自己的论文,以免造成混淆。
2012年

@Raphael我没有在CC许可中看到任何地方说我的工作最终将被其他人要求撤下。我不知道您对SE有什么样的幻想,但是绝对不是Wikipedia。我知道您会努力“管理”该网站,但也请尊重他人的言论自由和隐私权,只需让上/下投票就可以解决其余问题。我认为CS SE的目标是为初学者提供比cstheory SE更友好的论坛,但是您在此处建议的微观管理水平使它变得更加糟糕。
2012年

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.