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.

Behind Deep Blue: Building the Computer That Defeated the World Chess Champion


Feng-Hsiung Hsu - 2002
    Written by the man who started the adventure, Behind Deep Blue reveals the inside story of what happened behind the scenes at the two historic Deep Blue vs. Kasparov matches. This is also the story behind the quest to create the mother of all chess machines. The book unveils how a modest student project eventually produced a multimillion dollar supercomputer, from the development of the scientific ideas through technical setbacks, rivalry in the race to develop the ultimate chess machine, and wild controversies to the final triumph over the world's greatest human player.In nontechnical, conversational prose, Feng-hsiung Hsu, the system architect of Deep Blue, tells us how he and a small team of fellow researchers forged ahead at IBM with a project they'd begun as students at Carnegie Mellon in the mid-1980s: the search for one of the oldest holy grails in artificial intelligence--a machine that could beat any human chess player in a bona fide match. Back in 1949 science had conceived the foundations of modern chess computers but not until almost fifty years later--until Deep Blue--would the quest be realized.Hsu refutes Kasparov's controversial claim that only human intervention could have allowed Deep Blue to make its decisive, "uncomputerlike" moves. In riveting detail he describes the heightening tension in this war of brains and nerves, the "smoldering fire" in Kasparov's eyes. Behind Deep Blue is not just another tale of man versus machine. This fascinating book tells us how man as genius was given an ultimate, unforgettable run for his mind, no, not by the genius of a computer, but of man as toolmaker.

Elements of the Theory of Computation


Harry R. Lewis - 1981
    The authors are well-known for their clear presentation that makes the material accessible to a a broad audience and requires no special previous mathematical experience. KEY TOPICS: In this new edition, the authors incorporate a somewhat more informal, friendly writing style to present both classical and contemporary theories of computation. Algorithms, complexity analysis, and algorithmic ideas are introduced informally in Chapter 1, and are pursued throughout the book. Each section is followed by problems.

Python Crash Course: A Hands-On, Project-Based Introduction to Programming


Eric Matthes - 2015
    You'll also learn how to make your programs interactive and how to test your code safely before adding it to a project. In the second half of the book, you'll put your new knowledge into practice with three substantial projects: a Space Invaders-inspired arcade game, data visualizations with Python's super-handy libraries, and a simple web app you can deploy online.As you work through Python Crash Course, you'll learn how to: Use powerful Python libraries and tools, including matplotlib, NumPy, and PygalMake 2D games that respond to keypresses and mouse clicks, and that grow more difficult as the game progressesWork with data to generate interactive visualizationsCreate and customize simple web apps and deploy them safely onlineDeal with mistakes and errors so you can solve your own programming problemsIf you've been thinking seriously about digging into programming, Python Crash Course will get you up to speed and have you writing real programs fast. Why wait any longer? Start your engines and code!

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.

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.

Designing Data-Intensive Applications


Martin Kleppmann - 2015
    Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications. Peer under the hood of the systems you already use, and learn how to use and operate them more effectively Make informed decisions by identifying the strengths and weaknesses of different tools Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity Understand the distributed systems research upon which modern databases are built Peek behind the scenes of major online services, and learn from their architectures

The Telomere Effect: A Revolutionary Approach to Living Younger, Healthier, Longer


Elizabeth Blackburn - 2017
    Elizabeth Blackburn discovered a biological indicator called telomerase, the enzyme that replenishes telomeres, which protect our genetic heritage. Dr. Blackburn and Dr. Elissa Epel's research shows that the length and health of one's telomeres are a biological underpinning of the long-hypothesized mind-body connection. They and other scientists have found that changes we can make to our daily habits can protect our telomeres and increase our health spans (the number of years we remain healthy, active, and disease-free).THE TELOMERE EFFECT reveals how Blackburn and Epel's findings, together with research from colleagues around the world, cumulatively show that sleep quality, exercise, aspects of diet, and even certain chemicals profoundly affect our telomeres, and that chronic stress, negative thoughts, strained relationships, and even the wrong neighborhoods can eat away at them. Drawing from this scientific body of knowledge, they share lists of foods and suggest amounts and types of exercise that are healthy for our telomeres, mind tricks you can use to protect yourself from stress, and information about how to protect your children against developing shorter telomeres, from pregnancy through adolescence. And they describe how we can improve our health spans at the community level, with neighborhoods characterized by trust, green spaces, and safe streets. THE TELOMERE EFFECT will make you reassess how you live your life on a day-to-day basis. It is the first book to explain how we age at a cellular level and how we can make simple changes to keep our chromosomes and cells healthy, allowing us to stay disease-free longer and live more vital and meaningful lives.

Conscious: A Brief Guide to the Fundamental Mystery of the Mind


Annaka Harris - 2019
    But the very existence of consciousness raises profound questions: Why would any collection of matter in the universe be conscious? How are we able to think about this? And why should we?In this wonderfully accessible book, Annaka Harris guides us through the evolving definitions, philosophies, and scientific findings that probe our limited understanding of consciousness. Where does it reside, and what gives rise to it? Could it be an illusion, or a universal property of all matter? As we try to understand consciousness, we must grapple with how to define it and, in the age of artificial intelligence, who or what might possess it. Conscious offers lively and challenging arguments that alter our ideas about consciousness—allowing us to think freely about it for ourselves, if indeed we can.

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.

