Think Like a Programmer: An Introduction to Creative Problem Solving


V. Anton Spraul - 2012
    In this one-of-a-kind text, author V. Anton Spraul breaks down the ways that programmers solve problems and teaches you what other introductory books often ignore: how to Think Like a Programmer. Each chapter tackles a single programming concept, like classes, pointers, and recursion, and open-ended exercises throughout challenge you to apply your knowledge. You'll also learn how to:Split problems into discrete components to make them easier to solve Make the most of code reuse with functions, classes, and libraries Pick the perfect data structure for a particular job Master more advanced programming tools like recursion and dynamic memory Organize your thoughts and develop strategies to tackle particular types of problems Although the book's examples are written in C++, the creative problem-solving concepts they illustrate go beyond any particular language; in fact, they often reach outside the realm of computer science. As the most skillful programmers know, writing great code is a creative art—and the first step in creating your masterpiece is learning to Think Like a Programmer.

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.

Future Shock


Alvin Toffler - 1970
    Examines the effects of rapid industrial and technological changes upon the individual, the family, and society.

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.

Data Feminism


Catherine D’Ignazio - 2020
    It has been used to expose injustice, improve health outcomes, and topple governments. But it has also been used to discriminate, police, and surveil. This potential for good, on the one hand, and harm, on the other, makes it essential to ask: Data science by whom? Data science for whom? Data science with whose interests in mind? The narratives around big data and data science are overwhelmingly white, male, and techno-heroic. In Data Feminism, Catherine D'Ignazio and Lauren Klein present a new way of thinking about data science and data ethics—one that is informed by intersectional feminist thought.Illustrating data feminism in action, D'Ignazio and Klein show how challenges to the male/female binary can help challenge other hierarchical (and empirically wrong) classification systems. They explain how, for example, an understanding of emotion can expand our ideas about effective data visualization, and how the concept of invisible labor can expose the significant human efforts required by our automated systems. And they show why the data never, ever “speak for themselves.”Data Feminism offers strategies for data scientists seeking to learn how feminism can help them work toward justice, and for feminists who want to focus their efforts on the growing field of data science. But Data Feminism is about much more than gender. It is about power, about who has it and who doesn't, and about how those differentials of power can be challenged and changed.

The Price of Tomorrow: Why Deflation is the Key to an Abundant Future


Jeff Booth - 2020
    

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.

Data and Reality


William Kent - 1978
    

Structure and Interpretation of Computer Programs


Harold Abelson - 1984
    This long-awaited revision contains changes throughout the text. There are new implementations of most of the major programming systems in the book, including the interpreters and compilers, and the authors have incorporated many small changes that reflect their experience teaching the course at MIT since the first edition was published. A new theme has been introduced that emphasizes the central role played by different approaches to dealing with time in computational models: objects with state, concurrent programming, functional programming and lazy evaluation, and nondeterministic programming. There are new example sections on higher-order procedures in graphics and on applications of stream processing in numerical programming, and many new exercises. In addition, all the programs have been reworked to run in any Scheme implementation that adheres to the IEEE standard.

Literate Programming


Donald Ervin Knuth - 1992
    Many examples are given, including excerpts from the programs for TeX and METAFONT. The final essay is an example of CWEB, a system for literate programming in C and related languages.This volume is first in a series of Knuth's collected works.

Freakonomics: A Rogue Economist Explores the Hidden Side of Everything


Steven D. Levitt - 2005
    Wade have on violent crime? Freakonomics will literally redefine the way we view the modern world.These may not sound like typical questions for an economist to ask. But Steven D. Levitt is not a typical economist. He is a much heralded scholar who studies the stuff and riddles of everyday life -- from cheating and crime to sports and child rearing -- and whose conclusions regularly turn the conventional wisdom on its head. He usually begins with a mountain of data and a simple, unasked question. Some of these questions concern life-and-death issues; others have an admittedly freakish quality. Thus the new field of study contained in this book: freakonomics.Through forceful storytelling and wry insight, Levitt and co-author Stephen J. Dubner show that economics is, at root, the study of incentives -- how people get what they want, or need, especially when other people want or need the same thing. In Freakonomics, they set out to explore the hidden side of ... well, everything. The inner workings of a crack gang. The truth about real-estate agents. The myths of campaign finance. The telltale marks of a cheating schoolteacher. The secrets of the Ku Klux Klan.What unites all these stories is a belief that the modern world, despite a surfeit of obfuscation, complication, and downright deceit, is not impenetrable, is not unknowable, and -- if the right questions are asked -- is even more intriguing than we think. All it takes is a new way of looking. Steven Levitt, through devilishly clever and clear-eyed thinking, shows how to see through all the clutter.Freakonomics establishes this unconventional premise: If morality represents how we would like the world to work, then economics represents how it actually does work. It is true that readers of this book will be armed with enough riddles and stories to last a thousand cocktail parties. But Freakonomics can provide more than that. It will literally redefine the way we view the modern world.(front flap)

