This book provides a theoretical background in computation to scientists who use computational methods. It explains how computing is used in the natural sciences, and provides a high-level overview of those aspects of computer science and software engineering that are most relevant for computational science. The focus is on concepts, results, and applications, rather than on proofs and derivations. The unique feature of this book is that it “connects the dots between computational science, the theory of computation and information, and software engineering. The book should help scientists to better understand how they use computers in their work, and to better understand how computers work. It is meant to compensate a bit for the general lack of any formal training in computer science and information theory. Readers will learn something they can use throughout their careers.
The essential introduction to computational science—now fully updated and expanded Computational science is an exciting new field at the intersection of the sciences, computer science, and mathematics because much scientific investigation now involves computing as well as theory and experiment. This textbook provides students with a versatile and accessible introduction to the subject. It assumes only a background in high school algebra, enables instructors to follow tailored pathways through the material, and is the only textbook of its kind designed specifically for an introductory course in the computational science and engineering curriculum. While the text itself is generic, an accompanying website offers tutorials and files in a variety of software packages. This fully updated and expanded edition features two new chapters on agent-based simulations and modeling with matrices, ten new project modules, and an additional module on diffusion. Besides increased treatment of high-performance computing and its applications, the book also includes additional quick review questions with answers, exercises, and individual and team projects. The only introductory textbook of its kind—now fully updated and expanded Features two new chapters on agent-based simulations and modeling with matrices Increased coverage of high-performance computing and its applications Includes additional modules, review questions, exercises, and projects An online instructor's manual with exercise answers, selected project solutions, and a test bank and solutions (available only to professors) An online illustration package is available to professors
From the winner of the Turing Award and the Abel Prize, an introduction to computational complexity theory, its connections and interactions with mathematics, and its central role in the natural and social sciences, technology, and philosophy Mathematics and Computation provides a broad, conceptual overview of computational complexity theory—the mathematical study of efficient computation. With important practical applications to computer science and industry, computational complexity theory has evolved into a highly interdisciplinary field, with strong links to most mathematical areas and to a growing number of scientific endeavors. Avi Wigderson takes a sweeping survey of complexity theory, emphasizing the field’s insights and challenges. He explains the ideas and motivations leading to key models, notions, and results. In particular, he looks at algorithms and complexity, computations and proofs, randomness and interaction, quantum and arithmetic computation, and cryptography and learning, all as parts of a cohesive whole with numerous cross-influences. Wigderson illustrates the immense breadth of the field, its beauty and richness, and its diverse and growing interactions with other areas of mathematics. He ends with a comprehensive look at the theory of computation, its methodology and aspirations, and the unique and fundamental ways in which it has shaped and will further shape science, technology, and society. For further reading, an extensive bibliography is provided for all topics covered. Mathematics and Computation is useful for undergraduate and graduate students in mathematics, computer science, and related fields, as well as researchers and teachers in these fields. Many parts require little background, and serve as an invitation to newcomers seeking an introduction to the theory of computation. Comprehensive coverage of computational complexity theory, and beyond High-level, intuitive exposition, which brings conceptual clarity to this central and dynamic scientific discipline Historical accounts of the evolution and motivations of central concepts and models A broad view of the theory of computation's influence on science, technology, and society Extensive bibliography
A very active field of research is emerging at the frontier of statistical physics, theoretical computer science/discrete mathematics, and coding/information theory. This book sets up a common language and pool of concepts, accessible to students and researchers from each of these fields.
Computational science seeks to gain understanding of science through the use and analysis of mathematical models on high performance computers. The topics covered are gravitational waves, applications of wavelet and fractals, modeling by partial differential equations on flat structure as, production of natural calamities and diseases, etc
Scientific computing is the study of how to use computers effectively to solve problems that arise from the mathematical modeling of phenomena in science and engineering. It is based on mathematics, numerical and symbolic/algebraic computations and visualization. This book serves as an introduction to both the theory and practice of scientific computing, with each chapter presenting the basic algorithms that serve as the workhorses of many scientific codes; we explain both the theory behind these algorithms and how they must be implemented in order to work reliably in finite-precision arithmetic. The book includes many programs written in Matlab and Maple – Maple is often used to derive numerical algorithms, whereas Matlab is used to implement them. The theory is developed in such a way that students can learn by themselves as they work through the text. Each chapter contains numerous examples and problems to help readers understand the material “hands-on”.
This interdisciplinary book provides a compendium of projects, plus numerous example programs for readers to study and explore. Designed for advanced undergraduates or graduates of science, mathematics and engineering who will deal with scientific computation in their future studies and research, it also contains new and useful reference materials for researchers. The problem sets range from the tutorial to exploratory and, at times, to "the impossible". The projects were collected from research results and computational dilemmas during the authors tenure as Chief Scientist at NeXT Computer, and from his lectures at Reed College. The content assumes familiarity with such college topics as calculus, differential equations, and at least elementary programming. Each project focuses on computation, theory, graphics, or a combination of these, and is designed with an estimated level of difficulty. The support code for each takes the form of either C or Mathematica, and is included in the appendix and on the bundled diskette. The algorithms are clearly laid out within the projects, such that the book may be used with other symbolic numerical and algebraic manipulation products
More physicists today are taking on the role of software developer as part of their research, but software development isnâ??t always easy or obvious, even for physicists. This practical book teaches essential software development skills to help you automate and accomplish nearly any aspect of research in a physics-based field. Written by two PhDs in nuclear engineering, this book includes practical examples drawn from a working knowledge of physics concepts. Youâ??ll learn how to use the Python programming language to perform everything from collecting and analyzing data to building software and publishing your results. In four parts, this book includes: Getting Started: Jump into Python, the command line, data containers, functions, flow control and logic, and classes and objects Getting It Done: Learn about regular expressions, analysis and visualization, NumPy, storing data in files and HDF5, important data structures in physics, computing in parallel, and deploying software Getting It Right: Build pipelines and software, learn to use local and remote version control, and debug and test your code Getting It Out There: Document your code, process and publish your findings, and collaborate efficiently; dive into software licenses, ownership, and copyright procedures
A guide to cloud computing for students, scientists, and engineers, with advice and many hands-on examples. The emergence of powerful, always-on cloud utilities has transformed how consumers interact with information technology, enabling video streaming, intelligent personal assistants, and the sharing of content. Businesses, too, have benefited from the cloud, outsourcing much of their information technology to cloud services. Science, however, has not fully exploited the advantages of the cloud. Could scientific discovery be accelerated if mundane chores were automated and outsourced to the cloud? Leading computer scientists Ian Foster and Dennis Gannon argue that it can, and in this book offer a guide to cloud computing for students, scientists, and engineers, with advice and many hands-on examples. The book surveys the technology that underpins the cloud, new approaches to technical problems enabled by the cloud, and the concepts required to integrate cloud services into scientific work. It covers managing data in the cloud, and how to program these services; computing in the cloud, from deploying single virtual machines or containers to supporting basic interactive science experiments to gathering clusters of machines to do data analytics; using the cloud as a platform for automating analysis procedures, machine learning, and analyzing streaming data; building your own cloud with open source software; and cloud security. The book is accompanied by a website, Cloud4SciEng.org, that provides a variety of supplementary material, including exercises, lecture slides, and other resources helpful to readers and instructors.
The Physics of Computing gives a foundational view of the physical principles underlying computers. Performance, power, thermal behavior, and reliability are all harder and harder to achieve as transistors shrink to nanometer scales. This book describes the physics of computing at all levels of abstraction from single gates to complete computer systems. It can be used as a course for juniors or seniors in computer engineering and electrical engineering, and can also be used to teach students in other scientific disciplines important concepts in computing. For electrical engineering, the book provides the fundamentals of computing that link core concepts to computing. For computer science, it provides foundations of key challenges such as power consumption, performance, and thermal. The book can also be used as a technical reference by professionals. - Links fundamental physics to the key challenges in computer design, including memory wall, power wall, reliability - Provides all of the background necessary to understand the physical underpinnings of key computing concepts - Covers all the major physical phenomena in computing from transistors to systems, including logic, interconnect, memory, clocking, I/O