计算机科学
Unix Network Programming, Volume 1 豆瓣
作者: W. Richard Stevens / Bill Fenner Addison-Wesley Professional 2003 - 11
This is THE guide to UNIX network programming APIs. Whether you write Web servers, client/server applications, or any other network software, you need to understand networking APIS-especially sockets in greater detail than ever before. You need UNIX Network Programming, Volume 1, Third Edition. In this book, the Authors offer unprecedented, start-to-finish guidance on making the most of sockets, the de facto standard for UNIX network programming with APIs - as well as extensive coverage of the X/Open Transport Interface (XTI).
Beej's Guide to Network Programming 豆瓣
作者: Brian "Beej Jorgensen" Hall Jorgensen Publishing 2011 - 10
Beej's Guide to Network Programming has been one of the top socket programming guides on the Internet for the last 15 years, and it's now for the first time available as a lovingly bound paperback book! The Guide is designed to irreverently ease your first steps into Internet Sockets programming in C. Starting from the ground up, it provides complete examples of simple clients and servers supporting both IPv6 and IPv4.
Once you get through the tutorial section of the book, Part Two contains a handy-dandy reference section which helps prevent the book from becoming simple dead weight on your shelf once you've devoured it.
The book focuses on the C programming language in Unix-like environments, but Windows users can still glean relevant information from its pages. Also, once you understand socket programming in C, you'll much more easily understand it in many other languages as well.
算法新解 豆瓣
作者: 刘新宇 人民邮电出版社 2016
本书分4 部分,同时用函数式和传统方法介绍主要的基本算法和数据结构。数据结构部分包括二叉树、红黑树、AVL 树、Trie、Patricia、后缀树、B 树、二叉堆、二项式堆、斐波那契堆、配对堆、队列、序列等;基本算法部分包括各种排序算法、序列搜索算法、字符串匹配算法(KMP 等)、深度优先与广度优先搜索算法、贪心算法以及动态规划。
本书适合软件开发人员、编程和算法爱好者,以及高校学生阅读参考。
Competitive Programming 3 豆瓣
Competitive Programming
作者: Steven Halim lulu 2013 - 5
This is the third edition of Competitive Programming book.
This is the A5 paperback version. This is the intended version for typical audience, i.e. young programmers of age 15-25. If you need a larger 8.25 * 10.75 inch version (about the size of A4, or 2 x A5), please go to: http://www.lulu.com/shop/steven-halim/competitive-programming-3-hardcover/hardcover/product-21031840.html
A much more detailed information about this book is available at: https://cpbook.net
2018年1月3日 在读
开本很赞(字小且边距窄), 每个算法都有C++代码(配了comment), 很适合配合LeetCode刷题, 前提是同时复习CLRS.
C++ Algorithms ICPC 计算机科学 编程
Database System Concepts 豆瓣
8.4 (5 个评分) 作者: Abraham Silberschatz / Henry F. Korth McGraw-Hill Education 2010 - 3
"Database System Concepts" by Silberschatz, Korth and Sudarshan is now in its 6th edition and is one of the cornerstone texts of database education. It presents the fundamental concepts of database management in an intuitive manner geared toward allowing students to begin working with databases as quickly as possible. The text is designed for a first course in databases at the junior/senior undergraduate level or the first year graduate level. It also contains additional material that can be used as supplements or as introductory material for an advanced course. Because the authors present concepts as intuitive descriptions, a familiarity with basic data structures, computer organization, and a high-level programming language are the only prerequisites. Important theoretical results are covered, but formal proofs are omitted. In place of proofs, figures and examples are used to suggest why a result is true.
Distributed Algorithms 豆瓣
作者: Nancy A. Lynch Morgan Kaufmann 1996 - 3
In "Distributed Algorithms", Nancy Lynch provides a blueprint for designing, implementing, and analyzing distributed algorithms. She directs her book at a wide audience, including students, programmers, system designers, and researchers. "Distributed Algorithms" contains the most significant algorithms and impossibility results in the area, all in a simple automata-theoretic setting. The algorithms are proved correct, and their complexity is analyzed according to precisely defined complexity measures. The problems covered include resource allocation, communication, consensus among distributed processes, data consistency, deadlock detection, leader election, global snapshots, and many others. The material is organized according to the system model-first by the timing model and then by the interprocess communication mechanism. The material on system models is isolated in separate chapters for easy reference. The presentation is completely rigorous, yet is intuitive enough for immediate comprehension. This book familiarizes readers with important problems, algorithms, and impossibility results in the area: readers can then recognize the problems when they arise in practice, apply the algorithms to solve them, and use the impossibility results to determine whether problems are unsolvable. The book also provides readers with the basic mathematical tools for designing new algorithms and proving new impossibility results. In addition, it teaches readers how to reason carefully about distributed algorithms - to model them formally, devise precise specifications for their required behavior, prove their correctness, and evaluate their performance with realistic measures.
Discrete Mathematics 豆瓣
作者: László Lovász / József Pelikán Springer 2003 - 1
Aimed at undergraduate mathematics and computer science students, this book is an excellent introduction to a lot of problems of discrete mathematics. It discusses a number of selected results and methods, mostly from areas of combinatorics and graph theory, and it uses proofs and problem solving to help students understand the solutions to problems. Numerous examples, figures, and exercises are spread throughout the book.
2017年9月7日 在读
学了算法感觉各种巧妙思路, 代数到几何, 抽象到具体
计算机科学 数学
An Invitation to Discrete Mathematics 豆瓣
作者: Jiri Matousek / Jaroslav Nesetril Oxford University Press, USA 2008
This book is a clear and self-contained introduction to discrete mathematics. Aimed mainly at undergraduate and early graduate students of mathematics and computer science, it is written with the goal of stimulating interest in mathematics and an active, problem-solving approach to the presented material. The reader is led to an understanding of the basic principles and methods of actually doing mathematics (and having fun at that). Being more narrowly focused than many discrete mathematics textbooks and treating selected topics in an unusual depth and from several points of view, the book reflects the conviction of the authors, active and internationally renowned mathematicians, that the most important gain from studying mathematics is the cultivation of clear and logical thinking and habits useful for attacking new problems. More than 400 enclosed exercises with a wide range of difficulty, many of them accompanied by hints for solution, support this approach to teaching. The readers will appreciate the lively and informal style of the text accompanied by more than 200 drawings and diagrams.Specialists in various parts of science with a basic mathematical education wishing to apply discrete mathematics in their field can use the book as a useful source, and even experts in combinatorics may occasionally learn from pointers to research literature or from presentations of recent results. Invitation to Discrete Mathematics should make a delightful reading both for beginners and for mathematical professionals. The main topics include: elementary counting problems, asymptotic estimates, partially ordered sets, basic graph theory and graph algorithms, finite projective planes, elementary probability and the probabilistic method, generating functions, Ramsey's theorem, and combinatorial applications of linear algebra. General mathematical notions going beyond the high-school level are thoroughly explained in the introductory chapter. An appendix summarizes the undergraduate algebra needed in some of the more advanced sections of the book.
The Go Programming Language 豆瓣 Goodreads
9.6 (10 个评分) 作者: Brian W. Kernighan / Alan Donovan Addison-Wesley Professional 2015 - 11
Go is an open-source programming language that makes it easy to build clean, reliable, and efficient software. It has been winning converts from dynamic language enthusiasts as well as users of traditional compiled languages. The former appreciate the robustness and efficiency that Go's lightweight type system brings to their code; the latter find Go's simplicity and fast tools a refreshing change. Thanks to its well-designed standard libraries and its excellent support for concurrent programming, Go is fast becoming the language of choice for distributed systems.<br /> <br /><strong>The Go Programming Language</strong> is the definitive book on Go for the working programmer. It assumes no prior knowledge of Go, nor any other specific programming language, so you'll find it an accessible guide whether you come from JavaScript, Ruby, Python, Java, or C++.<br /> <br />The book will quickly get you started using Go effectively from the beginning, and by the end, you will know how to use it well to write clear, idiomatic and efficient programs to solve real-world problems. You'll understand not just how to use its standard libraries, but how they work, and how to apply the same design techniques to your own projects.<br /> <br />The earlier chapters will introduce you to the basic concepts of Go programming---numbers, strings, functions---while at the same time presenting important computer science concepts like recursion, and useful examples of graphics, UTF-8, and error handling. The chapters on methods and interfaces will show you a new way to think about object-oriented programming; the chapter on concurrency explains why concurrency is so important in modern programming, and how Go helps you handle it well. You'll also learn about Go's pragmatic but effective approach to testing; how to build, test, and manage projects using the go tool, and the art of metaprogramming using reflection.<br /> <br />The book contains hundreds of interesting and practical examples that cover the whole language and a wide range of applications. The code samples from the book are available for download from gopl.io.
Data Mining 豆瓣
作者: Jiawei Han / Micheline Kamber Morgan Kaufmann 2011 - 7
The increasing volume of data in modern business and science calls for more complex and sophisticated tools. Although advances in data mining technology have made extensive data collection much easier, it's still always evolving and there is a constant need for new techniques and tools that can help us transform this data into useful information and knowledge. Since the previous edition's publication, great advances have been made in the field of data mining. Not only does the third of edition of Data Mining: Concepts and Techniques continue the tradition of equipping you with an understanding and application of the theory and practice of discovering patterns hidden in large data sets, it also focuses on new, important topics in the field: data warehouses and data cube technology, mining stream, mining social networks, and mining spatial, multimedia and other complex data. Each chapter is a stand-alone guide to a critical topic, presenting proven algorithms and sound implementations ready to be used directly or with strategic modification against live data. This is the resource you need if you want to apply today's most powerful data mining techniques to meet real business challenges.
* Presents dozens of algorithms and implementation examples, all in pseudo-code and suitable for use in real-world, large-scale data mining projects. * Addresses advanced topics such as mining object-relational databases, spatial databases, multimedia databases, time-series databases, text databases, the World Wide Web, and applications in several fields. *Provides a comprehensive, practical look at the concepts and techniques you need to get the most out of your data
From Mathematics to Generic Programming 豆瓣
作者: Alexander A. Stepanov / Daniel E. Rose Addison-Wesley Professional 2011 - 9
In this substantive yet accessible book, pioneering software designer Alexander Stepanov and his colleague Daniel Rose illuminate the principles of generic programming and the mathematical concept of abstraction on which it is based, helping you write code that is both simpler and more powerful.
If you’re a reasonably proficient programmer who can think logically, you have all the background you’ll need. Stepanov and Rose introduce the relevant abstract algebra and number theory with exceptional clarity. They carefully explain the problems mathematicians first needed to solve, and then show how these mathematical solutions translate to generic programming and the creation of more effective and elegant code. To demonstrate the crucial role these mathematical principles play in many modern applications, the authors show how to use these results and generalized algorithms to implement a real-world public-key cryptosystem.
As you read this book, you’ll master the thought processes necessary for effective programming and learn how to generalize narrowly conceived algorithms to widen their usefulness without losing efficiency. You’ll also gain deep insight into the value of mathematics to programming–insight that will prove invaluable no matter what programming languages and paradigms you use.
You will learn about
How to generalize a four thousand-year-old algorithm, demonstrating indispensable lessons about clarity and efficiency
Ancient paradoxes, beautiful theorems, and the productive tension between continuous and discrete
A simple algorithm for finding greatest common divisor (GCD) and modern abstractions that build on it
Powerful mathematical approaches to abstraction
How abstract algebra provides the idea at the heart of generic programming
Axioms, proofs, theories, and models: using mathematical techniques to organize knowledge about your algorithms and data structures
Surprising subtleties of simple programming tasks and what you can learn from them
How practical implementations can exploit theoretical knowledge
Programming in Scala, Third Edition 豆瓣
作者: Martin Odersky / Lex Spoon Artima Press 2016 - 5
This third edition brings the entire book, up to date, adding new material to cover features appearing in Scala versions 2.9 through Scala 2.12, including:
String interpolation
Functional Futures
Implicit classes
Defining new AnyVals
Typeclasses and context bounds
The latest style recommendations
SAM support in Scala 2.12
Inside the C++ Object Model 豆瓣 Goodreads
Inside the C++ Object Model
作者: [美] Stanley B·Lippman Addison-Wesley Professional 1996 - 5
Inside the C++ Object Model focuses on the underlying mechanisms that support object-oriented programming within C++: constructor semantics, temporary generation, support for encapsulation, inheritance, and "the virtuals"--virtual functions and virtual inheritance. This book shows how your understanding the underlying implementation models can help you code more efficiently and with greater confidence. Lippman dispells the misinformation and myths about the overhead and complexity associated with C++, while pointing out areas in which costs and trade offs, sometimes hidden, do exist. He then explains how the various implementation models arose, points out areas in which they are likely to evolve, and why they are what they are. He covers the semantic implications of the C++ object model and how that model affects your programs. Highlights *Explores the program behavior implicit in the C++ Object Model's support of object-oriented programming. *Explains the basic implementation of the object-oriented features and the trade offs implicit in those features. *Examines the impact on performance in terms of program transformation.* Provides abundant program examples, diagrams, and performance measurements to relate object-oriented concepts to the underlying object model. If you are a C++ programmer who desires a fuller understanding of what is going on "under the hood," then Inside the C++ Object Model is for you! Get a value-added service! Try out all the examples from this book at www.codesaw.com. CodeSaw is a free online learning tool that allows you to experiment with live code from your book right in your browser. 0201834545B11102003
机器学习 豆瓣
8.5 (40 个评分) 作者: 周志华 清华大学出版社 2016 - 1
机器学习是计算机科学与人工智能的重要分支领域. 本书作为该领域的入门教材,在内容上尽可能涵盖机器学习基础知识的各方面。 为了使尽可能多的读者通过本书对机器学习有所了解, 作者试图尽可能少地使用数学知识. 然而, 少量的概率、统计、代数、优化、逻辑知识似乎不可避免. 因此, 本书更适合大学三年级以上的理工科本科生和研究生, 以及具有类似背景的对机器学 习感兴趣的人士. 为方便读者, 本书附录给出了一些相关数学基础知识简介.
全书共16 章,大致分为3 个部分:第1 部分(第1~3 章)介绍机器学习的基础知识;第2 部分(第4~10 章)讨论一些经典而常用的机器学习方法(决策树、神经网络、支持向量机、贝叶斯分类器、集成学习、聚类、降维与度量学习);第3 部分(第11~16 章)为进阶知识,内容涉及特征选择与稀疏学习、计算学习理论、半监督学习、概率图模型、规则学习以及强化学习等.前3章之外的后续各章均相对独立, 读者可根据自己的兴趣和时间情况选择使用. 根据课时情况, 一个学期的本科生课程可考虑讲授前9章或前10章; 研究生课程则不妨使用全书.
书中除第1章外, 每章都给出了十道习题. 有的习题是帮助读者巩固本章学习, 有的是为了引导读者扩展相关知识. 一学期的一般课程可使用这些习题, 再辅以两到三个针对具体数据集的大作业. 带星号的习题则有相当难度, 有些并无现成答案, 谨供富有进取心的读者启发思考.
本书可作为高等院校计算机、自动化及相关专业的本科生或研究生教材,也可供对机器学习感兴趣的研究人员和工程技术人员阅读参考。
Transaction Processing 豆瓣
作者: Jim Gray / Andreas Reuter Morgan Kaufmann 1992 - 9
The key to client/server computing. Transaction processing techniques are deeply ingrained in the fields of databases and operating systems and are used to monitor, control and update information in modern computer systems. This book will show you how large, distributed, heterogeneous computer systems can be made to work reliably. Using transactions as a unifying conceptual framework, the authors show how to build high-performance distributed systems and high-availability applications with finite budgets and risk. The authors provide detailed explanations of why various problems occur as well as practical, usable techniques for their solution. Throughout the book, examples and techniques are drawn from the most successful commercial and research systems. Extensive use of compilable C code fragments demonstrates the many transaction processing algorithms presented in the book. The book will be valuable to anyone interested in implementing distributed systems or client/server architectures.
自己动手写Java虚拟机 豆瓣
作者: 张秀宏 2016 - 6
Java虚拟机非常复杂,要想真正理解它的工作原理,最好的方式就是自己动手编写一个!
本书是继《深入理解Java虚拟机》之后的又一经典著作,它一方面遵循《Java虚拟机规范》,一方面又独辟蹊径,不仅能让Java虚拟机的学习变得更加简单和有趣,而且能让你对Java虚拟机的原理认识更深入和更深刻!
本书摒弃了传统的以解读枯燥的Java虚拟机规范文档和分析繁琐的Java虚拟机源代码的方式来讲解Java虚拟机,取而代之的是,以实践的方式,引导读者如何从零开始构建和实现一个Java虚拟机,整个过程不仅能让读者做到对Java虚拟机知其然而且知其所以然,还能屏蔽大量不必要的繁琐细节,体会到实现过程中的成就感,让学习过程更加轻松、愉悦和高效。更重要的是,这种方式能引导读者更深入地认识和掌握Java虚拟机的工作原理。
Algorithms 豆瓣 Goodreads
作者: Robert Sedgewick / Kevin Wayne Addison-Wesley Professional 2011 - 3
Essential Information about Algorithms and Data Structures A Classic Reference The latest version of Sedgewick,s best-selling series, reflecting an indispensable body of knowledge developed over the past several decades. Broad Coverage Full treatment of data structures and algorithms for sorting, searching, graph processing, and string processing, including fifty algorithms every programmer should know. See
Introduction to Algorithms, 3rd Edition 豆瓣 Goodreads
9.4 (7 个评分) 作者: Thomas H. Cormen / Charles E. Leiserson The MIT Press 2009 - 7
Some books on algorithms are rigorous but incomplete; others cover masses of material but lack rigor. Introduction to Algorithms uniquely combines rigor and comprehensiveness. The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigor.
The first edition became a widely used text in universities worldwide as well as the standard reference for professionals. The second edition featured new chapters on the role of algorithms, probabilistic analysis and randomized algorithms, and linear programming. The third edition has been revised and updated throughout. It includes two completely new chapters, on van Emde Boas trees and multithreaded algorithms, and substantial additions to the chapter on recurrences (now called "Divide-and-Conquer"). It features improved treatment of dynamic programming and greedy algorithms and a new notion of edge-based flow in the material on flow networks. Many new exercises and problems have been added for this edition.
As of the third edition, this textbook is published exclusively by the MIT Press.