Rebel Code: Linux and the Open Source Revolution


Glyn Moody - 2000
    This fast-moving narrative starts at ground zero, with the dramatic incubation of open-source software by Linux and its enigmatic creator, Linus Torvalds. With firsthand accounts, it describes how a motley group of programmers managed to shake up the computing universe and cause a radical shift in thinking for the post-Microsoft era. A powerful and engaging tale of innovation versus big business, Rebel Code chronicles the race to create and perfect open-source software, and provides the ideal perch from which to explore the changes that cyberculture has engendered in our society. Based on over fifty interviews with open-source protagonists such as Torvalds and open source guru Richard Stallman, Rebel Code captures the voice and the drama behind one of the most significant business trends in recent memory.

High and Mighty: SUVs-the World's Most Dangerous Vehicles and How They Got That Way


Keith Bradsher - 2002
    Ad campaigns promote them as safer and greener than ordinary cars and easy to handle in bad weather. But very little about the SUV's image is accurate. They poorly protect occupants and inflict horrific damage in crashes, they guzzle gasoline and they are hard to control. Keith Bradsher has been at the forefront in reporting the calamitous safety and environmental record of SUVs, including the notorious Ford-Firestone rollover controversy. In this book he traces the checkered history of SUVs, showing how they came to be classified not as passenger cars but as light trucks, which are subject to less strict regulations on safety, gas mileage and air pollution. He makes a powerful case that these vehicles are even worse than we suspect - for their occupants, for other motorists, for pedestrians and for the planet itself. In the tradition of Unsafe at Any Speed and Fast Food Nation, Bradsher's book is a damning expose of an industry that puts us all at risk, whether we recognize it or not.

Machine Learning for Dummies


John Paul Mueller - 2016
    Without machine learning, fraud detection, web search results, real-time ads on web pages, credit scoring, automation, and email spam filtering wouldn't be possible, and this is only showcasing just a few of its capabilities. Written by two data science experts, Machine Learning For Dummies offers a much-needed entry point for anyone looking to use machine learning to accomplish practical tasks.Covering the entry-level topics needed to get you familiar with the basic concepts of machine learning, this guide quickly helps you make sense of the programming languages and tools you need to turn machine learning-based tasks into a reality. Whether you're maddened by the math behind machine learning, apprehensive about AI, perplexed by preprocessing data--or anything in between--this guide makes it easier to understand and implement machine learning seamlessly.Grasp how day-to-day activities are powered by machine learning Learn to 'speak' certain languages, such as Python and R, to teach machines to perform pattern-oriented tasks and data analysis Learn to code in R using R Studio Find out how to code in Python using Anaconda Dive into this complete beginner's guide so you are armed with all you need to know about machine learning!

Governing the Commons: The Evolution of Institutions for Collective Action


Elinor Ostrom - 1990
    Both state control and privatization of resources have been advocated, but neither the state nor the market have been uniformly successful in solving common pool resource problems. After critiquing the foundations of policy analysis as applied to natural resources, Elinor Ostrom here provides a unique body of empirical data to explore conditions under which common pool resource problems have been satisfactorily or unsatisfactorily solved. Dr. Ostrom first describes three models most frequently used as the foundation for recommending state or market solutions. She then outlines theoretical and empirical alternatives to these models in order to illustrate the diversity of possible solutions. In the following chapters she uses institutional analysis to examine different ways--both successful and unsuccessful--of governing the commons. In contrast to the proposition of the tragedy of the commons argument, common pool problems sometimes are solved by voluntary organizations rather than by a coercive state. Among the cases considered are communal tenure in meadows and forests, irrigation communities and other water rights, and fisheries.