A rescued public library · 1,230 legally free books

FreeTechBooks.org

Algorithms and Data Structures

Introduction to Computing – Explorations in Language, Logic, and Machines

Opens the author, publisher or archive page. This title is hosted externally.

Cover of Introduction to Computing – Explorations in Language, Logic, and Machines

CC BY-NC-SA

Focuses on how to describe information processes by defining procedures, how to analyze the costs required to carry out a procedure, and the fundamental limits of what can and cannot be computed mechanically.

About this book

Course Description.

In the past hundred years, computer science has changed the world more than any other field. Without computer science, humans would not have walked on the Moon, modern medicine would not exist, and Wal-Mart would be a small store in Arkansas. But this course is not just about the pragmatic impact of computer science; it is about how computer science changes the ways we think, solve problems and understand the world.

Despite its name, computer science has very little to do with the beige boxes we call computers, and it is far from being a science. It has more in common with music and mathematics than it does with science or engineering. At its core, computer science is the study of imperative knowledge. Whereas mathematics is all about declarative knowledge (“what is”), computer science is all about “how to” knowledge.

Computer science is the study of information processes. Computer scientists study how to describe, predict properties of, and efficiently implement information processes.

Most of what we know about describing information processes stems from three simple ideas:
1. You can define things in terms of themselves (recursive definitions).
2. You can treat procedures and data as one and the same (universality).
3. When you give something a name, it becomes more useful (abstraction).

Although these ideas are simple, they have profound implications that it takes many years to fully appreciate.

The kinds of properties we want to predict about information processes include whether or not there is a procedure that can always solve a given problem (computability), and how much time and space will be required to solve a given problem (complexity).

Bibliographic record recovered from the original FreeTechBooks listing. View archived source.

About the author

David Evans

David Evans is a Professor of Computer Science at the University of Virginia where he leads research in computer security and privacy. He won the Outstanding Faculty Award from the State Council of Higher Education for Virginia and…

1 book in the catalog