第三届CCF未来计算机教育峰会推荐书单

异步社区官方博客

计算机教育关乎计算机学科的发展和人才培养,在当今建设“双一流”大学的大背景下,提升我国计算机本科教育的质量并且保持可持续发展的专业竞争力迫在眉睫。为此,中国计算机学会(CCF)将于2019年7月19-20日在青岛召开第三届CCF未来计算机教育峰会。

异步社区将在此次盛会中设有展台,同时为此次大无法推荐书单一份,供您赏阅。到时希望在场的小伙伴们可到展现现场互动交流。

人工智能篇

1、动手学深度学习

作者:阿斯顿·张(Aston Zhang), 李沐(Mu Li), [美] 扎卡里·C. 立顿(Zachary C. Lipton), [德] 亚历山大·J. 斯莫拉(Alexander J. Smola)

目前市面上有关深度学习介绍的书籍大多可分两类,一类侧重方法介绍,另一类侧重实践和深度学习工具的介绍。本书同时覆盖方法和实践。本书不仅从数学的角度阐述深度学习的技术与应用,还包含可运行的代码,为读者展示如何在实际中解决问题。为了给读者提供一种交互式的学习体验,本书不但提供免费的教学视频和讨论区,而且提供可运行的Jupyter记事本文件,充分利用Jupyter记事本能将文字、代码、公式和图像统一起来的优势。这样不仅直接将数学公式对应成实际代码,而且可以修改代码、观察结果并及时获取经验,从而带给读者全新的、交互式的深度学习的学习体验。

2、深度学习

作者:【美】Ian Goodfellow(伊恩·古德费洛), 【加】Yoshua Bengio(约书亚·本吉奥), 【加】Aaron Courville(亚伦·库维尔)

译者:赵申剑, 黎彧君, 李凯, 符天凡

本书囊括了数学及相关概念的背景知识,包括线性代数、概率论、信息论、数值优化以及机器学习中的相关内容。同时,它还介绍了工业界中实践者用到的深度学习技术,包括深度前馈网络、正则化、优化算法、卷积网络、序列建模和实践方法等,并且调研了诸如自然语言处理、语音识别、计算机视觉、在线推荐系统、生物信息学以及视频游戏方面的应用。最后,本书还提供了一些研究方向,涵盖的理论主题包括线性因子模型、自编码器、表示学习、结构化概率模型、蒙特卡罗方法、配分函数、近似推断以及深度生成模型。

3、人工智能(第2版)

[美] 史蒂芬·卢奇(Stephen Lucci),丹尼·科佩克(Danny Kopec) 著

本书是作者结合多年教学经验、精心撰写的一本人工智能教科书,堪称“人工智能的百科全书”。全书涵盖了人工智能简史、搜索方法、知情搜索、博弈中的搜索、人工智能中的逻辑、知识表示、产生式系统、专家系统、机器学习和神经网络、遗传算法、自然语言处理、自动规划、机器人技术、高级计算机博弈、人工智能的历史和未来等主题。

本书提供了丰富的教学配套资源,适合作为高等院校人工智能相关专业的教材,也适合对人工智能相关领域感兴趣的读者阅读和参考。

4、Python 神经网络编程

本书将带领您进行一场妙趣横生却又有条不紊的旅行——从一个非常简单的想法开始,逐步理解神经网络的工作机制。您无需任何超出中学范围的数学知识,并且本书还给出易于理解的微积分简介。本书的目标是让尽可能多的普通读者理解神经网络。读者将学习使用Python开发自己的神经网络,训练它识别手写数字,甚至可以与专业的神经网络相媲美。

5、PyTorch深度学习

作者:[印度]毗湿奴•布拉马尼亚(Vishnu Subramanian)

译者:王海玲, 刘江峰

