每个分支比较经典的书可能不止一本,有些适合本科生的,有些是适合研究生的。可以只买我后面打了(重点推荐)的,呵呵。比较多,大概30本左右。
先是离散数学,数据结构,算法,计算理论部分
1. 离散数学及其应用(重点推荐)
2. 具体数学:计算机科学基础(重点推荐)
3. 数据结构与算法分析--C语言描述
数据结构与算法分析--C++描述
数据结构与算法分析--Java 语言描述(重点推荐)
这3本是一个作者写的,只是不同语言版本,内容基本是一样的,你可以任选一本。我更推荐Java的,北美现在绝大部分大学数据结构都用Java讲了。不过Java版本的好像绝版了,china pub还有二手书再买,说是2手,其实基本是新的,库存比较久而已。
4. 算法概论
这书二三作者是berkeley的两位超级大牛,通俗易懂,只有300来页,很多名校用这本书做本科算法课的教材。用来入门很好。
5. 算法设计(重点推荐)
这本书是cornell两个大牛写的,比上本书出得早,内容也比上本书丰富得多,800多页,但难度也大不少。同样是北美众多名校算法课教材。
6. 算法导论(重点推荐)
MIT的算法导论。此书并不适合做教材,更像是一本reference,1100多页。北美名校用这个当本科教材的不多了,不过很多研究生算法课依然用这本书做教材。我们系大3的算法课(我老板开的)也是用这本书当教材。我觉得将来工作的话,这本书比4和5更有用,那俩更适合学习。算法对计算机专业学生来说,特别重要,我推荐你3本都买。
7. 计算机程序设计艺术 第1卷 基本算法
计算机程序设计艺术 第2卷 半数值算法
计算机程序设计艺术 第3卷 排序和查找
Knuth的3卷本,这个算是计算机界的荷马史诗,不过内容有些老了,收录的topic比较窄,算法导论上很多高级topics这本书都没有,难度也特别大,不适合学习。Knuth原计划写7卷的,好像是70年代开始写,到现在第4卷还没写完,估计他挂前,能完成前5卷就不错了,呵呵。对了,这本书国内好几个出版社在做,清华最早出的,01年左右,我买的是清华版的,里面错误很多,knuth网页上的errata文件就有40多页。机工08年重新影印了,里面绝大部分错误都已经按北美的new printing校正了。图灵据说会再影印,不过到现在还没出。
8. 计算理论导引(英文影印版)(第2版) (重点推荐)
这本书是计算理论最好的入门书。本科生用这本教材足够了,MIT, Berkeley, CMU, UWash等都是用这本书的。计算理论分3部分:形式语言与自动机,可计算性,计算复杂性。这3个分支都还各有一本经典的入门书。
形式语言与自动机的是自动机理论、语言和计算导论(英文版·第3版) (推荐),这个是waterloo本科生的教材,stanford和columbia的几位大牛写的。这本书你可买可不买,如果将来要去waterloo读书,再买也不迟,呵呵,我觉得《计算理论导引》足够了。另外俩分支的书很少有学校拿来做本科生教材了,我就不说了,呵呵。
再是系统部分
9. 深入理解计算机系统(重点推荐)
10. 计算机组成与设计硬件/软件接口(重点推荐)
这本书是北美这边本科体系结构课的必选教材。不过遗憾的是,现在Morgan Kaufmann只让大陆影印ARM版的,北美用的是MIPS版的。第3版大陆引进的是MIPS版的,你可以考虑买个第4版的arm版本,再下个mips版的电子版;或者买大陆引进的第3版mips版。
11. 计算机体系结构:量化研究方法
10-11这两本书是stanford校长和berkeley一个超级大牛合写的。11是10的研究生版,基本是各个名校cs phd体系结构方向qualify考试的参考书,难度大。你不打算读研的话,可以不用看。10应该够了。
12. 操作系统概念(重点推荐)
13. 现代操作系统(推荐)
12-13是操作系统最经典的两本书,不过北美大部分学校还是用12这本当教材。你可以选第一本就行。将来去哪个学校读书的话,可以再看下学校是用哪本(多大好像是用13,waterloo用的12)。如果用13,再买13就好了,呵呵。
14. 计算机网络:自顶向下方法(重点推荐)
15. 计算机网络系统方法
14-15是网络最经典的两本书。14简单些,15难度有些大。大部分学校用14当本科生教材,15当研究生教材。不过有不少名校直接用15当本科生教材。我个人觉得14足够了。
16. 数据库管理系统原理与设计(重点推荐)
17. 数据库系统概念
大部分北美名校用16当数据库教材。不过我记得Yale,Brown,U of Toronto是用这本当教材的。这个是yale的教授写的。我个人觉得不如16.
18. 编译原理 技术与工具
19. 软件工程Software Engineering: A Practitioner\'s Approach,Sixth Edition(重点推荐)
20. 计算机系统设计原理(重点推荐)
MIT 6.033教材,MIT两位超级大牛写的,二作是现在操作系统界的老大。这本书只出版了前半部分,后半部分作者无偿放网上了:
除了上面的,一般本科生还会开人工智能的课。
21. 人工智能:一种现代方法 第二版
理论课基本就这么多了,计算机专业的学生,一般得会C/C++,Java。
C的好书国内好像只影印了一本,其他书都没引进,只有翻译版。引进的是C语言之父写的书:
22. C程序设计语言(重点推荐)