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




Digitized


Book Description

"[The author] explores how [computer science] grew from its theoretical conception by pioneers such as Turing, through its growth spurts in the Internet, its difficult adolescent stage where the promises of AI were never achieved and dot-com bubble burst, to its current stage as a (semi)mature field, now capable of remarkable achievements."--Publisher's description.




The Computer Book


Book Description

An illustrated journey through 250 milestones in computer science, from the ancient abacus to Boolean algebra, GPS, and social media. With 250 illustrated landmark inventions, publications, and events—encompassing everything from ancient record-keeping devices to the latest computing technologies—The Computer Book takes a chronological journey through the history and future of computer science. Two expert authors, with decades of experience working in computer research and innovation, explore topics including: the Sumerian abacus * the first spam message * Morse code * cryptography * early computers * Isaac Asimov’s laws of robotics * UNIX and early programming languages * movies * video games * mainframes * minis and micros * hacking * virtual reality * and more “What a delight! A fast trip through the computing landscape in the company of friendly tour guides who know the history.” —Harry Lewis, Gordon McKay Professor of Computer Science, Harvard University




Writing for Computer Science


Book Description

A complete update to a classic, respected resource Invaluable reference, supplying a comprehensive overview on how to undertake and present research




Ideas That Created the Future


Book Description

Classic papers by thinkers ranging from from Aristotle and Leibniz to Norbert Wiener and Gordon Moore that chart the evolution of computer science. Ideas That Created the Future collects forty-six classic papers in computer science that map the evolution of the field. It covers all aspects of computer science: theory and practice, architectures and algorithms, and logic and software systems, with an emphasis on the period of 1936-1980 but also including important early work. Offering papers by thinkers ranging from Aristotle and Leibniz to Alan Turing and Nobert Wiener, the book documents the discoveries and inventions that created today's digital world. Each paper is accompanied by a brief essay by Harry Lewis, the volume's editor, offering historical and intellectual context.




On Growth, Form and Computers


Book Description

Conceived for both computer scientists and biologists alike, this collection of 22 essays highlights the important new role that computers play in developmental biology research. Essays show how through computer modeling, researchers gain further insight into developmental processes. Featured essays also cover their use in designing computer algorithms to tackle computer science problems in areas like neural network design, robot control, evolvable hardware, and more. Peter Bentley, noted for his prolific research on evolutionary computation, and Sanjeev Kumar head up a respected team to guide readers through these very complex and fascinating disciplines.* Covers both developmental biology and computational development -- the only book of its kind!* Provides introductory material and more detailed information on BOTH disciplines * Includes contribututions from Richard Dawkins, Lewis Wolpert, Ian Stewart, and many other experts




Science in the Age of Computer Simulation


Book Description

"Digital computer simulation helps study phenomena of great complexity, but how much do we know about the limits and possibilities of this new scientific practice? How do simulations compare to traditional experiments? And are they reliable? Scrutinizing these issues with a philosophical lens, Eric Winsberg explores the impact of simulation on such issues as the nature of scientific evidence, the role of values in science, the nature and role of fictions in science, and the relationship between simulation and experiment, theories and data, and theories at different levels of description"--Cover.




Essential Logic for Computer Science


Book Description

An introduction to applying predicate logic to testing and verification of software and digital circuits that focuses on applications rather than theory. Computer scientists use logic for testing and verification of software and digital circuits, but many computer science students study logic only in the context of traditional mathematics, encountering the subject in a few lectures and a handful of problem sets in a discrete math course. This book offers a more substantive and rigorous approach to logic that focuses on applications in computer science. Topics covered include predicate logic, equation-based software, automated testing and theorem proving, and large-scale computation. Formalism is emphasized, and the book employs three formal notations: traditional algebraic formulas of propositional and predicate logic; digital circuit diagrams; and the widely used partially automated theorem prover, ACL2, which provides an accessible introduction to mechanized formalism. For readers who want to see formalization in action, the text presents examples using Proof Pad, a lightweight ACL2 environment. Readers will not become ALC2 experts, but will learn how mechanized logic can benefit software and hardware engineers. In addition, 180 exercises, some of them extremely challenging, offer opportunities for problem solving. There are no prerequisites beyond high school algebra. Programming experience is not required to understand the book's equation-based approach. The book can be used in undergraduate courses in logic for computer science and introduction to computer science and in math courses for computer science students.




Cloud Computing for Science and Engineering


Book Description

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.




Scientific Programming and Computer Architecture


Book Description

A variety of programming models relevant to scientists explained, with an emphasis on how programming constructs map to parts of the computer. What makes computer programs fast or slow? To answer this question, we have to get behind the abstractions of programming languages and look at how a computer really works. This book examines and explains a variety of scientific programming models (programming models relevant to scientists) with an emphasis on how programming constructs map to different parts of the computer's architecture. Two themes emerge: program speed and program modularity. Throughout this book, the premise is to "get under the hood," and the discussion is tied to specific programs. The book digs into linkers, compilers, operating systems, and computer architecture to understand how the different parts of the computer interact with programs. It begins with a review of C/C++ and explanations of how libraries, linkers, and Makefiles work. Programming models covered include Pthreads, OpenMP, MPI, TCP/IP, and CUDA.The emphasis on how computers work leads the reader into computer architecture and occasionally into the operating system kernel. The operating system studied is Linux, the preferred platform for scientific computing. Linux is also open source, which allows users to peer into its inner workings. A brief appendix provides a useful table of machines used to time programs. The book's website (https://github.com/divakarvi/bk-spca) has all the programs described in the book as well as a link to the html text.