本书对当今前沿的深度学习库PyTorch进行了讲解。凭借其易学习性、高效性以及与Python开发的天然亲近性,PyTorch获得了深度学习研究人员以及数据科学家们的关注。本书从PyTorch的安装讲起,然后介绍了为现代深度学习提供驱动力的多个基础模块,还介绍了使用CNN、RNN、LSTM以及其他网络模型解决问题的方法。本书对多个先进的深度学习架构的概念(比如ResNet、DenseNet、Inception和Seq2Seq)进行了阐述,但没有深挖其背后的数学细节。与GPU计算相关的知识、使用PyTorch训练模型的方法,以及用来生成文本和图像的复杂神经网络(如生成网络),也在本书中有所涵盖。

6、Python机器学习

[印] 阿布舍克·维贾亚瓦吉亚(Abhishek Vijayvargia) 著,宋格格 译

《Python机器学习》通过数学解释和编程示例描述了机器学习中的概念,每一章的内容都从技术的基本原理和基于真实数据集的工作实例开始,在提出应用算法建议的同时,指出了每种技术的优缺点。 《Python机器学习》提供了大量的Python代码示例。Python已成为主流编程语言之一,它免费且开源,并得到了开放社区的支持,其中包含大量的库供读者直接使用。

7、Python机器学习 预测分析核心算法

[美] Michael Bowles(鲍尔斯) 著,沙嬴,李鹏 译

本书通过集中介绍两类可以进行有效预测的机器学习算法,展示了如何使用Python 编程语言完成机器学习任务,从而降低机器学习难度,使机器学习能够被更广泛的人群掌握。

8、贝叶斯方法 概率编程与贝叶斯推断

[加] Cameron Davidson-Pilon(卡梅隆·戴维森-皮隆) 著,辛愿,钟黎,欧阳婷 译

本书基于PyMC语言以及一系列常用的Python数据分析框架,如NumPy、SciPy和Matplotlib,通过概率编程的方式,讲解了贝叶斯推断的原理和实现方法。该方法常常可以在避免引入大量数学分析的前提下,有效地解决问题。书中使用的案例往往是工作中遇到的实际问题,有趣并且实用。作者的阐述也尽量避免冗长的数学分析,而让读者可以动手解决一个个的具体问题。通过对本书的学习,读者可以对贝叶斯思维、概率编程有较为深入的了解,为将来从事机器学习、数据分析相关的工作打下基础。本书适用于机器学习、贝叶斯推断、概率编程等相关领域的从业者和爱好者,也适合普通开发人员了解贝叶斯统计而使用。

9、深度强化学习原理与实践

作者:陈仲铭 何明

本书构建了一个完整的深度强化学习理论和实践体系:从马尔可夫决策过程开始,根据价值函数、策略函数求解贝尔曼方程,到利用深度学习模拟价值网络和策略网络。书中详细介绍了深度强化学习相关算法,如Rainbow、Ape-X算法等,并阐述了相关算法的具体实现方式和代表性应用(如AlphaGo)。此外,本书还深度剖析了强化学习各算法之间的联系,有助于读者举一反三。

程序员职业素养篇

1、重构:改善既有代码的设计(第2版)

[美] 马丁·福勒(Martin Fowler) 著,熊节,林从羽 译

这本备受关注的第2 版在第1 版的基础上做了全面修订,反映了编程领域业已发生的许多变化。第2 版中介绍的重构列表更加内聚,并用JavaScript 语言重写了代码范例。此外,第2 版中还新增了与函数式编程相关的重构范例,旨在教会读者如何在没有类的环境下开展重构。

新版沿袭了第1 版的结构,依次解释什么是重构,为什么要重构,如何通过“坏味道”识别出需要重构的代码,以及如何在实践中成功实施重构(无论用的是什么编程语言)。

2、、代码整洁之道:程序员的职业素养

[美] 罗伯特·C.马丁(Robert C.Martin) 著

余晟,章显洲 译

