Book picks similar to
Lambda Calculus with Types by Henk Barendregt
computer-science
mathematics
logic
math
Prisoner's Dilemma: John von Neumann, Game Theory, and the Puzzle of the Bomb
William Poundstone - 1992
Though the answers may seem simple, their profound implications make the prisoner's dilemma one of the great unifying concepts of science. Watching players bluff in a poker game inspired John von Neumann--father of the modern computer and one of the sharpest minds of the century--to construct game theory, a mathematical study of conflict and deception. Game theory was readily embraced at the RAND Corporation, the archetypical think tank charged with formulating military strategy for the atomic age, and in 1950 two RAND scientists made a momentous discovery.Called the prisoner's dilemma, it is a disturbing and mind-bending game where two or more people may betray the common good for individual gain. Introduced shortly after the Soviet Union acquired the atomic bomb, the prisoner's dilemma quickly became a popular allegory of the nuclear arms race. Intellectuals such as von Neumann and Bertrand Russell joined military and political leaders in rallying to the preventive war movement, which advocated a nuclear first strike against the Soviet Union. Though the Truman administration rejected preventive war the United States entered into an arms race with the Soviets and game theory developed into a controversial tool of public policy--alternately accused of justifying arms races and touted as the only hope of preventing them.A masterful work of science writing, Prisoner's Dilemma weaves together a biography of the brilliant and tragic von Neumann, a history of pivotal phases of the cold war, and an investigation of game theory's far-reaching influence on public policy today. Most important, Prisoner's Dilemma is the incisive story of a revolutionary idea that has been hailed as a landmark of twentieth-century thought.
Working with UNIX Processes
Jesse Storimer - 2011
Want to impress your coworkers and write the fastest, most efficient, stable code you ever have? Don't reinvent the wheel. Reuse decades of research into battle-tested, highly optimized, and proven techniques available on any Unix system.This book will teach you what you need to know so that you can write your own servers, debug your entire stack when things go awry, and understand how things are working under the hood.http://www.jstorimer.com/products/wor...
Bitcoin for the Befuddled
Conrad Barski - 2014
Already used by people and companies around the world, many forecast that Bitcoin could radically transform the global economy. The value of a bitcoin has soared from less than a dollar in 2011 to well over $1000 in 2013, with many spikes and crashes along the way. The rise in value has brought Bitcoin into the public eye, but the cryptocurrency still confuses many people. Bitcoin for the Befuddled covers everything you need to know about Bitcoin—what it is, how it works, and how to acquire, store, and use bitcoins safely and securely. You'll also learn about Bitcoin's history, its complex cryptography, and its potential impact on trade and commerce. The book includes a humorous, full-color comic explaining Bitcoin concepts, plus a glossary of terms for easy reference.
How to Prove It: A Structured Approach
Daniel J. Velleman - 1994
The book begins with the basic concepts of logic and set theory, to familiarize students with the language of mathematics and how it is interpreted. These concepts are used as the basis for a step-by-step breakdown of the most important techniques used in constructing proofs. To help students construct their own proofs, this new edition contains over 200 new exercises, selected solutions, and an introduction to Proof Designer software. No background beyond standard high school mathematics is assumed. Previous Edition Hb (1994) 0-521-44116-1 Previous Edition Pb (1994) 0-521-44663-5
Discrete and Combinatorial Mathematics
Ralph P. Grimaldi - 1985
The text offers a flexible organization, enabling instructors to adapt the book to their particular courses. The book is both complete and careful, and it continues to maintain its emphasis on algorithms and applications. Excellent exercise sets allow students to perfect skills as they practice. This new edition continues to feature numerous computer science applications-making this the ideal text for preparing students for advanced study.
Ethics in Information Technology
George W. Reynolds - 2002
This book offers an excellent foundation in ethical decision-making for current and future business managers and IT professionals.
Crypto: How the Code Rebels Beat the Government—Saving Privacy in the Digital Age
Steven Levy - 2001
From Stephen Levy—the author who made "hackers" a household word—comes this account of a revolution that is already affecting every citizen in the twenty-first century. Crypto tells the inside story of how a group of "crypto rebels"—nerds and visionaries turned freedom fighters—teamed up with corporate interests to beat Big Brother and ensure our privacy on the Internet. Levy's history of one of the most controversial and important topics of the digital age reads like the best futuristic fiction.
Design Patterns: Elements of Reusable Object-Oriented Software
Erich Gamma - 1994
Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk.
Logic: A Complete Introduction: Teach Yourself
Siu-Fan Lee - 2017
As well as looking at logic in theoretical terms the book considers its everyday uses and demonstrates how it has genuine practical applications. It will take you step by step through the most difficult concepts and is packed with exercises to help you consolidate your learning at every stage. Covering everything from syllogistic logic to logical paradoxes and even looking at logic in Alice in Wonderland, this is the only guide you will ever need.
Serious Cryptography: A Practical Introduction to Modern Encryption
Jean-Philippe Aumasson - 2017
You’ll learn about authenticated encryption, secure randomness, hash functions, block ciphers, and public-key techniques such as RSA and elliptic curve cryptography.You’ll also learn: - Key concepts in cryptography, such as computational security, attacker models, and forward secrecy - The strengths and limitations of the TLS protocol behind HTTPS secure websites - Quantum computation and post-quantum cryptography - About various vulnerabilities by examining numerous code examples and use cases - How to choose the best algorithm or protocol and ask vendors the right questionsEach chapter includes a discussion of common implementation mistakes using real-world examples and details what could go wrong and how to avoid these pitfalls. Whether you’re a seasoned practitioner or a beginner looking to dive into the field, Serious Cryptography will provide a complete survey of modern encryption and its applications.
Hands-On Machine Learning with Scikit-Learn and TensorFlow
Aurélien Géron - 2017
Now that machine learning is thriving, even programmers who know close to nothing about this technology can use simple, efficient tools to implement programs capable of learning from data. This practical book shows you how.By using concrete examples, minimal theory, and two production-ready Python frameworks—Scikit-Learn and TensorFlow—author Aurélien Géron helps you gain an intuitive understanding of the concepts and tools for building intelligent systems. You’ll learn how to use a range of techniques, starting with simple Linear Regression and progressing to Deep Neural Networks. If you have some programming experience and you’re ready to code a machine learning project, this guide is for you.This hands-on book shows you how to use:Scikit-Learn, an accessible framework that implements many algorithms efficiently and serves as a great machine learning entry pointTensorFlow, a more complex library for distributed numerical computation, ideal for training and running very large neural networksPractical code examples that you can apply without learning excessive machine learning theory or algorithm details
Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People
Aditya Y. Bhargava - 2015
The algorithms you'll use most often as a programmer have already been discovered, tested, and proven. If you want to take a hard pass on Knuth's brilliant but impenetrable theories and the dense multi-page proofs you'll find in most textbooks, this is the book for you. This fully-illustrated and engaging guide makes it easy for you to learn how to use algorithms effectively in your own programs.Grokking Algorithms is a disarming take on a core computer science topic. In it, you'll learn how to apply common algorithms to the practical problems you face in day-to-day life as a programmer. You'll start with problems like sorting and searching. As you build up your skills in thinking algorithmically, you'll tackle more complex concerns such as data compression or artificial intelligence. Whether you're writing business software, video games, mobile apps, or system utilities, you'll learn algorithmic techniques for solving problems that you thought were out of your grasp. For example, you'll be able to:Write a spell checker using graph algorithmsUnderstand how data compression works using Huffman codingIdentify problems that take too long to solve with naive algorithms, and attack them with algorithms that give you an approximate answer insteadEach carefully-presented example includes helpful diagrams and fully-annotated code samples in Python. By the end of this book, you will know some of the most widely applicable algorithms as well as how and when to use them.
Emergence: The Connected Lives of Ants, Brains, Cities, and Software
Steven Johnson - 2001
Explaining why the whole is sometimes smarter than the sum of its parts, Johnson presents surprising examples of feedback, self-organization, and adaptive learning. How does a lively neighborhood evolve out of a disconnected group of shopkeepers, bartenders, and real estate developers? How does a media event take on a life of its own? How will new software programs create an intelligent World Wide Web? In the coming years, the power of self-organization -- coupled with the connective technology of the Internet -- will usher in a revolution every bit as significant as the introduction of electricity. Provocative and engaging, Emergence puts you on the front lines of this exciting upheaval in science and thought.
Gödel's Theorem: An Incomplete Guide to Its Use and Abuse
Torkel Franzén - 2005
With exceptional clarity, Franz n gives careful, non-technical explanations both of what those theorems say and, more importantly, what they do not. No other book aims, as his does, to address in detail the misunderstandings and abuses of the incompleteness theorems that are so rife in popular discussions of their significance. As an antidote to the many spurious appeals to incompleteness in theological, anti-mechanist and post-modernist debates, it is a valuable addition to the literature." --- John W. Dawson, author of "Logical Dilemmas: The Life and Work of Kurt G del
Cryptography: A Very Short Introduction
Fred C. Piper - 2002
It explains what algorithms do, how they are used, the risks associated with using them, and why governments should be concerned. Important areas arehighlighted, such as Stream Ciphers, block ciphers, public key algorithms, digital signatures, and applications such as e-commerce. This book highlights the explosive impact of cryptography on modern society, with, for example, the evolution of the internet and the introduction of more sophisticatedbanking methods.