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.

Algebra


Michael Artin - 1991
    Linear algebra is tightly integrated into the text.

Language, Proof and Logic: Text and CD


Jon Barwise - 1999
    The unique on-line grading services instantly grades solutions to hundred of computer exercises. It is specially devised to be used by philosophy instructors in a way that is useful to undergraduates of philosophy, computer science, mathematics, and linguistics.The book is a completely rewritten and much improved version of The Language of First-order Logic. Introductory material is presented in a more systematic and accessible fashion. Advanced chapters include proofs of soundness and completeness for propositional and predicate logic, as well as an accessible sketch of Godel's first incompleteness theorem. The book is appropriate for a wide range of courses, from first logic courses for undergraduates (philosophy, mathematics, and computer science) to a first graduate logic course.The package includes four pieces of software:Tarski's World 5.0, a new version of the popular program that teaches the basic first-order language and its semantics; Fitch, a natural deduction proof environment for giving and checking first-order proofs;Boole, a program that facilitates the construction and checking of truth tables and related notions (tautology, tautological consequence, etc.);Submit, a program that allows students to submit exercises done with the above programs to the Grade Grinder, the automatic grading service.Grade reports are returned to the student and, if requested, to the student's instructor, eliminating the need for tedious checking of homework. All programs are available for Windows, Macintosh and Linux systems.Instructors do not need to use the programs themselves in order to be able to take advantage of their pedagogical value. More about the software can be found at lpl.stanford.edu.The price of a new text/software package includes one Registration ID, which must be used each time work is submitted to the grading service. Once activated, the Registration ID is not transferable.

The Joy of Game Theory: An Introduction to Strategic Thinking


Presh Talwalkar - 2013
    Articles from Game Theory Tuesdays have been referenced in The Freakonomics Blog, Yahoo Finance, and CNN.com. The second edition includes many streamlined explanations and incorporates suggestions from readers of the first edition. Game theory is the study of interactive decision making--that is, in situations where each person's action affects the outcome for the whole group. Game theory is a beautiful subject and this book will teach you how to understand the theory and practically implement solutions through a series of stories and the aid of over 30 illustrations. This book has two primary objectives. (1) To help you recognize strategic games, like the Prisoner's Dilemma, Bertrand Duopoly, Hotelling's Game, the Game of Chicken, and Mutually Assured Destruction. (2) To show you how to make better decisions and change the game, a powerful concept that can transform no-win situations into mutually beneficial outcomes. You'll learn how to negotiate better by making your threats credible, sometimes limiting options or burning bridges, and thinking about new ways to create better outcomes. As these goals indicate, game theory is about more than board games and gambling. It all seems so simple, and yet that definition belies the complexity of game theory. While it may only take seconds to get a sense of game theory, it takes a lifetime to appreciate and master it. This book will get you started.

Meta Math!: The Quest for Omega


Gregory Chaitin - 2005
    His investigations shed light on what we can ultimately know about the universe and the very nature of life. In an infectious and enthusiastic narrative, Chaitin delineates the specific intellectual and intuitive steps he took toward the discovery. He takes us to the very frontiers of scientific thinking, and helps us to appreciate the art—and the sheer beauty—in the science of math.

Introduction to Graph Theory


Douglas B. West - 1995
    Verification that algorithms work is emphasized more than their complexity. An effective use of examples, and huge number of interesting exercises, demonstrate the topics of trees and distance, matchings and factors, connectivity and paths, graph coloring, edges and cycles, and planar graphs. For those who need to learn to make coherent arguments in the fields of mathematics and computer science.

Computational Geometry: Algorithms and Applications


Mark de Berg - 1997
    The focus is on algorithms and hence the book is well suited for students in computer science and engineering. Motivation is provided from the application areas: all solutions and techniques from computational geometry are related to particular applications in robotics, graphics, CAD/CAM, and geographic information systems. For students this motivation will be especially welcome. Modern insights in computational geometry are used to provide solutions that are both efficient and easy to understand and implement. All the basic techniques and topics from computational geometry, as well as several more advanced topics, are covered. The book is largely self-contained and can be used for self-study by anyone with a basic background in algorithms. In the second edition, besides revisions to the first edition, a number of new exercises have been added.

Fuzzy Thinking: The New Science of Fuzzy Logic


Bart Kosko - 1993
    An authoritative introduction to "fuzzy logic" brings readers up to speed on the "smart" products and computers that will change all of our lives in the future.

The Art of Problem Solving, Volume 1: The Basics


Sandor Lehoczky - 2006
    The Art of Problem Solving, Volume 1, is the classic problem solving textbook used by many successful MATHCOUNTS programs, and have been an important building block for students who, like the authors, performed well enough on the American Mathematics Contest series to qualify for the Math Olympiad Summer Program which trains students for the United States International Math Olympiad team.Volume 1 is appropriate for students just beginning in math contests. MATHCOUNTS and novice high school students particularly have found it invaluable. Although the Art of Problem Solving is widely used by students preparing for mathematics competitions, the book is not just a collection of tricks. The emphasis on learning and understanding methods rather than memorizing formulas enables students to solve large classes of problems beyond those presented in the book.Speaking of problems, the Art of Problem Solving, Volume 1, contains over 500 examples and exercises culled from such contests as MATHCOUNTS, the Mandelbrot Competition, the AMC tests, and ARML. Full solutions (not just answers!) are available for all the problems in the solution manual.

