"I hope that readers will learn to use the full expressibility and power of OpenMP. This book should provide an excellent introduction to beginners, and the performance section should help those with some experience who want to push OpenMP to its limits."
—from the foreword by David J. Kuck, Intel Fellow, Software and Solutions Group, and Director, Parallel and Distributed Solutions, Intel Corporation
Interactive systems and devices, from mobile phones to office copiers, do not fulfill their potential for a wide variety of reasons—not all of them technical. Press On shows that we can design better interactive systems and devices if we draw on sound computer science principles. It uses state machines and graph theory as a powerful and insightful way to analyze and design better interfaces and examines specific designs and creative solutions to design problems.
It has been more than twenty years since desktop publishing reinvented design, and it's clear that there is a growing need for designers and artists to learn programming skills to fill the widening gap between their ideas and the capability of their purchased software. This book is an introduction to the concepts of computer programming within the context of the visual arts.
What is the status of the Free and Open Source Software (F/OSS) revolution? Has the creation of software that can be freely used, modified, and redistributed transformed industry and society, as some predicted, or is this transformation still a work in progress? Perspectives on Free and Open Source Software brings together leading analysts and researchers to address this question, examining specific aspects of F/OSS in a way that is both scientifically rigorous and highly relevant to real-life managerial and technical concerns.
Open source software is considered by many to be a novelty and the open source movement a revolution. Yet the collaborative creation of knowledge has gone on for as long as humans have been able to communicate. CODE looks at the collaborative model of creativity—with examples ranging from collective ownership in indigenous societies to free software, academic science, and the human genome project—and finds it an alternative to proprietary frameworks for creativity based on strong intellectual property rights.
After completing this self-contained course on server-based Internet applications software, students who start with only the knowledge of how to write and debug a computer program will have learned how to build web-based applications on the scale of Amazon.com. Unlike the desktop applications that most students have already learned to build, server-based applications have multiple simultaneous users. This fact, coupled with the unreliability of networks, gives rise to the problems of concurrency and transactions, which students learn to manage by using the relational database system.
The goal of The Reasoned Schemer is to help the functional programmer think logically and the logic programmer think functionally. The authors of The Reasoned Schemer believe that logic programming is a natural extension of functional programming, and they demonstrate this by extending the functional language Scheme with logical constructs—thereby combining the benefits of both styles. The extension encapsulates most of the ideas in the logic programming language Prolog.
This concise guide to the Java programming language, version 5.0, offers a quick reference for the reader who wants to know the language in greater detail than that provided by the standard text or language reference book. It presents the entire Java programming language and essential parts of the class libraries—the collection classes and the input-output classes.
The study of type systems for programming languages now touches many areas of computer science, from language design and implementation to software engineering, network security, databases, and analysis of concurrent and distributed systems. This book offers accessible introductions to key ideas in the field, with contributions by experts on each topic.
C# is an object-oriented programming language that is similar to the Java programming language in many respects but more comprehensive and different in most details. This book gives a concise description of C#. It is intended as a guide for readers who know Java and want to learn C# and as a quick reference for anyone who wants to know C# in more detail than that provided by a standard textbook. The final chapter of C# Precisely summarizes the differences between C# and Java.