CS
重构
Refactoring: Improving the Design of Existing Code Douban
★ 8.5 20 ratings
Martin Fowler translator: 熊节 publishing house: 人民邮电出版社 2010
重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是本书原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围内畅销不衰。 本书凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重构本身,业界对重构的理解,还是开发工具对重构的支持力度,都与本书最初出版时不可同日而语,但书中所蕴涵的意味和精华,依然值得反复咀嚼,而且往往能够常读常新。
数学之美
Douban
★ 8.6 98 ratings
[美国] 吴军 publishing house: 人民邮电出版社 2012 - 5
几年前,“数学之美”系列文章原刊载于谷歌黑板报,获得上百万次点击,得到读者高度评价。读者说,读了“数学之美”,才发现大学时学的数学知识,比如马尔可夫链、矩阵计算,甚至余弦函数原来都如此亲切,并且栩栩如生,才发现自然语言和信息处理这么有趣。 今年,作者吴军博士几乎把所有文章都重写了一遍,为的是把高深的数学原理讲得更加通俗易懂,让非专业读者也能领略数学的魅力。读者通过具体的例子学到的是思考问题的方式 —— 如何化繁为简,如何用数学去解决工程问题,如何跳出固有思维不断去思考创新。
人工智能 (第2版)
Douban
[美] 史蒂芬·卢奇(Stephen Lucci) / [美]丹尼·科佩克(Danny Kopec) translator: 林赐 publishing house: 人民邮电出版社 2018 - 8
作为计算机科学的一个分支,人工智能主要研究、开发用于模拟、延伸和扩展人类智能的理论、方法、技术及应用系统,涉及机器人、语音识别、图像识别、自然语言处理和专家系统等方向。 本书包括引言、基础知识、基于知识的系统、高级专题以及现在和未来五部分内容。第一部分从人工智能的定义讲起,就人工智能的早期历史、思维和智能的内涵、图灵测试、启发法、新千年人工智能的发展进行了简要论述。第二部分详细讲述了人工智能中的盲目搜索、知情搜索、博弈中的搜索、人工智能中的逻辑、知识表示和产生式系统等基础知识。第三部分介绍并探究了人工智能领域的成功案例,如DENDRAL、MYCIN、EMYCIN等经典的专家系统,振动故障诊断、自动牙科识别等新的专家系统,以及受到自然启发的搜索等。第四部分介绍了自然语言处理和自动规划等高级专题。第五部分对人工智能的历史和现状进行了梳理,回顾了几十年来人工智能所取得的诸多成就,并对其未来进行了展望。 本书系统、全面地涵盖了人工智能的相关知识,既简明扼要地介绍了这一学科的基础知识,也对自然语言处理、自动规划、神经网络等内容进行了拓展,更辅以实例,可以帮助读者扎扎实实打好基础。本书特色鲜明、内容易读易学,适合人工智能相关领域和对该领域感兴趣的读者阅读,也适合高校计算机专业的教师和学生参考。
计算机组成与设计(原书第4版)
Computer Organization and Design: The Hardware/Software Interface (4/e) Douban
[美] David A.Patterson / [美] John L.Hennessy translator: 康继昌 / 樊晓桠 … publishing house: 机械工业出版社 2012 - 1
《计算机组成与设计》是计算机组成的经典教材。全书着眼于当前计算机设计中最基本的概念,展示了软硬件间的关系,并全面介绍当代计算机系统发展的主流技术和最新成就。 同以往版本一样,本书采用MIPS处理器作为展示计算机硬件技术、汇编语言、计算机算术、流水线、存储器层次结构以及I/O等基本功能的核心。书中强调了计算机从串行到并行的最新革新,在每章中都纳入了并行硬件和软件的主题,以软硬件协同设计发挥多核性能为最终目标。 本书适合作为高等院校相关专业的本科生和研究生教材,对广大技术人员也有很高的参考价值。
深入理解计算机系统
Computer Systems: A Programmer's Perspective Douban Goodreads
Randal E.Bryant / David O'Hallaron translator: 龚奕利 / 雷迎春 publishing house: 中国电力出版社 2004 - 5
从程序员的视角,看计算机系统! 本书适用于那些想要写出更快、更可靠程序的程序员。通过掌握程序是如何映射到系统上,以及程序是如何执行的,读者能够更好的理解程序的行为为什么是这样的,以及效率低下是如何造成的。粗略来看,计算机系统包括处理器和存储器硬件、编译器、操作系统和网络互连环境。而通过程序员的视角,读者可以清晰地明白学习计算机系统的内部工作原理会对他们今后作为计算机科学研究者和工程师的工作有进一步的帮助。它还有助于为进一步学习计算机体系结构、操作系统、编译器和网络互连做好准备。 本书的主要论题包括:数据表示、C程序的机器级表示、处理器结构,程序优化、存储器层次结构、链接、异常控制流、虚拟存储器和存储器管理、系统级I/O、网络编程和并发编程。书中所覆盖的内容主要是这些方面是如何影响应用和系统程序员的。例如,在讲述数据表示时,本书说明了用来表示数字的表示方法是有限的,它能够近似地表示整数和实数,但是这种表示方法是有限制的,程序员必须了解。在讲述高速缓存时,本书讨论了矩阵代码中的循环变量的顺序是如何影响程序的性能的。在讨论网络互连时,本书描述了并发服务器如何能有效地处理来自多个客户端的请求。 本书基于Intel兼容(IA32)机器,在Unix或者相关的操作系统(例如,Linux)上执行C程序。虽然书中包括了一些帮助读者将Java转化成C的提示,但是还是要求读者对C或者C++有一定的了解。 您可以通过本书的Web网站www.csapp.cs.cmu.edu获得完整的资料,包括实验和作业,授课笔记和代码示例。 本书英文版久负盛名,被众多专业人士称为“最伟大的计算机教材”之一,著名的美国卡内基梅隆大学计算机科学系一直将本书作为教材使用,程序员眼中的透彻讲述计算机系统的扛鼎之作。作者Randal E. Bryant是卡耐基梅隆大学的计算机科学系主任,ACM和IEEE双院士(Fellow),其研究成果多次获得ACM和IEEE颁发的大奖。 本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有本质概念,并向读者展示这些概念是如何实际地影响应用程序的正确性、性能和实用性。与其他主要针对系统构造人员的系统类书籍不同,这本书是写给程序员的,是从程序员的角度来描述的。本书为软件和硬件之间搭起了一个桥梁,它给出了一种帮助读者分别从硬件和软件的角度去理解一个程序及其行为的途径,这也填补了国内计算机系统教学中的一个空白。本书的最大优点是帮助读者理解概念,让读者很清楚地在脑海中构造一个层次型的计算机系统,从最低层数据在内存中的表示(如我们一直陌生的浮点数表示),到流水线指令的构成,到虚拟存储器,到编译系统,到动态加载库,到最后的用户应用。 本书提供了大量的例子和练习及部分答案。尤其值得一提的是,对于每一个基本概念都有相应的笔头或程序试验,加深读者的理解。
离散数学及其应用(原书第5版)
Discrete mathematics and its applications Douban
★ 8.4 10 ratings
[美] Kenneth H·Rosen translator: 袁崇义 publishing house: 机械工业出版社 2007 - 6
《离散数学及其应用》(原书第5版)全面而系统地介绍了离散数学的理论和方法,内容涉及数学推广、组合分析、离散结构和算法设计。全书取材广泛,除包括定义、定理的严密陈述外,还配备大量的实例和图表的说明,各种联系和题目。以及丰富的历史资料和网站资源。第5版在前四版的基础上作了大量的改进,使其成为更有效的教学工具。。
概率论与数理统计
Douban Goodreads
★ 8.9 11 ratings
陈希孺 publishing house: 中国科学技术大学出版社 2009 - 2
本书内容包括初等概率计算、随机变量及其分布、数字特征、多维随机向量、极限定理、统计学基本概念、点估计与区间估计、假设检验、回归相关分析、方差分析等。书中选入了部分在理论和应用上重要,但一般认为超出本课程范围的材料,以备教者和学者选择。本书着重基本概念的阐释,同时在设定的数学程度内,力求做到论述严谨。书中精选了百余道习题,并在书末附有提示与解答。 本书可作为高等学校理工科非数学系的概率统计课程教材,也可供具有相当数学准备(初等微积分及少量矩阵知识)的读者自修之用。
编译原理
Compilers: Principles, Techniques, and Tools Douban
Alfred V. Aho / Monica S. Lam … publishing house: 机械工业出版社 2011 - 1
本书是编译领域无可替代的经典著作,被广大计算机专业人士誉为“龙书”。本书上一版自1986年出版以来,被世界各地的著名高等院校和研究机构(包括美国哥伦比亚大学、斯坦福大学、哈佛大学、普林斯顿大学、贝尔实验室)作为本科生和研究生的编译原理课程的教材。该书对我国高等计算机教育领域也产生了重大影响。  第2版对每一章都进行了全面的修订,以反映自上一版出版20多年来软件工程。程序设计语言和计算机体系结构方面的发展对编译技术的影响。本书全面介绍了编译器的设计,并强调编译技术在软件设计和开发中的广泛应用。每章中都包含大量的习题和丰富的参考文献。  本书适合作为高等院校计算机专业本科生和研究生的编译原理与技术课程的教材,也可供广大计算机技术人员参考。
计算机体系结构
Computer Architecture:A Quantitative Approach,Fifth Edition Douban
John L. Hennessy / David A. Patterson publishing house: 机械工业出版社 2012 - 1
编辑推荐 “本书之所以成为永恒的经典,是因为它的每一次再版都不仅仅是更新补充,而是一次全面的修订,对这个激动人心且快速变化领域给出了最及时的信息和最独到的解读。对于我来说,即使已有二十多年的从业经历,再次阅读本书仍自觉学无止境,感佩于两位卓越大师的渊博学识和深厚功底。” ——Luiz André Barroso,Google公司 内容简介 本书堪称计算机系统结构学科的“圣经”,是计算机设计领域学生和实践者的必读经典。本书系统地介绍了计算机系统的设计基础、存储器层次结构设计、指令级并行及其开发、数据级并行、GPU体系结构、线程级并行和仓库级计算机等。 现今计算机界处于变革之中:移动客户端和云计算正在成为驱动程序设计和硬件创新的主流范型。因此在这个最新版中,作者考虑到这个巨大的变化,重点关注了新的平台(个人移动设备和仓库级计算机)和新的体系结构(多核和GPU),不仅介绍了移动计算和云计算等新内容,还讨论了成本、性能、功耗、可靠性等设计要素。每章都有两个真实例子,一个来源于手机,另一个来源于数据中心,以反映计算机界正在发生的革命性变革。 本书内容丰富,既介绍了当今计算机体系结构的最新研究成果,也引述了许多计算机系统设计开发方面的实践经验。另外,各章结尾还附有大量的习题和参考文献。本书既可以作为高等院校计算机专业高年级本科生和研究生学习“计算机体系结构”课程的教材或参考书,也可供与计算机相关的专业人士学习参考。 本书特色 • 更新相关内容以覆盖移动计算变革,并强调当今体系结构中最重要的两个主题:存储器层次结构和各种并行技术。 • 每章中的“Putting It All Together”小节关注了业界的各种最新技术,包括ARM Cortex-A8、Intel Core i7、NVIDIA GTX-280和GTX-480 GPU,以及一种Google仓库级计算机。 • 每章都设计了常规主题:能力、性能、成本、可依赖性、保护、编程模型和新趋势。 • 书中包括3个附录,另外8个附录可以在原出版社网站在线得到。 • 每章最后都设置了由工业界和学术界专家提供的经过更新的案例研究,以及与之配套的全新练习题。
计算机组成与设计硬件/软件接口
Computer Organization and Design: The Hardware/Software Interface Douban
[美] David A.Patterson / John L.Hennessy translator: 郑纬民 publishing house: 机械工业出版社 2007 - 4
《计算机组成与设计硬件:软件接口》(原书第3版)是计算机组成的经典教材。全书着眼于当前计算机设计中最基本的概念,展示了软硬件间的关系,并全面介绍当代计算机系统发展的主流技术和最新成就。同以往版本一样,《计算机组成与设计硬件:软件接口》(原书第3版)采用MIPS处理器作为展示计算机硬件技术基本功能的核心。书中逐条指令地列举了完整的MIPS指令集,并介绍了网络和多处理器结构的基本内容。将CPU性能和程序性能紧密地联系起来是本版的一个新增内容。另外,本版对软硬件的讨论更加深入,作者展示了软硬件部件如何影响程序的性能,并在光盘中为侧重硬件和侧重软件的读者分别提供了相关资料。随书光盘内容非常丰富,不仅包括各种配套教学资源,还提供了HDL模拟器、MIPS模拟器以及FPGA设计工具等软件。
计算机程序的构造和解释(原书第2版)
Structure and Interpretation of Computer Programs Douban Goodreads
★ 9.7 22 ratings
[美] Harold Abelson / [美] Gerald Jay Sussman … translator: 裘宗燕 publishing house: 机械工业出版社 2004 - 2
《计算机程序的构造和解释》成型于美国麻省理工学院(MIT)多年使用的一本教材,1984年出版,1996年修订为第二版。在过去的二十多年里,该书对于计算机科学的教育计划产生了深刻的影响。 在第二版中,大部分重要程序设计系统都重新修改并做过测试,包括各种解释器和编译器。作者根据其后十余年的教学实践,还对其他许多细节做了相应的修改。
代码整洁之道
Clean Code: A Handbook of Agile Software Craftsmanship Douban
★ 8.0 14 ratings
[美]Robert C. Martin translator: 韩磊 publishing house: 人民邮电出版社 2010 - 1
软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。 本书提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。 本书阅读对象为一切有志于改善代码质量的程序员及技术经理。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。
程序员的自我修养
Douban
★ 9.1 22 ratings
俞甲子 / 石凡 … publishing house: 电子工业出版社 2009 - 4
这本书主要介绍系统软件的运行机制和原理,涉及在Windows和Linux两个系统平台上,一个应用程序在编译、链接和运行时刻所发生的各种事项,包括:代码指令是如何保存的,库文件如何与应用程序代码静态链接,应用程序如何被装载到内存中并开始运行,动态链接如何实现,C/C++运行库的工作原理,以及操作系统提供的系统服务是如何被调用的。每个技术专题都配备了大量图、表和代码实例,力求将复杂的机制以简洁的形式表达出来。本书最后还提供了一个小巧且跨平台的C/C++运行库MiniCRT,综合展示了与运行库相关的各种技术。 对装载、链接和库进行了深入浅出的剖析,并且辅以大量的例子和图表,可以作为计算机软件专业和其他相关专业大学本科高年级学生深入学习系统软件的参考书。同时,还可作为各行业从事软件开发的工程师、研究人员以及其他对系统软件实现机制和技术感兴趣者的自学教材。
人月神话
The Mythical Man-Month: Essays on Software Engineering Douban Goodreads
★ 8.3 29 ratings
[美] 弗雷德里克·布鲁克斯 translator: 汪颖 publishing house: 清华大学出版社 2002 - 11
作者为人们管理复杂项目提供了颇具洞察力的见解,既有很多发人深省的观点,也有大量的软件工程实践。书中的内容来自布鲁克斯在IBM公司System 360家族和OS 360中的项目管理经验。初版的20年后,布鲁克斯重新审视了他原先的观点,增加了一些新的想法和建议。新增加的章节包括:原著中一些核心观点的精华;在经过了一个时代以后,Brooks博士对原先观点新的认识;1986年的经典文章《没有银弹》;对1986年所下论断(在10年内不会出现银弹)现在的认识。