The Go Programming Language


Alan A.A. Donovan - 2015
    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. The Go Programming Language 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++. 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. 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. 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.

The Rust Programming Language


Steve Klabnik
    This is the undisputed go-to guide to Rust, written by two members of the Rust core team, with feedback and contributions from 42 members of the community. The book assumes that you’ve written code in another programming language but makes no assumptions about which one, meaning the material is accessible and useful to developers from a wide variety of programming backgrounds.Known by the Rust community as "The Book," The Rust Programming Language includes concept chapters, where you’ll learn about a particular aspect of Rust, and project chapters, where you’ll apply what you’ve learned so far to build small programs.The Book opens with a quick hands-on project to introduce the basics then explores key concepts in depth, such as ownership, the type system, error handling, and fearless concurrency. Next come detailed explanations of Rust-oriented perspectives on topics like pattern matching, iterators, and smart pointers, with concrete examples and exercises--taking you from theory to practice.The Rust Programming Language will show you how to: Grasp important concepts unique to Rust like ownership, borrowing, and lifetimes Use Cargo, Rust’s built-in package manager, to build and maintain your code, including downloading and building dependencies Effectively use Rust’s zero-cost abstractions and employ your ownYou’ll learn to develop reliable code that’s speed and memory efficient, while avoiding the infamous and arcane programming pitfalls common at the systems level. When you need to dive down into lower-level control, this guide will show you how without taking on the customary risk of crashes or security holes and without requiring you to learn the fine points of a fickle toolchain.You’ll also learn how to create command line programs, build single- and multithreaded web servers, and much more.The Rust Programming Language fully embraces Rust’s potential to empower its users. This friendly and approachable guide will help you build not only your knowledge of Rust but also your ability to program with confidence in a wider variety of domains.

Modern Database Management


Jeffrey A. Hoffer - 1994
    Intended for professional development programs in introductory database management.

Numerical Linear Algebra


Lloyd N. Trefethen - 1997
    The clarity and eloquence of the presentation make it popular with teachers and students alike. The text aims to expand the reader's view of the field and to present standard material in a novel way. All of the most important topics in the field are covered with a fresh perspective, including iterative methods for systems of equations and eigenvalue problems and the underlying principles of conditioning and stability. Presentation is in the form of 40 lectures, which each focus on one or two central ideas. The unity between topics is emphasized throughout, with no risk of getting lost in details and technicalities. The book breaks with tradition by beginning with the QR factorization - an important and fresh idea for students, and the thread that connects most of the algorithms of numerical linear algebra.

The Visual Display of Quantitative Information


Edward R. Tufte - 1983
    Theory and practice in the design of data graphics, 250 illustrations of the best (and a few of the worst) statistical graphics, with detailed analysis of how to display data for precise, effective, quick analysis. Design of the high-resolution displays, small multiples. Editing and improving graphics. The data-ink ratio. Time-series, relational graphics, data maps, multivariate designs. Detection of graphical deception: design variation vs. data variation. Sources of deception. Aesthetics and data graphical displays. This is the second edition of The Visual Display of Quantitative Information. Recently published, this new edition provides excellent color reproductions of the many graphics of William Playfair, adds color to other images, and includes all the changes and corrections accumulated during 17 printings of the first edition.

The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography


Simon Singh - 1999
    From Mary, Queen of Scots, trapped by her own code, to the Navajo Code Talkers who helped the Allies win World War II, to the incredible (and incredibly simple) logisitical breakthrough that made Internet commerce secure, The Code Book tells the story of the most powerful intellectual weapon ever known: secrecy.Throughout the text are clear technical and mathematical explanations, and portraits of the remarkable personalities who wrote and broke the world’s most difficult codes. Accessible, compelling, and remarkably far-reaching, this book will forever alter your view of history and what drives it. It will also make you wonder how private that e-mail you just sent really is.

They Say / I Say: The Moves That Matter in Academic Writing


Gerald Graff - 2006
    In addition to explaining the basic moves, this book provides writing templates that show students explicitly how to make these moves in their own writing.

Applied Cryptography: Protocols, Algorithms, and Source Code in C


