我应该阅读哪些书才能获得计算机科学的本科教育?

Kyl*_*nin 35 computer-science

我一直是一个很大程度上独立的学习者,从维基百科和各种书籍中收集到的东西.但是,我担心我可能会因无意中遗漏主题和概念而偏向于我的自我教育.我的目标是从顶尖大学自学相当于计算机科学的本科学位(无所谓).

为此,我购买并开始阅读一些学术教科书:

除了我在一所平庸的州立大学上课时留下的一些教科书:

我的问题是:

  • 本系列未涵盖哪些主题?
  • 是否有比这里列出的书更严格或更彻底(甚至更容易阅读)的书籍?
  • 有没有浪费我时间的书?
  • 我应该以什么顺序阅读这些书?
  • 麻省理工学院或斯坦福大学(或UCB或CMU ......)本科生学到了什么,我可能会错过什么?

欢迎使用软件工程书籍,但请在学术研究的范围内.我知道Code Complete和Pragmatic Programmer,但我正在寻找一种更理论化的方法.谢谢!

Vin*_*vic 13

我看到最大的两个遗漏:

对于操作系统,我更喜欢Tanenbaum而不是Silberschatz,但两者都很好:

关于订单,这取决于您的兴趣.没有太多先决条件,编译器的自动机是最明显的.首先阅读自动书,然后是龙书.

我不知道你拥有的所有书籍,但我知道的书籍已经足够好,这可能意味着其他书籍也是不错的.

你也缺少一些逻辑离散的数学书籍.

让我们不要忘记一些数据库理论书!


the*_*off 12

我找到的最好的方法是选择你最喜欢的大学,去他们的网站,并查看学位课程.许多大型课程都为每门课程发布了所需的阅读材料.麻省理工学院的Open Course Ware就是一个很好的例子.

顺便说一下,这也适用于非CS学位课程.


dac*_*cot 9

Don Knuth的计算机编程艺术

  • -1 TAOCP对于自我学习而言太过于难以达到这个水平 (3认同)
  • TAOCP书籍很棒,但并不是每个本科生(甚至是顶尖大学)都应该阅读. (2认同)

Wil*_*ara 6

麻省理工学院几年前推出了他们的"OpenCourseWare"计划.他们在线提供书籍/家庭作业/讲座,因此您可以跟随麻省理工学院的课程:

http://web.mit.edu/catalogue/degre.engin.ch6.shtml