Among them there are two papers by Bob: (i) a retrospective view of his research lines, and (ii) a proposal for future studies in the area of the automatic program derivation. The book also includes some papers by members of the IFIP Working Group 2.1 of which Bob was an active member. All papers are related to some of the research interests of Bob and, in particular, to the transformational development of programs and their algorithmic derivation from formal specifications. “Automatic Program Development” offers a renewed stimulus for continuing and deepening Bob's research visions.
A familiar touch is given to the book by some pictures kindly provided to us by his wife Nieba, the personal recollections of his brother Gary and some of his colleagues and friends.
The algorithms in this book represent a body of knowledge developed over the last 50 years that has become indispensable, not just for professional programmers and computer science students but for any student with interests in science, mathematics, and engineering, not to mention students who use computation in the liberal arts.
The companion web site, algs4.cs.princeton.edu, containsAn online synopsis Full Java implementations Test data Exercises and answers Dynamic visualizations Lecture slides Programming assignments with checklists Links to related material
The MOOC related to this book is accessible via the "Online Course" link at algs4.cs.princeton.edu. The course offers more than 100 video lecture segments that are integrated with the text, extensive online assessments, and the large-scale discussion forums that have proven so valuable. Offered each fall and spring, this course regularly attracts tens of thousands of registrants.
Robert Sedgewick and Kevin Wayne are developing a modern approach to disseminating knowledge that fully embraces technology, enabling people all around the world to discover new ways of learning and teaching. By integrating their textbook, online content, and MOOC, all at the state of the art, they have built a unique resource that greatly expands the breadth and depth of the educational experience.
“Artfully envisions a breathtakingly better world.” —Los Angeles Times
“Elaborate, smart and persuasive.” —The Boston Globe
“A pleasure to read.” —The Wall Street Journal
One of CBS News’s Best Fall Books of 2005 • Among St Louis Post-Dispatch’s Best Nonfiction Books of 2005 • One of Amazon.com’s Best Science Books of 2005
A radical and optimistic view of the future course of human development from the bestselling author of How to Create a Mind and The Age of Spiritual Machines who Bill Gates calls “the best person I know at predicting the future of artificial intelligence”
For over three decades, Ray Kurzweil has been one of the most respected and provocative advocates of the role of technology in our future. In his classic The Age of Spiritual Machines, he argued that computers would soon rival the full range of human intelligence at its best. Now he examines the next step in this inexorable evolutionary process: the union of human and machine, in which the knowledge and skills embedded in our brains will be combined with the vastly greater capacity, speed, and knowledge-sharing ability of our creations.
From the Trade Paperback edition.
A Huffington Post Definitive Tech Book of 2013
Artificial Intelligence helps choose what books you buy, what movies you see, and even who you date. It puts the "smart" in your smartphone and soon it will drive your car. It makes most of the trades on Wall Street, and controls vital energy, water, and transportation infrastructure. But Artificial Intelligence can also threaten our existence.
In as little as a decade, AI could match and then surpass human intelligence. Corporations and government agencies are pouring billions into achieving AI's Holy Grail—human-level intelligence. Once AI has attained it, scientists argue, it will have survival drives much like our own. We may be forced to compete with a rival more cunning, more powerful, and more alien than we can imagine.
Through profiles of tech visionaries, industry watchdogs, and groundbreaking AI systems, Our Final Invention explores the perils of the heedless pursuit of advanced AI. Until now, human intelligence has had no rival. Can we coexist with beings whose intelligence dwarfs our own? And will they allow us to?
Ray Kurzweil is arguably today’s most influential—and often controversial—futurist. In How to Create a Mind, Kurzweil presents a provocative exploration of the most important project in human-machine civilization—reverse engineering the brain to understand precisely how it works and using that knowledge to create even more intelligent machines.
Kurzweil discusses how the brain functions, how the mind emerges from the brain, and the implications of vastly increasing the powers of our intelligence in addressing the world’s problems. He thoughtfully examines emotional and moral intelligence and the origins of consciousness and envisions the radical possibilities of our merging with the intelligent technology we are creating.
Certain to be one of the most widely discussed and debated science books of the year, How to Create a Mind is sure to take its place alongside Kurzweil’s previous classics which include Fantastic Voyage: Live Long Enough to Live Forever and The Age of Spiritual Machines.
From the Hardcover edition.
Jeff Hawkins, the man who created the PalmPilot, Treo smart phone, and other handheld devices, has reshaped our relationship to computers. Now he stands ready to revolutionize both neuroscience and computing in one stroke, with a new understanding of intelligence itself.
Hawkins develops a powerful theory of how the human brain works, explaining why computers are not intelligent and how, based on this new theory, we can finally build intelligent machines.
The brain is not a computer, but a memory system that stores experiences in a way that reflects the true structure of the world, remembering sequences of events and their nested relationships and making predictions based on those memories. It is this memory-prediction system that forms the basis of intelligence, perception, creativity, and even consciousness.
In an engaging style that will captivate audiences from the merely curious to the professional scientist, Hawkins shows how a clear understanding of how the brain works will make it possible for us to build intelligent machines, in silicon, that will exceed our human ability in surprising ways.
Written with acclaimed science writer Sandra Blakeslee, On Intelligence promises to completely transfigure the possibilities of the technology age. It is a landmark book in its scope and clarity.
Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis–refactoring not just the code but the model underlying the code–in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Driven Design then builds on this foundation, and addresses modeling and design for complex systems and larger organizations.Specific topics covered include:
With this book in hand, object-oriented developers, system analysts, and designers will have the guidance they need to organize and focus their work, create rich and useful domain models, and leverage those models into quality, long-lasting software implementations.
In this collection of essays and articles, key members of Google’s Site Reliability Team explain how and why their commitment to the entire lifecycle has enabled the company to successfully build, deploy, monitor, and maintain some of the largest software systems in the world. You’ll learn the principles and practices that enable Google engineers to make systems more scalable, reliable, and efficient—lessons directly applicable to your organization.
This book is divided into four sections:Introduction—Learn what site reliability engineering is and why it differs from conventional IT industry practicesPrinciples—Examine the patterns, behaviors, and areas of concern that influence the work of a site reliability engineer (SRE)Practices—Understand the theory and practice of an SRE’s day-to-day work: building and operating large distributed computing systemsManagement—Explore Google's best practices for training, communication, and meetings that your organization can use
The antidote to fuzzy thinking, with furry animals!
Have you read (or stumbled into) one too many irrational online debates? Ali Almossawi certainly had, so he wrote An Illustrated Book of Bad Arguments! This handy guide is here to bring the internet age a much-needed dose of old-school logic (really old-school, a la Aristotle).
Here are cogent explanations of the straw man fallacy, the slippery slope argument, the ad hominem attack, and other common attempts at reasoning that actually fall short—plus a beautifully drawn menagerie of animals who (adorably) commit every logical faux pas. Rabbit thinks a strange light in the sky must be a UFO because no one can prove otherwise (the appeal to ignorance). And Lion doesn’t believe that gas emissions harm the planet because, if that were true, he wouldn’t like the result (the argument from consequences).
Once you learn to recognize these abuses of reason, they start to crop up everywhere from congressional debate to YouTube comments—which makes this geek-chic book a must for anyone in the habit of holding opinions.
Logic For Dummies tracks an introductory logic course at the college level. Concrete, real-world examples help you understand each concept you encounter, while fully worked out proofs and fun logic problems encourage you students to apply what you’ve learned.
Logically Fallacious is one of the most comprehensive collections of logical fallacies with all original examples and easy to understand descriptions, perfect for educators, debaters, or anyone who wants to improve his or her reasoning skills.
"Expose an irrational belief, keep a person rational for a day. Expose irrational thinking, keep a person rational for a lifetime." - Bo Bennett
From the Trade Paperback edition.
The book begins with a summary of the nontechnical aspects of interviewing, such as common mistakes, strategies for a great interview, perspectives from the other side of the table, tips on negotiating the best offer, and a guide to the best ways to use EPI.
The technical core of EPI is a sequence of chapters on basic and advanced data structures, searching, sorting, broad algorithmic principles, concurrency, and system design. Each chapter consists of a brief review, followed by a broad and thought-provoking series of problems. We include a summary of data structure, algorithm, and problem solving patterns.
“The cool thing about this book is that it’s great for keeping the programming process fresh. The book helps you to continue to grow and clearly comes from people who have been there.”—Kent Beck, author of Extreme Programming Explained: Embrace Change
“I found this book to be a great mix of solid advice and wonderful analogies!”—Martin Fowler, author of Refactoring and UML Distilled
“I would buy a copy, read it twice, then tell all my colleagues to run out and grab a copy. This is a book I would never loan because I would worry about it being lost.”—Kevin Ruland, Management Science, MSG-Logistics
“The wisdom and practical experience of the authors is obvious. The topics presented are relevant and useful.... By far its greatest strength for me has been the outstanding analogies—tracer bullets, broken windows, and the fabulous helicopter-based explanation of the need for orthogonality, especially in a crisis situation. I have little doubt that this book will eventually become an excellent source of useful information for journeymen programmers and expert mentors alike.”—John Lakos, author of Large-Scale C++ Software Design
“This is the sort of book I will buy a dozen copies of when it comes out so I can give it to my clients.”—Eric Vought, Software Engineer
“Most modern books on software development fail to cover the basics of what makes a great software developer, instead spending their time on syntax or technology where in reality the greatest leverage possible for any software team is in having talented developers who really know their craft well. An excellent book.”—Pete McBreen, Independent Consultant
“Since reading this book, I have implemented many of the practical suggestions and tips it contains. Across the board, they have saved my company time and money while helping me get my job done quicker! This should be a desktop reference for everyone who works with code for a living.”—Jared Richardson, Senior Software Developer, iRenaissance, Inc.
“I would like to see this issued to every new employee at my company....”—Chris Cleeland, Senior Software Engineer, Object Computing, Inc.
“If I’m putting together a project, it’s the authors of this book that I want. . . . And failing that I’d settle for people who’ve read their book.”—Ward Cunningham
Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how toFight software rot; Avoid the trap of duplicating knowledge; Write flexible, dynamic, and adaptable code; Avoid programming by coincidence; Bullet-proof your code with contracts, assertions, and exceptions; Capture real requirements; Test ruthlessly and effectively; Delight your users; Build teams of pragmatic programmers; and Make your developments more precise with automation.
Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.
In the world's top research labs and universities, the race is on to invent the ultimate learning algorithm: one capable of discovering any knowledge from data, and doing anything we want, before we even ask. In The Master Algorithm, Pedro Domingos lifts the veil to give us a peek inside the learning machines that power Google, Amazon, and your smartphone. He assembles a blueprint for the future universal learner-the Master Algorithm-and discusses what it will mean for business, science, and society. If data-ism is today's philosophy, this book is its bible.
This highly versatile text provides mathematical background used in a wide variety of disciplines, including mathematics and mathematics education, computer science, biology, chemistry, engineering, communications, and business.
Some of the major features and strengths of this textbook
More than 1,600 exercises, ranging from elementary to challenging, are included with hints/answers to all odd-numbered exercises.
Descriptions of proof techniques are accessible and lively.
Students benefit from the historical discussions throughout the textbook.
Combining stories of great writers and philosophers with quotations and riddles, this completely original text for first courses in mathematical logic examines problems related to proofs, propositional logic and first-order logic, undecidability, and other topics. 2013 edition.
With refactoring, programmers can transform even the most chaotic software into well-designed systems that are far easier to evolve and maintain. What’s more, they can do it one step at a time, through a series of simple, proven steps. Now, there’s an authoritative and extensively updated version of Martin Fowler’s classic refactoring book that utilizes Ruby examples and idioms throughout–not code adapted from Java or any other environment.
The authors introduce a detailed catalog of more than 70 proven Ruby refactorings, with specific guidance on when to apply each of them, step-by-step instructions for using them, and example code illustrating how they work. Many of the authors’ refactorings use powerful Ruby-specific features, and all code samples are available for download.
Leveraging Fowler’s original concepts, the authors show how to perform refactoring in a controlled, efficient, incremental manner, so you methodically improve your code’s structure without introducing new bugs. Whatever your role in writing or maintaining Ruby code, this book will be an indispensable resource.
This book will help youUnderstand the core principles of refactoring and the reasons for doing it Recognize “bad smells” in your Ruby code Rework bad designs into well-designed code, one step at a time Build tests to make sure your refactorings work properly Understand the challenges of refactoring and how they can be overcome Compose methods to package code properly Move features between objects to place responsibilities where they fit best Organize data to make it easier to work with Simplify conditional expressions and make more effective use of polymorphism Create interfaces that are easier to understand and use Generalize more effectively Perform larger refactorings that transform entire software systems and may take months or years Successfully refactor Ruby on Rails code
In Service Design Patterns, Rob Daigneau codifies proven design solutions for web services that follow the REST architectural style or leverage the SOAP/WSDL specifications. This catalogue identifies the fundamental topics in web service design and lists the common design patterns for each topic. All patterns identify the context in which they may be used, explain the constituent design elements, and explore the relative strengths and trade-offs. Code examples are provided to help you better understand how the patterns work but are kept general so that you can see how the solutions may be applied to disparate technologies that will inevitably change in the years to come.
This book will help readers answer the following questions:How do you create a web service API, what are the common API styles, and when should a particular style be used? How can clients and web services communicate, and what are the foundations for creating complex conversations in which multiple parties exchange data over extended periods of time? What are the options for implementing web service logic, and when should a particular approach be used? How can clients become less coupled to the underlying systems used by a service? How can information about a web service be discovered? How can generic functions like authentication, validation, caching, and logging be supported on the client or service? What changes to a service cause clients to break? What are the common ways to version a service? How can web services be designed to support the continuing evolution of business logic without forcing clients to constantly upgrade?
This book is an invaluable resource for enterprise architects, solution architects, and developers who use web services to create enterprise IT applications, commercial or open source products, and Software as a Service (SaaS) products that leverage emerging Cloud platforms.
Contents include: Sets and Relations — Cantor's concept of a set, etc.
Natural Number Sequence — Zorn's Lemma, etc.
Extension of Natural Numbers to Real Numbers
Logic — the Statement and Predicate Calculus, etc.
Informal Axiomatic Mathematics
Boolean AlgebraInformal Axiomatic Set TheorySeveral Algebraic Theories — Rings, Integral Domains, Fields, etc.
First-Order Theories — Metamathematics, etc.
Symbolic logic does not figure significantly until the final chapter. The main theme of the book is mathematics as a system seen through the elaboration of real numbers; set theory and logic are seen s efficient tools in constructing axioms necessary to the system.
Mathematics students at the undergraduate level, and those who seek a rigorous but not unnecessarily technical introduction to mathematical concepts, will welcome the return to print of this most lucid work.
"Professor Stoll . . . has given us one of the best introductory texts we have seen." — Cosmos.
"In the reviewer's opinion, this is an excellent book, and in addition to its use as a textbook (it contains a wealth of exercises and examples) can be recommended to all who wish an introduction to mathematical logic less technical than standard treatises (to which it can also serve as preliminary reading)." — Mathematical Reviews.
You will learn how to write a robust game loop, how to organize your entities using components, and take advantage of the CPUs cache to improve your performance. You'll dive deep into how scripting engines encode behavior, how quadtrees and other spatial partitions optimize your engine, and how other classic design patterns can be used in games.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
--Richard Mark Soley, Chairman and CEO, OMG
If you're like most software developers, you're building systems that are increasingly complex. Whether you're creating a desktop application or an enterprise system, complexity is the big hairy monster you must manage.
The Unified Modeling Language (UML) helps you manage this complexity. Whether you're looking to use UML as a blueprint language, a sketch tool, or as a programming language, this book will give you the need-to-know information on how to apply UML to your project. While there are plenty of books available that describe UML, Learning UML 2.0 will show you how to use it. Topics covered include:
Capturing your system's requirements in your model to help you ensure that your designs meet your users' needs
Modeling the parts of your system and their relationships
Modeling how the parts of your system work together to meet your system's requirements
Modeling how your system moves into the real world, capturing how your system will be deployed
Engaging and accessible, this book shows you how to use UML to craft and communicate your project's design. Russ Miles and Kim Hamilton have written a pragmatic introduction to UML based on hard-earned practice, not theory. Regardless of the software process or methodology you use, this book is the one source you need to get up and running with UML 2.0.
Russ Miles is a software engineer for General Dynamics UK, where he works with Java and Distributed Systems, although his passion at the moment is Aspect Orientation and, in particular, AspectJ. Kim Hamilton is a senior software engineer at Northrop Grumman, where she's designed and implemented a variety of systems including web applications and distributed systems, with frequent detours into algorithms development.
This reference gives a quick and authoritative summary of the key concepts of DDD. It is not meant as a learning introduction to the subject. Eric Evans' original book and a handful of others explain DDD in depth from different perspectives. On the other hand, we often need to scan a topic quickly or get the gist of a particular pattern. That is the purpose of this reference. It is complementary to the more discursive books.
The starting point of this text was a set of excerpts from the original book by Eric Evans, Domain-Driven-Design: Tackling Complexity in the Heart of Software, 2004 - in particular, the pattern summaries, which were placed in the Creative Commons by Evans and the publisher, Pearson Education. In this reference, those original summaries have been updated and expanded with new content.
The practice and understanding of DDD has not stood still over the past decade, and Evans has taken this chance to document some important refinements. Some of the patterns and definitions have been edited or rewritten by Evans to clarify the original intent. Three patterns have been added, describing concepts whose usefulness and importance has emerged in the intervening years. Also, the sequence and grouping of the topics has been changed significantly to better emphasize the core principles.
This is an up-to-date, quick reference to DDD.
Designing Web Interfaces illustrates many patterns with examples from working websites. If you need to build or renovate a website to be truly interactive, this book gives you the principles for success.
The selection of topics conveys not only their role in this historical development of mathematics but also their value as bases for understanding the changing nature of mathematics. Among the topics covered in this wide-ranging text are: mathematics before Euclid, Euclid's Elements, non-Euclidean geometry, algebraic structure, formal axiomatics, the real numbers system, sets, logic and philosophy and more. The emphasis on axiomatic procedures provides important background for studying and applying more advanced topics, while the inclusion of the historical roots of both algebra and geometry provides essential information for prospective teachers of school mathematics.
The readable style and sets of challenging exercises from the popular earlier editions have been continued and extended in the present edition, making this a very welcome and useful version of a classic treatment of the foundations of mathematics. "A truly satisfying book." — Dr. Bruce E. Meserve, Professor Emeritus, University of Vermont.
In three parts, this book explains how these services work and what it means to build an application the Microservices Way. You’ll explore a design-based approach to microservice architecture with guidance for implementing various elements. And you’ll get a set of recipes and practices for meeting practical, organizational, and cultural challenges to microservice adoption.Learn how microservices can help you drive business objectivesExamine the principles, practices, and culture that define microservice architecturesExplore a model for creating complex systems and a design process for building a microservice architectureLearn the fundamental design concepts for individual microservicesDelve into the operational elements of a microservices architecture, including containers and service discoveryDiscover how to handle the challenges of introducing microservice architecture in your organization
Topics include:The pros and cons of braced initialization, noexcept specifications, perfect forwarding, and smart pointer make functionsThe relationships among std::move, std::forward, rvalue references, and universal referencesTechniques for writing clear, correct, effective lambda expressionsHow std::atomic differs from volatile, how each should be used, and how they relate to C++'s concurrency APIHow best practices in "old" C++ programming (i.e., C++98) require revision for software development in modern C++
Effective Modern C++ follows the proven guideline-based, example-driven format of Scott Meyers' earlier books, but covers entirely new material.
"After I learned the C++ basics, I then learned how to use C++ in production code from Meyer's series of Effective C++ books. Effective Modern C++ is the most important how-to book for advice on key guidelines, styles, and idioms to use modern C++ effectively and well. Don't own it yet? Buy this one. Now".
-- Herb Sutter, Chair of ISO C++ Standards Committee and C++ Software Architect at Microsoft
The two-part selection of puzzles and paradoxes begins with examinations of the nature of infinity and some curious systems related to Gödel's theorem. The first three chapters of Part II contain generalized Gödel theorems. Symbolic logic is deferred until the last three chapters, which give explanations and examples of first-order arithmetic, Peano arithmetic, and a complete proof of Gödel's celebrated result involving statements that cannot be proved or disproved. The book also includes a lively look at decision theory, better known as recursion theory, which plays a vital role in computer science.
Concise, readable, and actionable, Domain-Driven Design Distilled never buries you in detail–it focuses on what you need to know to get results. Vaughn Vernon, author of the best-selling Implementing Domain-Driven Design, draws on his twenty years of experience applying DDD principles to real-world situations. He is uniquely well-qualified to demystify its complexities, illuminate its subtleties, and help you solve the problems you might encounter.
Vernon guides you through each core DDD technique for building better software. You’ll learn how to segregate domain models using the powerful Bounded Contexts pattern, to develop a Ubiquitous Language within an explicitly bounded context, and to help domain experts and developers work together to create that language. Vernon shows how to use Subdomains to handle legacy systems and to integrate multiple Bounded Contexts to define both team relationships and technical mechanisms.
Domain-Driven Design Distilled brings DDD to life. Whether you’re a developer, architect, analyst, consultant, or customer, Vernon helps you truly understand it so you can benefit from its remarkable power.
Coverage includesWhat DDD can do for you and your organization–and why it’s so important The cornerstones of strategic design with DDD: Bounded Contexts and Ubiquitous Language Strategic design with Subdomains Context Mapping: helping teams work together and integrate software more strategically Tactical design with Aggregates and Domain Events Using project acceleration and management tools to establish and maintain team cadence
The present volume reprints the first English translation of Giidel's far-reaching work. Not only does it make the argument more intelligible, but the introduction contributed by Professor R. B. Braithwaite (Cambridge University}, an excellent work of scholarship in its own right, illuminates it by paraphrasing the major part of the argument.
This Dover edition thus makes widely available a superb edition of a classic work of original thought, one that will be of profound interest to mathematicians, logicians and anyone interested in the history of attempts to establish axioms that would provide a rigorous basis for all mathematics. Translated by B. Meltzer, University of Edinburgh. Preface. Introduction by R. B. Braithwaite.
Beginning with a survey of set theory and its role in mathematics, the text proceeds to definitions and examples of categories and explains the use of arrows in place of set-membership. The introduction to topos structure covers topos logic, algebra of subobjects, and intuitionism and its logic, advancing to the concept of functors, set concepts and validity, and elementary truth. Explorations of categorial set theory, local truth, and adjointness and quantifiers conclude with a study of logical geometry.
The second edition adds a discussion of vector auto-regressive, structural vector auto-regressive, and structural vector error-correction models. To analyze the interactions between the investigated variables, further impulse response function and forecast error variance decompositions are introduced as well as forecasting. The author explains how these model types relate to each other.
"Seamless R and C++ integration with Rcpp" is simply a wonderful book. For anyone who uses C/C++ and R, it is an indispensable resource. The writing is outstanding. A huge bonus is the section on applications. This section covers the matrix packages Armadillo and Eigen and the GNU Scientific Library as well as RInside which enables you to use R inside C++. These applications are what most of us need to know to really do scientific programming with R and C++. I love this book. -- Robert McCulloch, University of Chicago Booth School of Business
Rcpp is now considered an essential package for anybody doing serious computational research using R. Dirk's book is an excellent companion and takes the reader from a gentle introduction to more advanced applications via numerous examples and efficiency enhancing gems. The book is packed with all you might have ever wanted to know about Rcpp, its cousins (RcppArmadillo, RcppEigen .etc.), modules, package development and sugar. Overall, this book is a must-have on your shelf. -- Sanjog Misra, UCLA Anderson School of Management
The Rcpp package represents a major leap forward for scientific computations with R. With very few lines of C++ code, one has R's data structures readily at hand for further computations in C++. Hence, high-level numerical programming can be made in C++ almost as easily as in R, but often with a substantial speed gain. Dirk is a crucial person in these developments, and his book takes the reader from the first fragile steps on to using the full Rcpp machinery. A very recommended book! -- Søren Højsgaard, Department of Mathematical Sciences, Aalborg University, Denmark
"Seamless R and C ++ Integration with Rcpp" provides the first comprehensive introduction to Rcpp. Rcpp has become the most widely-used language extension for R, and is deployed by over one-hundred different CRAN and BioConductor packages. Rcpp permits users to pass scalars, vectors, matrices, list or entire R objects back and forth between R and C++ with ease. This brings the depth of the R analysis framework together with the power, speed, and efficiency of C++.
Dirk Eddelbuettel has been a contributor to CRAN for over a decade and maintains around twenty packages. He is the Debian/Ubuntu maintainer for R and other quantitative software, edits the CRAN Task Views for Finance and High-Performance Computing, is a co-founder of the annual R/Finance conference, and an editor of the Journal of Statistical Software. He holds a Ph.D. in Mathematical Economics from EHESS (Paris), and works in Chicago as a Senior Quantitative Analyst.
Because these new developments in logical thought tended to perfect and sharpen the deductive method, an indispensable tool in many fields for deriving conclusions from accepted assumptions, the author decided to widen the scope of the work. In subsequent editions he revised the book to make it also a text on which to base an elementary college course in logic and the methodology of deductive sciences. It is this revised edition that is reprinted here.
Part One deals with elements of logic and the deductive method, including the use of variables, sentential calculus, theory of identity, theory of classes, theory of relations and the deductive method. The Second Part covers applications of logic and methodology in constructing mathematical theories, including laws of order for numbers, laws of addition and subtraction, methodological considerations on the constructed theory, foundations of arithmetic of real numbers, and more. The author has provided numerous exercises to help students assimilate the material, which not only provides a stimulating and thought-provoking introduction to the fundamentals of logical thought, but is the perfect adjunct to courses in logic and the foundation of mathematics.
Robert Sedgewick and the late Philippe Flajolet have drawn from both classical mathematics and computer science, integrating discrete mathematics, elementary real analysis, combinatorics, algorithms, and data structures. They emphasize the mathematics needed to support scientific studies that can serve as the basis for predicting algorithm performance and for comparing different algorithms on the basis of performance.
Techniques covered in the first half of the book include recurrences, generating functions, asymptotics, and analytic combinatorics. Structures studied in the second half of the book include permutations, trees, strings, tries, and mappings. Numerous examples are included throughout to illustrate applications to the analysis of algorithms that are playing a critical role in the evolution of our modern computational infrastructure.
Improvements and additions in this new edition includeUpgraded figures and code An all-new chapter introducing analytic combinatorics Simplified derivations via analytic combinatorics throughout
The book’s thorough, self-contained coverage will help readers appreciate the field’s challenges, prepare them for advanced results—covered in their monograph Analytic Combinatorics and in Donald Knuth’s The Art of Computer Programming books—and provide the background they need to keep abreast of new research.
"[Sedgewick and Flajolet] are not only worldwide leaders of the field, they also are masters of exposition. I am sure that every serious computer scientist will find this book rewarding in many ways."
—From the Foreword by Donald E. Knuth
If There’s No Risk On Your Next Project, Don’t Do It.
Greater risk brings greater reward, especially in software development. A company that runs away from risk will soon find itself lagging behind its more adventurous competition. By ignoring the threat of negative outcomes–in the name of positive thinking or a can-do attitude–software managers drive their organizations into the ground.
In Waltzing with Bears, Tom DeMarco and Timothy Lister–the best-selling authors of Peopleware–show readers how to identify and embrace worthwhile risks. Developers are then set free to push the limits.
The authors present the benefits of risk management, including that it makes aggressive risk-taking possible, protects management from getting blindsided, provides minimum-cost downside protection, reveals invisible transfers of responsibility, isolates the failure of a subproject.
Readers are armed with strategies for confronting the most common risks that software projects face: schedule flaws, requirements inflation, turnover, specification breakdown, and under-performance.
Waltzing with Bears will help you mitigate the risks–before they turn into project-killing problems. Risks are out there–and they should be there–but there is a way to manage them.
After a brief overview, the approach begins with elementary toposes and advances to internal category theory, topologies and sheaves, geometric morphisms, and logical aspects of topos theory. Additional topics include natural number objects, theorems of Deligne and Barr, cohomology, and set theory. Each chapter concludes with a series of exercises, and an appendix and indexes supplement the text.
Implementing Splunk Second Edition is a learning guide that introduces you to all the latest features and improvements of Splunk 6.2. The book starts by introducing you to various concepts such as charting, reporting, clustering, and visualization. Every chapter is dedicated to enhancing your knowledge of a specific concept, including data models and pivots, speeding up your queries, backfilling, data replication, and so on. By the end of the book, you'll have a very good understanding of Splunk and be able to perform efficient data analysis.
Two of the authors co-wrote The Elements of Statistical Learning (Hastie, Tibshirani and Friedman, 2nd edition 2009), a popular reference book for statistics and machine learning researchers. An Introduction to Statistical Learning covers many of the same topics, but at a level accessible to a much broader audience. This book is targeted at statisticians and non-statisticians alike who wish to use cutting-edge statistical learning techniques to analyze their data. The text assumes only a previous course in linear regression and no knowledge of matrix algebra.
Covering all the mathematical techniques required to resolve geometric problems and design computer programs for computer graphic applications, each chapter explores a specific mathematical topic prior to moving forward into the more advanced areas of matrix transforms, 3D curves and surface patches. Problem-solving techniques using vector analysis and geometric algebra are also discussed.
All the key areas are covered including: Numbers, Algebra, Trigonometry, Coordinate geometry, Transforms, Vectors, Curves and surfaces, Barycentric coordinates, Analytic geometry.
Plus – and unusually in a student textbook – a chapter on geometric algebra is included.
Learning the basics of a modeling technique is not the same as learning how to use and apply it. To develop a data model of an organization is to gain insights into its nature that do not come easily. Indeed, analysts are often expected to understand subtleties of an organization's structure that may have evaded people who have worked there for years.
Here's help for those analysts who have learned the basics of data modeling (or "entity/relationship modeling") but who need to obtain the insights required to prepare a good model of a real business.
Structures common to many types of business are analyzed in areas such as accounting, material requirements planning, process manufacturing, contracts, laboratories, and documents.
In each chapter, high-level data models are drawn from the following business areas:
The Enterprise and Its World The Things of the Enterprise Procedures and Activities Contracts Accounting The Laboratory Material Requirements Planning Process Manufacturing Documents Lower-Level Conventions
This book is a comprehensive guide to the tips, techniques, secrets, standards, and methods of website optimization. From increasing site traffic to maximizing leads, from revving up responsiveness to increasing navigability, from prospect retention to closing more sales, the world of 21st century website optimization is explored, exemplified and explained.
Website Optimization combines the disciplines of online marketing and site performance tuning to attain the competitive advantage necessary on today's Web. You'll learn how to improve your online marketing with effective paid and natural search engine visibility strategies, strengthened lead creation and conversion to sales methods, and gold-standard ad copywriting guidelines. Plus, your increased site speed, reduced download footprint, improved reliability, and improved navigability will work synergistically with those marketing methods to optimize your site's total effectiveness.
In this book for business and IT managers, author Andrew King, president of Website Optimization, LLC, has assembled experts in several key specialties to teach you:
Search engine optimization -- addressing best (and worst) practices to improve search engine visibility, including step-by-step keyword optimization guidelines, category and tag cloud creation, and guerilla PR techniques to boost inbound links and improve rankingsPay-per-click optimization -- including ad copywriting guidelines, setting profit-driven goals, calculating and optimizing bids, landing page optimization, and campaign management tipsOptimizing conversion rates -- increasing leads with site landing page guidelines, such as benefit-oriented copy, credibility-based design, value hierarchies, and tips on creating unique selling propositions and slogansWeb performance tuning -- optimizing ways to use (X)HTML, CSS, and Ajax to increase speed, reduce your download footprint, and increase reliabilityAdvanced tuning -- including client-side techniques such as on-demand content, progressive enhancement, and inline images to save HTTP requests. Plus server-side tips include improving parallelism, using cache control, browser sniffing, HTTP compression, and URL rewriting to remap links and preserve trafficWeb metrics -- illustrating the best metrics and tools to gather details about visitors and measure web conversion and success rates. Covering both search marketing metrics and web performance measures including Pathloss and waterfall graphs
Website Optimization not only provides you with a strategy for success, it also offers specific techniques for you and your staff to follow. A profitable website needs to be well designed, current, highly responsive, and optimally persuasive if you're to attract prospects, convert them to buyers, and get them to come back for more. This book describes precisely what you need to accomplish to achieve all of those goals.
Our love affair with the digital interface is out of control. We’ve embraced it in the boardroom, the bedroom, and the bathroom.
Screens have taken over our lives. Most people spend over eight hours a day staring at a screen, and some “technological innovators” are hoping to grab even more of your eyeball time. You have screens in your pocket, in your car, on your appliances, and maybe even on your face. Average smartphone users check their phones 150 times a day, responding to the addictive buzz of Facebook or emails or Twitter.
Are you sick? There’s an app for that! Need to pray? There’s an app for that! Dead? Well, there’s an app for that, too! And most apps are intentionally addictive distractions that end up taking our attention away from things like family, friends, sleep, and oncoming traffic.
There’s a better way.
In this book, innovator Golden Krishna challenges our world of nagging, screen-based bondage, and shows how we can build a technologically advanced world without digital interfaces.
In his insightful, raw, and often hilarious criticism, Golden reveals fascinating ways to think beyond screens using three principles that lead to more meaningful innovation. Whether you’re working in technology, or just wary of a gadget-filled future, you’ll be enlighted and entertained while discovering that the best interface is no interface.