推荐文章

1. "Computer Science and its relation to Mathematics", written by Donald E. Knuth.
小水滴的推荐理由:计算机科学是从数学衍生出来的一门新兴学科。计算机科学建立于数学之上,但是,计算机科学与数学研究的重点并不同。作为一名图灵奖获得者,作者在本文中阐述了计算机科学与数学之间的关系。这篇文章虽然发表于40年前,但是,因为本文讨论的是计算机科学所研究的最根本的问题,所以,本文的内容仍然适用于现代计算机科学。本文发表于1974年。
2. "Machine learning: Trends, perspectives, and prospects", written by M. I. Jordan and T. M. Mitchell.
小水滴的推荐理由:机器学习是人工智能领域中的一门核心学科。机器学习将计算机科学与数学统计紧密的结合在一起,利用学习理论与算法从海量数据中挖掘有效的信息。本文详细的阐述了机器学习这门科学目前的发展现状,遇到的困难,以及该学科的发展方向与前景。作者Michael I. Jordan,加州伯克利分校教授。Tom M. Mitchell,卡内基梅隆大学教授。此文发表于2015年。
3. ""One Size Fits All": An Idea Whose Time Has Come and Gone", written by M. Stonebraker and U. Cetintemel.
4. "The End of an Architectural Era (It's Time for a Complete Rewrite)", written by M. Stonebraker, N. Hachem, P. Helland.
小水滴的推荐理由:数据的快速增长已成为数据处理和数据管理的核心问题与挑战。Michael Stonebraker在上述的两篇文章中阐述了他对未来数据库发展的看法与展望。简短的讲,他认为单纯使用关系型数据库来管理所有数据的时代已经过去。未来会出现各种各样的数据库,用来处理某一特殊的场景。所以,这也是为什么他认为所有相关的数据处理应用程序和数据管理系统都会面临着重写的原因。因为他在数据库方面的卓越贡献,他获得了2015年的图灵奖。上述两篇文章分别发表于2005年和2007年。
5. "MapReduce: Simplified Data Processing on Large Clusters", written by J. Dean and S. Ghemawat.
小水滴的推荐理由:当这篇文章发表后,掀起了一股研究MapReduce的狂潮。研究人员和公司纷纷尝试将MapReduce这一新的并行处理模型引入到从事的领域和应用。并且Hadoop计算平台也应运而生。这篇文章发表于2004年。
6. "MapReduce and Parallel DBMSs: Friends or Foes?", written by M. Stonebraker, D. Abadi, D. J. DeWitt, S. Madden, E. Paulson, A. Pavlo, A. Rasin.
小水滴的推荐理由:当MapReduce的文章发表后,数据库研究人员也曾研究并尝试将MapReduce的计算模型引入数据库管理系统。这篇文章阐述和分析了将MapReduce与数据库管理系统融合的技术难度。
7. "A New Golden Age for Computer Architecture", written by J. L. Hennessy and D. A. Patterson.
小水滴的推荐理由:阅读历史不仅仅是为了学习过去发生的重大事件,更重要的是,从这些事件中寻找共性,展望未来。在这篇文章中,作者使用了大量的篇幅回顾计算机体系结构的演变过程,并在结尾处,提出了未来计算机体系结构的两个发展方向。其中之一是发展专业领域内的体系结构(Domain-Specific Architectures)。谷歌的TPU和Nvidia的GPU都属于这个发展方向。两位作者于2017年共同获得了图灵奖。这篇文章发表于2019年。

Google专题