软件开发大师Robert C. Martin在书中介绍了真实软件技艺中的各项原则、技术、工具和实践,展示了怎么以自豪、自尊和自信的心态进行软件开发,怎么取得卓越表现和丰硕成果,怎么做到有效沟通和确切估算,怎么以坦诚的心态面对困难,并引导读者认识到专业程序员肩负的责任重大,阐述了什么才是程序员的职业素养。

书中的具体内容包括:

3、代码整洁之道

[美] 马丁 著,韩磊 译

《代码整洁之道》提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,《代码整洁之道》作者给出了一系列行之有效的整洁代码操作实践。这些实践在《代码整洁之道》中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。

4、知行 技术人的管理之路

作为一本探讨技术人如何做管理的书,本书适合所有的技术人阅读,因为技术人都不可避免地要和管理者打交道,而且很多技术人或早或晚会成为管理者;本书也适合所有的管理者阅读,因为各种场景的管理逻辑都有共通之处。事实上,本书内容已经得到很多非技术背景的创业者、产品经理、销售经理、HR、管理顾问和培训师的好评。当然,如果你兼具“技术”和“管理”这两个属性,而且恰好处于以下某个状态,本书探讨的内容会更让你感同身受:

经典教材篇

操作系统导论

作者:[美] 雷姆兹·H.阿帕希杜塞尔( Remzi H. Arpaci-Dusseau), [美]安德莉亚·C.阿帕希杜塞尔(Andrea C. Arpaci-Dusseau)

译者:王海鹏

本书围绕虚拟化、并发和持久性这三个主要概念展开,介绍了所有现代系统的主要组件(包括调度、虚拟内存管理、磁盘和I/O子系统、文件系统)。全书共50章,分为3个部分,分别讲述虚拟化、并发和持久性的相关内容。作者以对话形式引入所介绍的主题概念,行文诙谐幽默却又鞭辟入里,力求帮助读者理解操作系统中虚拟化、并发和持久性的原理。

本书内容全面,并给出了真实可运行的代码(而非伪代码),还提供了相应的练习,很适合高等院校相关专业的教师开展教学和高校学生进行自学。

2、软件工程(第4版•修订版)

作者:[美] 莎丽•劳伦斯•弗里格(Shari Lawrence Pfleeger)[加] 乔安妮•M. 阿特利(Joanne M. Atlee)

译者:杨卫东

全书共分为14章,分3个部分介绍主要内容。第一部分解释为什么软件工程知识对实践者和研究者同样重要,还讨论了理解过程模型问题的必要性以及敏捷方法和精细地进行项目计划的必要性;第二部分论述开发和维护的主要步骤;第三部分主要讲述软件评估和改进。

本书适合作为计算机相关专业软件工程课程的本科教材,也适用于介绍软件工程的概念与实践的研究生课程,期望进一步学习该领域相关知识的专业人员也可以阅读本书。

3、数据结构(Python语言描述)

作者:【美】Kenneth A. Lambert(兰伯特)

译者:李军

《数据结构 Python语言描述》第1章简单介绍了Python语言的基础知识和特性。第2章到第4章对抽象数据类型、数据结构、复杂度分析、数组和线性链表结构进行了详细介绍,第5章和第6章重点介绍了面向对象设计的相关知识、第5章包括接口和实现之间的重点差异、多态以及信息隐藏等内容,第6章主要讲解继承的相关知识,第7章到第9章以栈、队列和列表为代表,介绍了线性集合的相关知识。第10章介绍了各种树结构,第11章讲解了集和字典的相关内容,第12章介绍了图和图处理算法。每章*后,还给出了复习题和案例学习,帮助读者巩固和思考。

4、C++程序设计(第3版)

作者 [美]瑞克·莫瑟(Rick Mercer) 译者 凌杰

本书是作者数十年教学经验凝结的成果, 深入浅出地介绍对象和类的概念,帮助学生更好地学习计算机科学的第一门课,并为后续课程的学习打下坚实的基础。本书每一章都给出了自测题、练习题、编程技巧、编程项目等内容。附录部分给出了所有自测题的解答,供读者学习参考。经