Bruce Schneier - 1993
    … The book the National Security Agency wanted never to be published." –Wired Magazine "…monumental… fascinating… comprehensive… the definitive work on cryptography for computer programmers…" –Dr. Dobb's Journal"…easily ranks as one of the most authoritative in its field." —PC Magazine"…the bible of code hackers." –The Millennium Whole Earth CatalogThis new edition of the cryptography classic provides you with a comprehensive survey of modern cryptography. The book details how programmers and electronic communications professionals can use cryptography—the technique of enciphering and deciphering messages-to maintain the privacy of computer data. It describes dozens of cryptography algorithms, gives practical advice on how to implement them into cryptographic software, and shows how they can be used to solve security problems. Covering the latest developments in practical cryptographic techniques, this new edition shows programmers who design computer applications, networks, and storage systems how they can build security into their software and systems. What's new in the Second Edition? * New information on the Clipper Chip, including ways to defeat the key escrow mechanism * New encryption algorithms, including algorithms from the former Soviet Union and South Africa, and the RC4 stream cipher * The latest protocols for digital signatures, authentication, secure elections, digital cash, and more * More detailed information on key management and cryptographic implementations

Computational Fluid Dynamics


John D. Anderson Jr. - 1995
    It can also serve as a one-semester introductory course at the beginning graduate level, as a useful precursor to a more serious study of CFD in advanced books. It is presented in a very readable, informal, enjoyable style.

Quantum Theory


David Bohm - 1951
    Although it presents the main ideas of quantum theory essentially in nonmathematical terms, it follows these with a broad range of specific applications that are worked out in considerable mathematical detail. Addressed primarily to advanced undergraduate students, the text begins with a study of the physical formulation of the quantum theory, from its origin and early development through an analysis of wave vs. particle properties of matter. In Part II, Professor Bohm addresses the mathematical formulation of the quantum theory, examining wave functions, operators, Schrödinger's equation, fluctuations, correlations, and eigenfunctions.Part III takes up applications to simple systems and further extensions of quantum theory formulation, including matrix formulation and spin and angular momentum. Parts IV and V explore the methods of approximate solution of Schrödinger's equation and the theory of scattering. In Part VI, the process of measurement is examined along with the relationship between quantum and classical concepts.Throughout the text, Professor Bohm places strong emphasis on showing how the quantum theory can be developed in a natural way, starting from the previously existing classical theory and going step by step through the experimental facts and theoretical lines of reasoning which led to replacement of the classical theory by the quantum theory.

Probability Theory: The Logic of Science


E.T. Jaynes - 1999
    It discusses new results, along with applications of probability theory to a variety of problems. The book contains many exercises and is suitable for use as a textbook on graduate-level courses involving data analysis. Aimed at readers already familiar with applied mathematics at an advanced undergraduate level or higher, it is of interest to scientists concerned with inference from incomplete information.

The Math Book: From Pythagoras to the 57th Dimension, 250 Milestones in the History of Mathematics


Clifford A. Pickover - 2009
    Beginning millions of years ago with ancient “ant odometers” and moving through time to our modern-day quest for new dimensions, it covers 250 milestones in mathematical history. Among the numerous delights readers will learn about as they dip into this inviting anthology: cicada-generated prime numbers, magic squares from centuries ago, the discovery of pi and calculus, and the butterfly effect. Each topic gets a lavishly illustrated spread with stunning color art, along with formulas and concepts, fascinating facts about scientists’ lives, and real-world applications of the theorems.

A First Course in Probability


Sheldon M. Ross - 1976
    A software diskette provides an easy-to-use tool for students to derive probabilities for binomial.

Principles of Quantum Mechanics


Ramamurti Shankar - 1980
    The postulates of quantum mechanics and the mathematical underpinnings are discussed in a clear, succinct manner." (American Scientist)"No matter how gently one introduces students to the concept of Dirac's bras and kets, many are turned off. Shankar attacks the problem head-on in the first chapter, and in a very informal style suggests that there is nothing to be frightened of." (Physics Bulletin)Reviews of the Second Edition:"This massive text of 700 and odd pages has indeed an excellent get-up, is very verbal and expressive, and has extensively worked out calculational details---all just right for a first course. The style is conversational, more like a corridor talk or lecture notes, though arranged as a text. ... It would be particularly useful to beginning students and those in allied areas like quantum chemistry." (Mathematical Reviews)R. Shankar has introduced major additions and updated key presentations in this second edition of Principles of Quantum Mechanics. New features of this innovative text include an entirely rewritten mathematical introduction, a discussion of Time-reversal invariance, and extensive coverage of a variety of path integrals and their applications. Additional highlights include:- Clear, accessible treatment of underlying mathematics- A review of Newtonian, Lagrangian, and Hamiltonian mechanics- Student understanding of quantum theory is enhanced by separate treatment of mathematical theorems and physical postulates- Unsurpassed coverage of path integrals and their relevance in contemporary physicsThe requisite text for advanced undergraduate- and graduate-level students, Principles of Quantum Mechanics, Second Edition is fully referenced and is supported by many exercises and solutions. The book's self-contained chapters also make it suitable for independent study as well as for courses in applied disciplines.

Network Science


Albert-László Barabási