1. "Web Search for a Planet: the Google Cluster Architecture", written by L. A. Barroso, J. Dean, and U. Holzle.
小水滴的推荐理由:这是一篇阐述Google搜索引擎架构的文章。虽然目前Google已研发了适用于不同应用场景的计算体系结构,但是,在搜索引擎和大数据处理方面,这篇文章所描述的体系结构仍然适用,并且被众多公司和科研机构使用。这篇文章的主要的观点是:(1)Google使用软件系统来实现系统的高可靠性,所以,Google可以使用大量的、价格相对低廉的普通计算机(Commodity-class PCs)搭建集群系统;(2)Google更注重于系统的吞吐率(Throughput)而非响应时间(Response Time)。因为所有的请求都是并行处理的,响应时间相对较短。
2. "The Google File System", written by S. Ghemawat, H. Gobioff, S. T. Leung.
小水滴的推荐理由:这是一篇阐述Google分布式文件系统的文章。在Google整个分布式系统中,该分布式文件系统向上层服务提供了最基础的、最核心的支持:可靠的数据服务。与单机文件系统不同的是,分布式文件系统更加侧重于服务的吞吐率、数据可靠性、容错性、一致性等问题。因为,Google使用的是由相对廉价的计算机组成的集群系统,数据的可靠性和容错性尤为重要。
3. "MapReduce: Simplified Data Processing on Large Clusters", written by J. Dean, S. Ghemawat.
小水滴的推荐理由:这是一篇阐述Google搭建在集群系统上的计算平台。Map和Reduce源于函数式编程中的map和reduce两个函数的概念:给定一个集合,map应用于集合中的每一个元素,而reduce汇总结果。MapReduce是众多并行/分布式计算平台中的一种。如此篇文章所展示的,在Google的一些应用场景下,MapReduce有着非常好的表现。然而,在另一些应用场景下,MapReduce并不适用,这也是过去十几年科研工作者着重研究的内容和重点,即:如何改良MapReduce,使之能应用于更加广泛的应用场景。
4. "The Chubby Lock Service for Loosely-coupled Distributed Systems", written by M. Burrows.
小水滴的推荐理由:Chubby为Google内部分布式系统提供锁服务。因为,Google采用的是大规模的,廉价计算机组成的分布式系统,所以,Chubby的设计主要考虑的是系统的可靠性(Reliability和Availability),而不是性能(Performance)。Chubby实际上是一个客户端-服务器端(Client-Server Pattern)的设计模式。在服务器端,一个Chubby Cell维护5个备份,客户端只和Master交互通信。当一个Master失败后,另一个Master会被选中,继续提供服务。
5. "Bigtable: A Distributed Storage System for Structured Data", written by F. Chang, J. Dean, S. Ghemawat, W. C. Hsieh, D. A. Wallach, M. Burrows, T. Chandra, A. Fikes, R. Gruber.
小水滴的推荐理由:Bigtable是Google的一个分布式存储系统。Google使用它支持Google Earth,Google Finance等众多服务。因为Bigtable实际上是一个超级大的map,所以,除了支持海量存储以外,Bigtable还为这些数据建立了索引,提供快速高效的查询服务。Web数据索引(Web Indexing)就是此篇文章着重讲解的一个例子。从逻辑上讲,Bigtable建立在Google File System和Chubby之上。Bigtable使用Google File System存储数据(Data Blocks),并在其基础上建立索引。Bigtable还使用了Chubby来确保数据的一致性。
6. "Spanner: Google's Globally-Distributed Database", written by J. C. Corbett, J. Dean, M. Epstein, A. Fikes, C. Frost, J. Furman, S. Ghemawat, A. Gubarev, C. Heiser, P. Hochschild, W. Hsieh, S. Kanthak, E. Kogan, H. Li, A. Lloyd, S. Melnik, D. Mwaura, D. Nagle, S. Quinlan, R. Rao, L. Rolig, Y. Saito, M Szymaniak, C. Taylor, R. Wang, D. WOodford.
小水滴的推荐理由:Spanner是Google的一个全球分布式数据库。与Bigtable相比,Spanner提供了强一致性(Strong Consistency)和一些数据库的特性(事务处理(Transaction Processing),SQL查询(SQL-based Queries))。Spanner最初的设计目的是为了支撑Google广告业务,随后,一些其他的业务也在慢慢的转移到Spanner上。
7. "F1 - The Fault-Tolerant Distributed RDBMS Supporting Google's Ad Business", written by J. Shute, M. Oancea, S. Ellner, B. Handy, E. Rollins, B. Samwel, R. Vingralek, C. Whipkey, X. Chen, B. Jegerlehner, K. Littlefield, P. Tong.
小水滴的推荐理由:广告业务是Google最为核心的业务之一,是Google的主要收入来源。Google开发了F1系统用于支撑其广告业务。F1是一个分布式关系型数据库,建立于Spanner系统之上。F1的设计目的是为了同时提供高扩展性、高可用性和高一致性(Scalability, Availability, Consistency, and Usability)。虽然,这些设计目标往往是相互矛盾的,但是,F1采用了多种技术优化了其内部系统,以同时达到上述四项目标。
8. "An in-depth look at Google's first Tensor Processing Unit(TPU)", written by K. Sato, C. Young, D. Patterson.
小水滴的推荐理由:Tensor Processing Unit (TPU)是Google在神经网络(Neural Network)计算方面的一项重要的产品。据测试,在性能方面,TPU比现代CPU快15-30倍。在性能能量消耗比方面,TPU高于现代GPU 30-80倍。TPU是如何做到的呢?首先,与通用型CPU和GPU不同的是,TPU是专用于神经网络计算的集成电路(是一种Application-Specific Integrated Circuit),它不能用于通用型计算。针对神经网络的计算流程,TPU将在通常情况下的多个乘法操作转化成为一个矩阵乘法操作。因为TPU采用的是复杂型指令集(Complex Instruction Set Computer-CISC),一个矩阵的操作可在一个时钟周期(A Single Clock Cycle)内完成。另外,TPU还做了一些数据访问的优化,例如,当一份数据从寄存器读取出来后,该数据可被多个操作重复使用。因此,TPU获得了极大的性能提升。
9. "TensorFlow: A System for Large-scale Machine Learning", written by M. Abadi, P. Barham, J. Chen, Z. Chen, A. Davis, J. Dean, M. Devin, S. Ghemawat, G. Irving, M. Isard, M. Kudlur, J. Levenberg, R. Monga, S. Moore, D. G. Murray, B. Steiner, P. Tucker, V. Vasudevan, P. Warden, M. Wicke, Y. Yu, X. Zheng.
小水滴的推荐理由:Google Brain是Google在人工智能方面的一个重要研究项目,而TensorFlow为该项目提供了一个大规模机器学习(Large-scale Machine Learning)的计算平台。TensorFlow是一个异构的计算环境(Heterogeneous Computing Environment);计算任务可以在多核服务器,GPU设备,Tensor Processing Units (TPUs)等环境中运行。TensorFlow基于数据驱动的设计理念;计算任务由一张有向数据流图(Dataflow Graph)表达。在图中流动的数据被称为Tensor;Tensor实际上是一个高维的数组或者矩阵,具体作用于这个数组或者矩阵的实现(Implementation)被称为Kernel。除了提供高性能和高灵活性以外,TensorFlow极大的简化了机器学习方面项目开发的难度。因为TensorFlow有着统一的接口,项目可以从一个TensorFlow平台移植到另一个。
10. "Large-scale Cluster Management at Google with Borg", written by A. Verma, L. Pedrosa, M. R. Korupolu, D. Oppenheimer, E. Tune, J. Wilkes.
小水滴的推荐理由:Google的集群系统支撑着众多内部服务。在这些服务中,有的仅仅瞬时运行,响应面向用户请求的服务;有的长时间运行,作为内部基础服务(Internal Infrastructure Service)。Borg并不是唯一的集群管理系统,但是,Borg是为数不多的,能有效管理成千上万个节点的集群管理系统。并且,Borg能提供高可靠性(High Reliability and Availability);它将资源管理(Resource Management)和失败恢复(Failure Recovery)的细节从系统中分离出来,这使得开发人员更加专注于业务服务的开发。
11. "Google's C/C++ Toolchain for Smart Handheld Devices", written by D. Kwan, J. Yu, B. Janakiraman.
小水滴的推荐理由:这是一篇短文章。小水滴推荐这篇文章的主要目的是为了给读者一些启发。平时使用的编译器(Compiler),链接器(Linker)等Toolchain工具不仅仅可用于生成可执行的二进制代码(Code Generation)和代码性能优化(Performance Improvement);它还能完成很多其他功能。例如,本篇文章提到的节能(Power Saving),代码安全(Code Security),和优化开发方式(Productivity Improvement)等。