The Elements of Statistical Learning: Data Mining, Inference, and Prediction


Trevor Hastie - 2001
    With it has come vast amounts of data in a variety of fields such as medicine, biology, finance, and marketing. The challenge of understanding these data has led to the development of new tools in the field of statistics, and spawned new areas such as data mining, machine learning, and bioinformatics. Many of these tools have common underpinnings but are often expressed with different terminology. This book describes the important ideas in these areas in a common conceptual framework. While the approach is statistical, the emphasis is on concepts rather than mathematics. Many examples are given, with a liberal use of color graphics. It should be a valuable resource for statisticians and anyone interested in data mining in science or industry. The book's coverage is broad, from supervised learning (prediction) to unsupervised learning. The many topics include neural networks, support vector machines, classification trees and boosting—the first comprehensive treatment of this topic in any book. Trevor Hastie, Robert Tibshirani, and Jerome Friedman are professors of statistics at Stanford University. They are prominent researchers in this area: Hastie and Tibshirani developed generalized additive models and wrote a popular book of that title. Hastie wrote much of the statistical modeling software in S-PLUS and invented principal curves and surfaces. Tibshirani proposed the Lasso and is co-author of the very successful An Introduction to the Bootstrap. Friedman is the co-inventor of many data-mining tools including CART, MARS, and projection pursuit.

The Social Animal: The Hidden Sources of Love, Character, and Achievement


David Brooks - 2011
    Now, with the intellectual curiosity and emotional wisdom that make his columns among the most read in the nation, Brooks turns to the building blocks of human flourishing in a multilayered, profoundly illuminating work grounded in everyday life.This is the story of how success happens. It is told through the lives of one composite American couple, Harold and Erica—how they grow, push forward, are pulled back, fail, and succeed. Distilling a vast array of information into these two vividly realized characters, Brooks illustrates a fundamental new understanding of human nature. A scientific revolution has occurred—we have learned more about the human brain in the last thirty years than we had in the previous three thousand. The unconscious mind, it turns out, is most of the mind—not a dark, vestigial place but a creative and enchanted one, where most of the brain’s work gets done. This is the realm of emotions, intuitions, biases, longings, genetic predispositions, personality traits, and social norms: the realm where character is formed and where our most important life decisions are made. The natural habitat of The Social Animal. Drawing on a wealth of current research from numerous disciplines, Brooks takes Harold and Erica from infancy to school; from the “odyssey years” that have come to define young adulthood to the high walls of poverty; from the nature of attachment, love, and commitment, to the nature of effective leadership. He reveals the deeply social aspect of our very minds and exposes the bias in modern culture that overemphasizes rationalism, individualism, and IQ. Along the way, he demolishes conventional definitions of success while looking toward a culture based on trust and humility.The Social Animal is a moving and nuanced intellectual adventure, a story of achievement and a defense of progress. Impossible to put down, it is an essential book for our time, one that will have broad social impact and will change the way we see ourselves and the world.

Data Science from Scratch: First Principles with Python


Joel Grus - 2015
    In this book, you’ll learn how many of the most fundamental data science tools and algorithms work by implementing them from scratch. If you have an aptitude for mathematics and some programming skills, author Joel Grus will help you get comfortable with the math and statistics at the core of data science, and with hacking skills you need to get started as a data scientist. Today’s messy glut of data holds answers to questions no one’s even thought to ask. This book provides you with the know-how to dig those answers out. Get a crash course in Python Learn the basics of linear algebra, statistics, and probability—and understand how and when they're used in data science Collect, explore, clean, munge, and manipulate data Dive into the fundamentals of machine learning Implement models such as k-nearest Neighbors, Naive Bayes, linear and logistic regression, decision trees, neural networks, and clustering Explore recommender systems, natural language processing, network analysis, MapReduce, and databases

Diffusion of Innovations


Everett M. Rogers - 1982
    It has sold 30,000 copies in each edition and will continue to reach a huge academic audience.In this renowned book, Everett M. Rogers, professor and chair of the Department of Communication & Journalism at the University of New Mexico, explains how new ideas spread via communication channels over time. Such innovations are initially perceived as uncertain and even risky. To overcome this uncertainty, most people seek out others like themselves who have already adopted the new idea. Thus the diffusion process consists of a few individuals who first adopt an innovation, then spread the word among their circle of acquaintances--a process which typically takes months or years. But there are exceptions: use of the Internet in the 1990s, for example, may have spread more rapidly than any other innovation in the history of humankind. Furthermore, the Internet is changing the very nature of diffusion by decreasing the importance of physical distance between people. The fifth edition addresses the spread of the Internet, and how it has transformed the way human beings communicate and adopt new ideas.

Interviewing Users: How to Uncover Compelling Insights


Steve Portigal - 2013
    Everyone can ask questions, right? Unfortunately, that's not the case. Interviewing Users provides invaluable interviewing techniques and tools that enable you to conduct informative interviews with anyone. You'll move from simply gathering data to uncovering powerful insights about people.Interviewing Users will explain how to succeed with interviewing, including:* Embracing how other people see the world* Building rapport to create engaging and exciting interactions* Listening in order to build rapport.With this book, Steve Portigal uses stories and examples from his 15 years of experience to show how interviewing can be incorporated into the design process, helping you learn the best and right information to inform and inspire your design.