Essays on the Theory of Numbers


Richard Dedekind - 1901
    W. R. Dedekind. The first presents Dedekind's theory of the irrational number-the Dedekind cut idea-perhaps the most famous of several such theories created in the 19th century to give a precise meaning to irrational numbers, which had been used on an intuitive basis since Greek times. This paper provided a purely arithmetic and perfectly rigorous foundation for the irrational numbers and thereby a rigorous meaning of continuity in analysis.The second essay is an attempt to give a logical basis for transfinite numbers and properties of the natural numbers. It examines the notion of natural numbers, the distinction between finite and transfinite (infinite) whole numbers, and the logical validity of the type of proof called mathematical or complete induction.The contents of these essays belong to the foundations of mathematics and will be welcomed by those who are prepared to look into the somewhat subtle meanings of the elements of our number system. As a major work of an important mathematician, the book deserves a place in the personal library of every practicing mathematician and every teacher and historian of mathematics. Authorized translations by "Vooster " V. Beman.

Dive Into Python 3


Mark Pilgrim - 2009
    As in the original book, Dive Into Python, each chapter starts with a real, complete code sample, proceeds to pick it apart and explain the pieces, and then puts it all back together in a summary at the end.This book includes:Example programs completely rewritten to illustrate powerful new concepts now available in Python 3: sets, iterators, generators, closures, comprehensions, and much more A detailed case study of porting a major library from Python 2 to Python 3 A comprehensive appendix of all the syntactic and semantic changes in Python 3 This is the perfect resource for you if you need to port applications to Python 3, or if you like to jump into languages fast and get going right away.

Philosophy of Mathematics: Selected Readings


Paul Benacerraf - 1983
    In the same period, the cross-fertilization of mathematics and philosophy resulted in a new sort of 'mathematical philosophy', associated most notably (but in different ways) with Bertrand Russell, W. V. Quine, and Godel himself, and which remains at the focus of Anglo-Saxon philosophical discussion. The present collection brings together in a convenient form the seminal articles in the philosophy of mathematics by these and other major thinkers. It is a substantially revised version of the edition first published in 1964 and includes a revised bibliography. The volume will be welcomed as a major work of reference at this level in the field.

Building Java Programs: A Back to Basics Approach


Stuart Reges - 2007
    By using objects early to solve interesting problems and defining objects later in the course, Building Java Programs develops programming knowledge for a broad audience. Introduction to Java Programming, Primitive Data and Definite Loops, Introduction to Parameters and Objects, Conditional Execution, Program Logic and Indefinite Loops, File Processing, Arrays, Defining Classes, Inheritance and Interfaces, ArrayLists, Java Collections Framework, Recursion, Searching and Sorting, Graphical User Interfaces. For all readers interested in introductory programming.

An Introduction to Non-Classical Logic


Graham Priest - 2001
    Part 1, on propositional logic, is the old Introduction, but contains much new material. Part 2 is entirely new, and covers quantification and identity for all the logics in Part 1. The material is unified by the underlying theme of world semantics. All of the topics are explained clearly using devices such as tableau proofs, and their relation to current philosophical issues and debates are discussed. Students with a basic understanding of classical logic will find this book an invaluable introduction to an area that has become of central importance in both logic and philosophy. It will also interest people working in mathematics and computer science who wish to know about the area.

The Essential Turing: Seminal Writings in Computing, Logic, Philosophy, Artificial Intelligence, and Artificial Life Plus the Secrets of Enigma


Alan Turing - 2004
    In 1935, aged 22, he developed the mathematical theory upon which all subsequent stored-program digital computers are modeled.At the outbreak of hostilities with Germany in September 1939, he joined the Government Codebreaking team at Bletchley Park, Buckinghamshire and played a crucial role in deciphering Engima, the code used by the German armed forces to protect their radio communications. Turing's work on the versionof Enigma used by the German navy was vital to the battle for supremacy in the North Atlantic. He also contributed to the attack on the cyphers known as Fish, which were used by the German High Command for the encryption of signals during the latter part of the war. His contribution helped toshorten the war in Europe by an estimated two years.After the war, his theoretical work led to the development of Britain's first computers at the National Physical Laboratory and the Royal Society Computing Machine Laboratory at Manchester University.Turing was also a founding father of modern cognitive science, theorizing that the cortex at birth is an unorganized machine which through training becomes organized into a universal machine or something like it. He went on to develop the use of computers to model biological growth, launchingthe discipline now referred to as Artificial Life.The papers in this book are the key works for understanding Turing's phenomenal contribution across all these fields. The collection includes Turing's declassified wartime Treatise on the Enigma; letters from Turing to Churchill and to codebreakers; lectures, papers, and broadcasts which opened upthe concept of AI and its implications; and the paper which formed the genesis of the investigation of Artifical Life.