The Science of Computing


Book Description

The identity of computing has been fiercely debated throughout its short history. Why is it still so hard to define computing as an academic discipline? Is computing a scientific, mathematical, or engineering discipline? By describing the mathematical, engineering, and scientific traditions of computing, The Science of Computing: Shaping a Discipline presents a rich picture of computing from the viewpoints of the field’s champions. The book helps readers understand the debates about computing as a discipline. It explains the context of computing’s central debates and portrays a broad perspective of the discipline. The book first looks at computing as a formal, theoretical discipline that is in many ways similar to mathematics, yet different in crucial ways. It traces a number of discussions about the theoretical nature of computing from the field’s intellectual origins in mathematical logic to modern views of the role of theory in computing. The book then explores the debates about computing as an engineering discipline, from the central technical innovations to the birth of the modern technical paradigm of computing to computing’s arrival as a new technical profession to software engineering gradually becoming an academic discipline. It presents arguments for and against the view of computing as engineering within the context of software production and analyzes the clash between the theoretical and practical mindsets. The book concludes with the view of computing as a science in its own right—not just as a tool for other sciences. It covers the early identity debates of computing, various views of computing as a science, and some famous characterizations of the discipline. It also addresses the experimental computer science debate, the view of computing as a natural science, and the algorithmization of sciences.




Fundamentals of Scientific Computing


Book Description

The book of nature is written in the language of mathematics -- Galileo Galilei How is it possible to predict weather patterns for tomorrow, with access solely to today’s weather data? And how is it possible to predict the aerodynamic behavior of an aircraft that has yet to be built? The answer is computer simulations based on mathematical models – sets of equations – that describe the underlying physical properties. However, these equations are usually much too complicated to solve, either by the smartest mathematician or the largest supercomputer. This problem is overcome by constructing an approximation: a numerical model with a simpler structure can be translated into a program that tells the computer how to carry out the simulation. This book conveys the fundamentals of mathematical models, numerical methods and algorithms. Opening with a tutorial on mathematical models and analysis, it proceeds to introduce the most important classes of numerical methods, with finite element, finite difference and spectral methods as central tools. The concluding section describes applications in physics and engineering, including wave propagation, heat conduction and fluid dynamics. Also covered are the principles of computers and programming, including MATLAB®.




The Physics of Computing


Book Description

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




The Green Computing Book


Book Description

State-of-the-Art Approaches to Advance the Large-Scale Green Computing Movement Edited by one of the founders and lead investigator of the Green500 list, The Green Computing Book: Tackling Energy Efficiency at Large Scale explores seminal research in large-scale green computing. It begins with low-level, hardware-based approaches and then traverses up the software stack with increasingly higher-level, software-based approaches. In the first chapter, the IBM Blue Gene team illustrates how to improve the energy efficiency of a supercomputer by an order of magnitude without any system performance loss in parallelizable applications. The next few chapters explain how to enhance the energy efficiency of a large-scale computing system via compiler-directed energy optimizations, an adaptive run-time system, and a general prediction performance framework. The book then explores the interactions between energy management and reliability and describes storage system organization that maximizes energy efficiency and reliability. It also addresses the need for coordinated power control across different layers and covers demand response policies in computing centers. The final chapter assesses the impact of servers on data center costs.




Scientific Computing


Book Description

This book differs from traditional numerical analysis texts in that it focuses on the motivation and ideas behind the algorithms presented rather than on detailed analyses of them. It presents a broad overview of methods and software for solving mathematical problems arising in computational modeling and data analysis, including proper problem formulation, selection of effective solution algorithms, and interpretation of results.? In the 20 years since its original publication, the modern, fundamental perspective of this book has aged well, and it continues to be used in the classroom. This Classics edition has been updated to include pointers to Python software and the Chebfun package, expansions on barycentric formulation for Lagrange polynomial interpretation and stochastic methods, and the availability of about 100 interactive educational modules that dynamically illustrate the concepts and algorithms in the book. Scientific Computing: An Introductory Survey, Second Edition is intended as both a textbook and a reference for computationally oriented disciplines that need to solve mathematical problems.




Explorations in Computing


Book Description

An Active Learning Approach to Teaching the Main Ideas in Computing Explorations in Computing: An Introduction to Computer Science and Python Programming teaches computer science students how to use programming skills to explore fundamental concepts and computational approaches to solving problems. Tbook gives beginning students an introduction to




An Introduction to Scientific Computing


Book Description

This book demonstrates scientific computing by presenting twelve computational projects in several disciplines including Fluid Mechanics, Thermal Science, Computer Aided Design, Signal Processing and more. Each follows typical steps of scientific computing, from physical and mathematical description, to numerical formulation and programming and critical discussion of results. The text teaches practical methods not usually available in basic textbooks: numerical checking of accuracy, choice of boundary conditions, effective solving of linear systems, comparison to exact solutions and more. The final section of each project contains the solutions to proposed exercises and guides the reader in using the MATLAB scripts available online.




Elements of Scientific Computing


Book Description

Science used to be experiments and theory, now it is experiments, theory and computations. The computational approach to understanding nature and technology is currently flowering in many fields such as physics, geophysics, astrophysics, chemistry, biology, and most engineering disciplines. This book is a gentle introduction to such computational methods where the techniques are explained through examples. It is our goal to teach principles and ideas that carry over from field to field. You will learn basic methods and how to implement them. In order to gain the most from this text, you will need prior knowledge of calculus, basic linear algebra and elementary programming.




Basic Category Theory for Computer Scientists


Book Description

Basic Category Theory for Computer Scientists provides a straightforward presentation of the basic constructions and terminology of category theory, including limits, functors, natural transformations, adjoints, and cartesian closed categories. Category theory is a branch of pure mathematics that is becoming an increasingly important tool in theoretical computer science, especially in programming language semantics, domain theory, and concurrency, where it is already a standard language of discourse. Assuming a minimum of mathematical preparation, Basic Category Theory for Computer Scientists provides a straightforward presentation of the basic constructions and terminology of category theory, including limits, functors, natural transformations, adjoints, and cartesian closed categories. Four case studies illustrate applications of category theory to programming language design, semantics, and the solution of recursive domain equations. A brief literature survey offers suggestions for further study in more advanced texts. Contents Tutorial • Applications • Further Reading




Fundamentals of Natural Computing


Book Description

Natural computing brings together nature and computing to develop new computational tools for problem solving; to synthesize natural patterns and behaviors in computers; and to potentially design novel types of computers. Fundamentals of Natural Computing: Basic Concepts, Algorithms, and Applications presents a wide-ranging survey of novel techniqu