Spreadsheets are used daily by millions of people for tasks that range from organizing a list of addresses to carrying out complex economic simulations. Spreadsheet programs are easy to learn and convenient to use because they have a clear visual model and a simple efficient underlying computational model. Yet although the basic spreadsheet model could be extended, improved, or otherwise experimented with in many ways, there is no coherently designed, reasonably efficient open source spreadsheet implementation that is a suitable platform for such experiments. This book fills the gap, teaching users how to experiment with and implement innovative spreadsheet functionality and introducing two software platforms for doing so. Along the way, it draws on and illustrates software technologies and computer science topics that range from object-oriented programming to compiler technology.

Spreadsheet Implementation Technology surveys a wide range of information about spreadsheets drawn from user experience, the scientific literature, and patents. After summarizing the spreadsheet computation model and the most important challenges for efficient recalculation, the book describes Corecalc, a core implementation of essential spreadsheet functionality suitable for practical experiments, and Funcalc, an extension of Corecalc that allows users to define their own functions without extraneous programming languages or loss of efficiency. It also shows the advantages of automatic function specialization and offers a user’s manual for Funcalc. The Corecalc and Funcalc software is downloadable free of charge.

The combination of two of the twentieth century’s most influential and revolutionary scientific theories, information theory and quantum mechanics, gave rise to a radically new view of computing and information. Quantum information processing explores the implications of using quantum mechanics instead of classical mechanics to model information and its processing. Quantum computing is not about changing the physical substrate on which computation is done from classical to quantum but about changing the notion of computation itself, at the most basic level. The fundamental unit of computation is no longer the bit but the quantum bit or qubit. This comprehensive introduction to the field offers a thorough exposition of quantum computing and the underlying concepts of quantum physics, explaining all the relevant mathematics and offering numerous examples. With its careful development of concepts and thorough explanations, the book makes quantum computing accessible to students and professionals in mathematics, computer science, and engineering. A reader with no prior knowledge of quantum physics (but with sufficient knowledge of linear algebra) will be able to gain a fluent understanding by working through the book.

Complex communicating computer systems—computers connected by data networks and in constant communication with their environments—do not always behave as expected. This book introduces behavioral modeling, a rigorous approach to behavioral specification and verification of concurrent and distributed systems. It is among the very few techniques capable of modeling systems interaction at a level of abstraction sufficient for the interaction to be understood and analyzed. Offering both a mathematically grounded theory and real-world applications, the book is suitable for classroom use and as a reference for system architects.

The book covers the foundation of behavioral modeling using process algebra, transition systems, abstract data types, and modal logics. Exercises and examples augment the theoretical discussion. The book introduces a modeling language, mCRL2, that enables concise descriptions of even the most intricate distributed algorithms and protocols. Using behavioral axioms and such proof methods as confluence, cones, and foci, readers will learn how to prove such algorithms equal to their specifications. Specifications in mCRL2 can be simulated, visualized, or verified against their requirements. An extensive mCRL2 toolset for mechanically verifying the requirements is freely available online; this toolset has been successfully used to design and analyze industrial software that ranges from healthcare applications to particle accelerators at CERN. Appendixes offer material on equations and notation as well as exercise solutions.

Geologists in the field climb hills and hang onto craggy outcrops; they put their fingers in sand and scratch, smell, and even taste rocks. Beginning in 2004, however, a team of geologists and other planetary scientists did field science in a dark room in Pasadena, exploring Mars from NASA’s Jet Propulsion Laboratory (JPL) by means of the remotely operated Mars Exploration Rovers (MER). Clustered around monitors, living on Mars time, painstakingly plotting each movement of the rovers and their tools, sensors, and cameras, these scientists reported that they felt as if they were on Mars themselves, doing field science. The MER created a virtual experience of being on Mars. In this book, William Clancey examines how the MER has changed the nature of planetary field science.

Drawing on his extensive observations of scientists in the field and at the JPL, Clancey investigates how the design of the rover mission enables field science on Mars, explaining how the scientists and rover engineers manipulate the vehicle and why the programmable tools and analytic instruments work so well for them. He shows how the scientists felt not as if they were issuing commands to a machine but rather as if they were working on the red planet, riding together in the rover on a voyage of discovery.

The goal of machine learning is to program computers to use example data or past experience to solve a given problem. Many successful applications of machine learning exist already, including systems that analyze past sales data to predict customer behavior, optimize robot behavior so that a task can be completed using minimum resources, and extract knowledge from bioinformatics data. Introduction to Machine Learning is a comprehensive textbook on the subject, covering a broad array of topics not usually included in introductory machine learning texts. Subjects include supervised learning; Bayesian decision theory; parametric, semi-parametric, and nonparametric methods; multivariate analysis; hidden Markov models; reinforcement learning; kernel machines; graphical models; Bayesian estimation; and statistical testing.

