Book picks similar to
The Design of Approximation Algorithms by David P. Williamson
computer-science
algorithms
mathematics
cs
The Book of Why: The New Science of Cause and Effect
Judea Pearl - 2018
Today, that taboo is dead. The causal revolution, instigated by Judea Pearl and his colleagues, has cut through a century of confusion and established causality -- the study of cause and effect -- on a firm scientific basis. His work explains how we can know easy things, like whether it was rain or a sprinkler that made a sidewalk wet; and how to answer hard questions, like whether a drug cured an illness. Pearl's work enables us to know not just whether one thing causes another: it lets us explore the world that is and the worlds that could have been. It shows us the essence of human thought and key to artificial intelligence. Anyone who wants to understand either needs The Book of Why.
Tableau Your Data!: Fast and Easy Visual Analysis with Tableau Software
Dan Murray - 2013
It illustrates little-known features and techniques for getting the most from the Tableau toolset, supporting the needs of the business analysts who use the product as well as the data and IT managers who support it.This comprehensive guide covers the core feature set for data analytics, illustrating best practices for creating and sharing specific types of dynamic data visualizations. Featuring a helpful full-color layout, the book covers analyzing data with Tableau Desktop, sharing information with Tableau Server, understanding Tableau functions and calculations, and Use Cases for Tableau Software.Includes little-known, as well as more advanced features and techniques, using detailed, real-world case studies that the author has developed as part of his consulting and training practice Explains why and how Tableau differs from traditional business information analysis tools Shows you how to deploy dashboards and visualizations throughout the enterprise Provides a detailed reference resource that is aimed at users of all skill levels Depicts ways to leverage Tableau across the value chain in the enterprise through case studies that target common business requirements Endorsed by Tableau Software Tableau Your Data shows you how to build dynamic, best-of-breed visualizations using the Tableau Software toolset.
Genetic Algorithms in Search, Optimization, and Machine Learning
David Edward Goldberg - 1989
Major concepts are illustrated with running examples, and major algorithms are illustrated by Pascal computer programs. No prior knowledge of GAs or genetics is assumed, and only a minimum of computer programming and mathematics background is required. 0201157675B07092001
Accelerated C++: Practical Programming by Example
Andrew Koenig - 2000
Based on the authors' intensive summer C++ courses at Stanford University, Accelerated C++ covers virtually every concept that most professional C++ programmers will ever use -- but it turns the traditional C++ curriculum upside down, starting with the high-level C++ data structures and algorithms that let you write robust programs immediately. Once you're getting results, Accelerated C++ takes you under the hood, introducing complex language features such as memory management in context, and explaining exactly how and when to use them. From start to finish, the book concentrates on solving problems, rather than learning language and library features for their own sake. The result: You'll be writing real-world programs in no time -- and outstanding code faster than you ever imagined.
Outnumbered: Exploring the Algorithms That Control Our Lives
David Sumpter - 2018
Using the data they are constantly collecting about where we travel, where we shop, what we buy, and what interests us, they can begin to predict our daily habits, and increasingly we are relinquishing our decision-making to algorithms. Are we giving this up too easily?Without understanding what mathematics can and can't do it is impossible to get a handle on how it is changing our lives. Outnumbered is a journey to the dark side of mathematics, from how it dictates our social media activities to our travel routes. David Sumpter investigates whether mathematics is crossing dangerous lines when it comes to what we can make decisions about.This book will show how math impacts all parts of our lives: from the algorithms that decide whom we interact with to the statistical methods that categorize us as potential criminals. It tests financial algorithms that purport to generate money from nothing, and reveals that we are constantly manipulated by the math used by others, from algorithms choosing the news we hear to automated hospital waiting lists deciding whether we receive treatment.Using interviews with those people working at the cutting edge of mathematical and data research, Outnumbered will explain how math and stats work in the real world, and what we should and shouldn't worry about.
The Joy of Clojure
Michael Fogus - 2010
It combines the nice features of a scripting language with the powerful features of a production environment—features like persistent data structures and clean multithreading that you'll need for industrial-strength application development.The Joy of Clojure goes beyond just syntax to show you how to write fluent and idiomatic Clojure code. You'll learn a functional approach to programming and will master Lisp techniques that make Clojure so elegant and efficient. The book gives you easy access to hard soft ware areas like concurrency, interoperability, and performance. And it shows you how great it can be to think about problems the Clojure way. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book. What's InsideThe what and why of ClojureHow to work with macrosHow to do elegant application designFunctional programming idiomsWritten for programmers coming to Clojure from another programming background—no prior experience with Clojure or Lisp is required.
The Pattern on the Stone: The Simple Ideas that Make Computers Work
William Daniel Hillis - 1998
What they don't realize—and what Daniel Hillis's short book brilliantly demonstrates—is that computers' seemingly complex operations can be broken down into a few simple parts that perform the same simple procedures over and over again.Computer wizard Hillis offers an easy-to-follow explanation of how data is processed that makes the operations of a computer seem as straightforward as those of a bicycle. Avoiding technobabble or discussions of advanced hardware, the lucid explanations and colorful anecdotes in The Pattern on the Stone go straight to the heart of what computers really do.Hillis proceeds from an outline of basic logic to clear descriptions of programming languages, algorithms, and memory. He then takes readers in simple steps up to the most exciting developments in computing today—quantum computing, parallel computing, neural networks, and self-organizing systems.Written clearly and succinctly by one of the world's leading computer scientists, The Pattern on the Stone is an indispensable guide to understanding the workings of that most ubiquitous and important of machines: the computer.
The C++ Programming Language
Bjarne Stroustrup - 1986
For this special hardcover edition, two new appendixes on locales and standard library exception safety (also available at www.research.att.com/ bs/) have been added. The result is complete, authoritative coverage of the C++ language, its standard library, and key design techniques. Based on the ANSI/ISO C++ standard, The C++ Programming Language provides current and comprehensive coverage of all C++ language features and standard library components. For example:abstract classes as interfaces class hierarchies for object-oriented programming templates as the basis for type-safe generic software exceptions for regular error handling namespaces for modularity in large-scale software run-time type identification for loosely coupled systems the C subset of C++ for C compatibility and system-level work standard containers and algorithms standard strings, I/O streams, and numerics C compatibility, internationalization, and exception safety Bjarne Stroustrup makes C++ even more accessible to those new to the language, while adding advanced information and techniques that even expert C++ programmers will find invaluable.
Purely Functional Data Structures
Chris Okasaki - 1996
However, data structures for these languages do not always translate well to functional languages such as Standard ML, Haskell, or Scheme. This book describes data structures from the point of view of functional languages, with examples, and presents design techniques that allow programmers to develop their own functional data structures. The author includes both classical data structures, such as red-black trees and binomial queues, and a host of new data structures developed exclusively for functional languages. All source code is given in Standard ML and Haskell, and most of the programs are easily adaptable to other functional languages. This handy reference for professional programmers working with functional languages can also be used as a tutorial or for self-study.
Introduction to Modern Cryptography: Principles and Protocols
Jonathan Katz - 2007
Introduction to Modern Cryptography provides a rigorous yet accessible treatment of modern cryptography, with a focus on formal definitions, precise assumptions, and rigorous proofs.The authors introduce the core principles of modern cryptography, including the modern, computational approach to security that overcomes the limitations of perfect secrecy. An extensive treatment of private-key encryption and message authentication follows. The authors also illustrate design principles for block ciphers, such as the Data Encryption Standard (DES) and the Advanced Encryption Standard (AES), and present provably secure constructions of block ciphers from lower-level primitives. The second half of the book focuses on public-key cryptography, beginning with a self-contained introduction to the number theory needed to understand the RSA, Diffie-Hellman, El Gamal, and other cryptosystems. After exploring public-key encryption and digital signatures, the book concludes with a discussion of the random oracle model and its applications.Serving as a textbook, a reference, or for self-study, Introduction to Modern Cryptography presents the necessary tools to fully understand this fascinating subject.
Modern Perl
chromatic - 2010
With countless satisfied developers, tens of thousands of freely available libraries, and continual improvements to the language and its ecosystem, modern Perl development can be easy, reliable, and fun. To take advantage of the full power of Perl 5--to become a true expert, capable of solving any problem put before you--you must understand the language. Modern Perl explains Perl 5 from theory to implementation, including Perl 5.12.
The Haskell School of Expression: Learning Functional Programming Through Multimedia
Paul Hudak - 2000
It has become popular in recent years because of its simplicity, conciseness, and clarity. This book teaches functional programming as a way of thinking and problem solving, using Haskell, the most popular purely functional language. Rather than using the conventional (boring) mathematical examples commonly found in other programming language textbooks, the author uses examples drawn from multimedia applications, including graphics, animation, and computer music, thus rewarding the reader with working programs for inherently more interesting applications. Aimed at both beginning and advanced programmers, this tutorial begins with a gentle introduction to functional programming and moves rapidly on to more advanced topics. Details about progamming in Haskell are presented in boxes throughout the text so they can be easily found and referred to.
Arduino Cookbook: Recipes to Begin, Expand, and Enhance Your Projects
Michael Margolis - 2010
You'll find more than 200 tips and techniques for building a variety of objects and prototypes such as IoT solutions, environmental monitors, location and position-aware systems, and products that can respond to touch, sound, heat, and light.Updated for the Arduino 1.8 release, the recipes in this third edition include practical examples and guidance to help you begin, expand, and enhance your projects right away--whether you're an engineer, designer, artist, student, or hobbyist.Get up to speed on the Arduino board and essential software concepts quicklyLearn basic techniques for reading digital and analog signalsUse Arduino with a variety of popular input devices and sensorsDrive visual displays, generate sound, and control several types of motorsConnect Arduino to wired and wireless networksLearn techniques for handling time delays and time measurementApply advanced coding and memory-handling techniques
Python: For Beginners: A Crash Course Guide To Learn Python in 1 Week (coding, programming, web-programming, programmer)
Timothy C. Needham - 2017
It is very readable and the stress many beginners face about memorizing arcane syntax typically presented by other programming languages will not affect you at all. Conversely, you will be able to concentrate on learning concepts and paradigms of programming. This book shall introduce you to an easy way to learn Python in just 7 days and in this time, be able to complete your own projects! By reading the book and implementing what you learn herein, you will realize just why major institutions like NASA, Google, Mozilla, Yahoo, Dropbox, IBM, Facebook and many others prefer to use python in their core products, services and business processes. Let