Facebook专题

1. "Presto: SQL on Everything", written by R. Sethi, M. Traverso, D. Sundstrom, D. Phillips, W. Xie, Y. Sun, N. Yigitbasi, H. Jin, E. Hwang, N. Shingte, C. Berner.
小水滴的推荐理由:在数据规模快速增长的同时,数据的多样性也成为一个重要的问题。各大研究机构纷纷推出不同种类的数据处理与数据存储的解决方案。然而,如何统一管理这些不同种类的系统与数据也是一个极具挑战的问题。在这篇文章中,Facebook给我们展示了他们的解决方案,即使用SQL语言提供统一的数据查询和用户交互的接口。Presto是一个SQL的引擎,它具有高适配性(Adaptivity),高扩展性(Extensibility),高灵活性(Flexibility),和高性能(High Performance),以用于接入各种不同的系统。Presto内部采用的是集中式的架构,由一个调度分发节点Coordinator处理SQL,并优化执行方案(Query Execution Planning and Optimization);具体任务则有Worker节点执行。
2. "Spinner: Scalable Graph Partitioning in the Cloud", written by C. Martella, D. Logothetis, A. Loukas, G.Siganos.
小水滴的推荐理由:Facebook的核心价值是其拥有的用户数据。简单的说,在用户数据集中,用户之间的关系和用户与商品之间的关系是由一张大图来维护的。在图中,用户或者商品可由顶点(Vertex)表达,他们之间的关系可由边(Edge)表达。那么,如何有效的管理这些数据成了Facebook最为核心的技术。本篇论文介绍了Facebook如何将一张大图切分为多张小图,以使用并行计算技术处理这些数据。本文介绍的算法Spinner同时考虑了数据之间的相关性和性能;它将相关的数据聚合在一起(High Locality),并且保持较好的平衡(Balance)。Spinner还具备较好的适应性,当数据集发生变化时,或者当计算环境发生变化时,Spinner能够较好的适应这些变化。
3. "SoftSKU: Optimizing Server Architectures for Microservice Diversity @Scale", written by A. Sriraman, A. Dhanotia, T. F. Wenisch .
小水滴的推荐理由:随着业务的快速增长,服务器端承载的业务逻辑也变得非常复杂。从业务逻辑的代码实现与测试,到负载平衡调优(Load Balancing and Optimization),系统失败恢复(Failure Recovery)等,每个功能模块都需要大量地开发人员支撑。为了减轻开发和维护的难度,业界提出了一种新的软件设计模式,Micro-service。在这种模式下,复杂的业务逻辑被拆分为许多个micro-service。每个micro-service逻辑简单清晰,体量非常小。这种开发模式实际上是将复杂的业务逻辑转换成了复杂的,micro-service之间的逻辑关系。因此,如何管理这么多的micro-service成为了一个重要的问题。在这篇文章中,Facebook给出了他们的解决方案。
4. "Deep Learning Inference in Facebook Data Centers: Characterization, Performance Optimizations and Hardware Implications", written by J. Park, M. Naumov, P. Basu, S. Deng, A. Kalaiah, D. Khudia, J. Law, P. Malani, A. Malevich, S. Nadathur, J. Pino, M. Schatz, A. Sidorov, V. Sivakumar, A. Tulloch, X. Wang, Y. Wu, H. Yuen, U. Diril, D. Dzhulgakov, K. Hazelwood, B. Jia, Y. Jia, L. Qiao, V. Rao, N. Rotem, S. Yoo, M. Smelyanskiy.
小水滴的推荐理由:这篇文章指出了未来深度学习Deep Learning (或者机器学习Machine Learning)在性能优化方面的一个发展方向,即硬件/软件相结合的优化。因为Facebook有着大量的用户数据,所以,机器学习技术对于Facebook至关重要,是否能精准的预测出用户行为是Facebook的核心价值所在。精度与性能是机器学习的两个紧密相连的重要指标。这篇论文通过收集分析Deep Learning过程的特性和特征,讨论了在性能、精度和软件设计三个方面的挑战,并给出了对于软件/硬件相结合发展方向的思考。
5. "Machine Learning at Facebook: Understanding Inference at the Edge", written by C. Wu, D. Brooks, K. Chen, D. Chen, S. Choudhury, M. Dukhan, K. Hazelwood, E. Isaac, Y. Jia, B. Jia, T. Leyvand, H. Lu, Y. Lu, L. Qiao, B. Reagen, J. Spisak, F. Sun, A. Tulloch, P. Vajda, X. Wang, Y. Wang, B. Wasti, Y. Wu, R. Xian, S. Yoo, P. Zhang.
小水滴的推荐理由:机器学习是Facebook理解用户行为的一个重要技术手段。目前,机器学习技术还存在着多种重要的挑战。其一,机器学习的训练过程计算量非常大,对硬件环境要求高;其二,对于不同的学习目的,机器学习的数据集和训练过程各不相同。面对这两项挑战,Facebook采用了一项技术:Inference at the Edge。与Edge Computing(边缘计算)和Offloading Computing的思想类似,这项Inference at the Edge技术将部分Inference的计算任务推至移动端完成,从而避免了将数据传输至数据中心,再由计算中心处理完成这个过程。一个具体的例子是,当手机拍摄一张照片后,安装在手机端的Facebook应用程序就能处理这张照片。这篇论文论述了这项技术存在的挑战以及Facebook的解决思路。例如:当移动端计算能力不高时,如何合理的分配任务至移动端?移动端的硬件软件环境各不相同,应用开发存在困难。当移动端处理能力不强时,如何寻找处理性能与处理精度的平衡点也是一个问题。
6. "Rosetta: Large Scale System for Text Detection and Recognition in Images", written by F. Borisyuk, A. Gordo, V. Sivakumar.
小水滴的推荐理由:这是一篇阐述Facebook如何使用Rasetta系统,从用户图片中识别文字的论文。从图片中识别文字,又名OCR(Optical Character Recognition),是一项重要的机器学习应用。OCR整个过程可分为训练和预测两个部分。在训练阶段,Facebook使用Faster-RCNN 模型训练数据;在预测阶段,Facebook利用了大规模的分布式系统处理用户日常上传的图片,并将识别出的文字信息保存在数据库RocksDB中,以便做进一步的分析和索引处理。
7. "SVE: Distributed Video Processing at Facebook Scale", written by Q. Huang, P. Ang, P. Knowles, T. Nykiel, I. Tverdokhlib, A. Yajurvedi, P. Dapolito IV, X. Yan, M. Bykov, C. Liang, M. Talwar, A. Mathur, S. Kulkarni, M. Burke, W. Lloyd .
小水滴的推荐理由:这是一篇论述Facebook的分布式视频处理系统。Facebook每天接受来自于用户的海量视频。众所周知,视频的上传和处理是一个非常复杂的过程,它需要占用系统大量的网络和计算资源。为了加快视频的处理,Facebook的系统主要在三个方面做了优化。其一,当视频正在上传时,后台已经开始处理已上传的视频内容。其二,一个视频被切分为多个小段视频;这些小段的视频相互独立,所以,它们会被并行处理。其三,在处理完成后,这些小段视频被并行的存入存储系统中,无需将它们合并成一个完成的视频文件。视频数据的拆分固然能加快数据处理的速度,然而,另一方面,它也增加了数据之间的复杂度。在该解决方案中,Facebook采用了有向无环图(Directed Acyclic Graph (DAG))来建立小段视频数据之间的逻辑关系,以及帮助开发人员完成数据处理的开发和运行工作。因为整个视频数据被拆分为小段,而且每个小段数据都有冗余备份,所以,自然地,该系统也提高了数据容错的能力。
8. "Realtime Data Processing at Facebook", written by G. J. Chen, J. Wiener, S. Iyer, A. Jaiswal, R. Lei, N. Simha, W. Wang, K. Wilfong, T. Williamson, S. Yilmaz .
小水滴的推荐理由:与其他论文相比,这篇文章更侧重于对于实时处理系统的思考,这也是小水滴推荐的一个重要理由。这篇论文指出了在设计实时数据处理系统时应考虑的五个重要方面:可用性、性能、容错、可扩展性、和正确性。基于这五个重要方面,论文继续分析了实时数据处理系统中的一些重要环节。例如,编程语言的选择(Language Paradigm)、数据传输与共享的方式(Data Transfer)、数据处理的方法(Processing Semantics)、在处理过程中状态的保存机制(State-saving Mechanism)、以及数据的再次处理(Reprocessing)问题等。所以,小水滴认为,这是一篇站在系统设计角度分析讨论问题的、价值非常高的文章。
9. "Robotron: Top-down Network Management at Facebook Scale", written by Y. E. Sung, X. Tie, S. H.Y. Wong, J. H. Zeng.
小水滴的推荐理由:为了保持产品运行的稳定性,有效合理的网络管理是一项不可缺少的工作。许多企业采用手工操作的方式维护网络,然而,手工操作已无法满足Facebook的需求。因此,Facebook开发了Robotron系统,帮助开发人员更高效的管理网络系统。Robotron采用自顶向下的方法管理网络,它能够简化操作流程,降低操作失误的风险,以及监控网络运行的状态等。Robotron对每个网络设备建立数据模型,并使用分层的设计方法,逐层向上提供服务。
10. "Canopy: An End-to-End Performance Tracing and Analysis System", written by J. Kaldor, J. Mace, M. Bejda, E. Gao, W. Kuropatwa, J. O’Neill, K. W. Ong, B. Schaller, P. Shan, B. Viscomi, V. Venkataraman, K. Veeraraghavan, Y. J. Song .
小水滴的推荐理由:这是一篇论述Facebook系统分析的文章。系统追踪和分析是一种常见的系统优化方法的一部分。为了确定系统的健康程度以及检测缺陷,开发人员往往会开发一套系统追踪和分析的系统,以便于及时发现与修正系统的缺陷。在这篇论文中,Facebook开发了Canopy来解决三个关键的技术难点。其一,Facebook运行着大量的、不同种类的服务,实时跟踪和分析这些服务的数据相当困难;其二,Canopy为开发人员提供了交互接口,以便于开发人员随时分析查看所收集的数据;其三,当数据采集后,Canopy可为用户提供订制服务。从整体上看,Canopy实现了几个关键的技术环节。它们是:如何采集跟踪数据(Instrumentation),对采集数据建立模型(Trace Model),特征提取(Feature Extraction),和数据查询与可视化(Query and Visualization)。