Machine learning is rapidly becoming a skill that computer science students must master before graduation. The third edition of Introduction to Machine Learning reflects this shift, with added support for beginners, including selected solutions for exercises and additional example data sets (with code available online). Other substantial changes include discussions of outlier detection; ranking algorithms for perceptrons and support vector machines; matrix decomposition and spectral methods; distance estimation; new kernel algorithms; deep learning in multilayered perceptrons; and the nonparametric approach to Bayesian methods. All learning algorithms are explained so that students can easily move from the equations in the book to a computer program. The book can be used by both advanced undergraduates and graduate students. It will also be of interest to professionals who are concerned with the application of machine learning methods.

Downloadable instructor resources available for this title: solution manual, programs, lecture slides, and file of figures in the book

ALIFE 14, the Fourteenth International Conference on the Synthesis and Simulation of Living Systems, presents the current state of the art of Artificial Life—the highly interdisciplinary research area on artificially constructed living systems, including mathematical, computational, robotic, and biochemical ones. The understanding and application of such generalized forms of life, or “life as it could be,” have been producing significant contributions to various fields of science and engineering.

All design is situated—carried out from an embedded position. Design involves many participants and encompasses a range of interactions and interdependencies among designers, designs, design methods, and users. Design is also multidisciplinary, extending beyond the traditional design professions into such domains as health, culture, education, and transportation. This book presents eighteen situated design methods, offering cases and analyses of projects that range from designing interactive installations, urban spaces, and environmental systems to understanding customer experiences.

Each chapter presents a different method, combining theoretical, methodological, and empirical discussions with accounts of actual experiences. The book describes methods for defining and organizing a design project, organizing collaborative processes, creating aesthetic experiences, and incorporating sustainability into processes and projects. The diverse and multidisciplinary methods presented include a problem- and project-based approach to design studies; a “Wheel of Rituals” intended to promote creativity; a pragmatist method for situated experience design that derives from empirical studies of film production and performance design; and ways to transfer design methods in a situated manner. The book will be an important resource for researchers, students, and practitioners of interdisciplinary design.

In this book, Dan Gusfield examines combinatorial algorithms to construct genealogical and exact phylogenetic networks, particularly ancestral recombination graphs (ARGs). The algorithms produce networks (or information about networks) that serve as hypotheses about the true genealogical history of observed biological sequences and can be applied to practical biological problems.

Phylogenetic trees have been the traditional means to represent evolutionary history, but there is a growing realization that networks rather than trees are often needed, most notably for recent human history. This has led to the development of ARGs in population genetics and, more broadly, to phylogenetic networks. ReCombinatorics offers an in-depth, rigorous examination of current research on the combinatorial, graph-theoretic structure of ARGs and explicit phylogenetic networks, and algorithms to reconstruct or deduce information about those networks.

ReCombinatorics, a groundbreaking contribution to the emerging field of phylogenetic networks, connects and unifies topics in population genetics and phylogenetics that have traditionally been discussed separately and considered to be unrelated. It covers the necessary combinatorial and algorithmic background material; the various biological phenomena; the mathematical, population genetic, and phylogenetic models that capture the essential elements of these phenomena; the combinatorial and algorithmic problems that derive from these models; the theoretical results that have been obtained; related software that has been developed; and some empirical testing of the software on simulated and real biological data.

Computers were first conceived as “thinking machines,” but in the twenty-first century they have become social machines, online places where people meet friends, play games, and collaborate on projects. In this book, Judith Donath argues persuasively that for social media to become truly sociable media, we must design interfaces that reflect how we understand and respond to the social world. People and their actions are still harder to perceive online than face to face: interfaces are clunky, and we have less sense of other people’s character and intentions, where they congregate, and what they do.

Donath presents new approaches to creating interfaces for social interaction. She addresses such topics as visualizing social landscapes, conversations, and networks; depicting identity with knowledge markers and interaction history; delineating public and private space; and bringing the online world’s open sociability into the physical world. Donath asks fundamental questions about how we want to live online and offers thought-provoking designs that explore radically new ways of interacting and communicating.

Our contemporary concerns about food range from food security to agricultural sustainability to getting dinner on the table for family and friends. This book investigates food issues as they intersect with participatory Internet culture—blogs, wikis, online photo- and video-sharing platforms, and social networks—in efforts to bring about a healthy, socially inclusive, and sustainable food future. Focusing on our urban environments provisioned with digital and network capacities, and drawing on such “bottom-up” sociotechnical trends as DIY and open source, the chapters describe engagements with food and technology that engender (re-)creative interactions.

In the first section, “Eat,” contributors discuss technology-aided approaches to sustainable dining, including digital communication between farmers and urban consumers and a “telematic” dinner party at which guests are present electronically. The chapters in “Cook” describe, among other things, “smart” chopping boards that encourage mindful eating and a website that supports urban wild fruit foraging. Finally, “Grow” connects human-computer interaction with achieving a secure, safe, and ethical food supply, offering chapters on the use of interactive technologies in urban agriculture, efforts to trace the provenance of food with a “Fair Tracing” tool, and other projects.