推荐书籍

1. "Introduction to Algorithm", 3rd edition, written by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, The MIT Press, 2009. ISBN: 9780262033848, 978-0262033848.
2. "Operating Systems: Internals and Design Principles", 9th edition, written by William Stallings, Pearson, 2017. ISBN: 0134670957, 978-0134670959.
3. "Operating System Concepts", 10th edition, written by Abraham Silberschatz, Wiley, 2018. ISBN: 1119456339, 978-1119456339.
4. "Modern Operating Systems", 4th edition, written by Andrew S. Tanenbaum, Herbert Bos, Pearson, 2014. ISBN: 013359162X, 978-0133591620.
5. "Compilers: Principles, Techniques, and Tools", 2nd edition, written by Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Addison Wesley, 2006. ISBN: 0321486811, 978-0321486813.
6. "Discrete Mathematics and Its Applications", 7th edition, written by Kenneth H Rosen, McGraw-Hill Education, 2011. ISBN: 0073383090, 978-0073383095.
7. "Computer Organization and Design: The Hardware/Software Interface", 4th edition, written by David A. Patterson and John L. Hennessy, Morgan Kaufmann, 2011. ISBN: 0123747503, 978-0123747501.
8. "Computer Architecture: A Quantitative Approach", 6th edition, written by John L. Hennessy and David A. Patterson, Morgan Kaufmann, 2017. ISBN: 0128119055, 978-0128119051.
9. "Artificial Intelligence: A Modern Approach", 3rd edition, written by Stuart Russell, Pearson Education, 2015. ISBN: 9789332543515, 978-9332543515.
10. "Concrete Mathematics: A Foundation for Computer Science", 2nd edition, written by Ronald L. Graham, Donald E. Knuth, Oren Patashnik, Addison-Wesley Professional, 1994. ISBN: 0201558025, 978-0201558029.
11. "Computer Systems: A Programmer's Perspective", 3rd edition, written by Randal E. Bryant and David R. O'Hallaron, Pearson, 2015. ISBN: 9780134092669, 978-0134092669.
12. "Mathematics for Computer Science", written by Eric Lehman, Thomson Leighton, and Albert Meyer, 2017.
13. "Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Engineering", written by Jean Gallier and Jocelyn Quaintance, 2019.

兴趣读物

1. "The New Turing Omnibus: Sixty-Six Excursions in Computer Science", written by A. K. Dewdney, Holt Paperbacks, 1993. ISBN: 0805071660, 978-0805071665.
2. "Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers", written by J. MacCormick and C. Bishop, Princeton University, 2013. ISBN: 9780691158198, 978-0691158198.

图灵奖获奖者(Turing Award Winners)

国际会议时间表

Copyright  2019 Little Waterdrop, LLC. All Rights Reserved.