1. Godel, Escher, Bach by
Douglas Hofstadter
Godel, Escher and Bach, written by Douglas Hofstadter, while the
title would suggest it is discussion of a mathematician, an artist,
and a composer, is a complex examination of how human beings
develop perception and meaning. More specifically, the book
explores, through a series of dialogues and narrations, how
symbols, thought and language are all intertwined and how reality
is essentially a composition of overlapping meanings and
perceptions. The book challenges the reader to observe the
system
of symbolic meanings around him or her objectively.
2. The Art of Computer Programming by
Donald Knuth
The Art of Programming, by Donald Knuth, is a comprehensive,
multi-volume work discussing various programming algorithms and
their analysis. The work was voted by American Scientist as one of
the twelve best scientific monographs of the twentieth century. The
author famously offered a reward of two dollars and fifty six cents
for anyone who found and reported an error in the text. The work
features exercises of multiple difficulty levels, from basic warm
up exercises to ongoing research problems, allowing the reader to
work up his skill and familiarity with the material.
3.
The Elements of Programming Style by Brian W. Kernighan and P. J.
Plauger
The Elements of Programming Style, by Brian W. Kernighan and P. J.
Plauger, is an influential book on the
study of computer programming styles and
languages. It endorses the strategy that
computer
programs should be written not only to
satisfy the
compiler, but also keep the human readers in
mind. The book utilizes examples taken from actual, published
programs. The book’s recommendations are made in the context of the
examples which are realistic rather than an academic vacuum.
4. Theory of Parsing, Translation and Compiling,
by Alfred V. Aho, and Jeffrey D. Ullman
The book,
Theory of Parsing,
Translation and Compiling, by Alfred V. Aho, and
Jeffrey D. Ullman, is intended for a senior or
graduate
course in compiling theory. It is a
theoretical treatment of a practical
computer
science subject. Since computer science is
an ever changing area of study, this book emphasizes ideas, rather
than specific
application details. The algorithms and concepts
presented in the book should survive to new generations of computer
technology, programs and systems. Numerous
examples are given, with specific context, rather than on the large
complicated contexts normally found in implementations, even in
cases where the theoretical ideas are difficult to understand in
isolation.
5.
The Computer and the Brain, by John von Neumann
The
Computer and the Brain, by John von Neumann, is
theoretical work which examines mathematics, logic’s, and
statistics as the
basic
tools of information. The book explores
how these subjects make up the entirety of the planning, usage and
coding of computers. The author explores how mathematics and logic
are related to the functions of the organic human brain in the same
way they are applied to the artificial automated computer
processor.
6. A
Programming Language, by Kenneth E. Iverson
A
Programming
Language, by Kenneth E. Iverson, explores
how programming language is a signifier for a whole host of
mathematical algorithms and procedures. The book
focuses on specific areas of application which serve as universal
examples and are chosen to illustrate particular facets of the
effort to design explicit and concise programming languages.
7. Writing Efficient Programs, by Jon Louis
Bentley
Writing Efficient
Programs, by Jon Louis Bentley, illustrates to the reader how
the
primary task of a
software designer is the development of programs
that are not only useful, but easy and inexpensive to maintain.
Moreover, the book explores how software must have specific
application as well as versatility to me modified for unforeseen
uses. Lastly, efficient programs must be efficient to write as the
cost of writing will determine their competitiveness in the
software
market.
8. Computation: Finite and Infinite Machines, by
Marvin L. Minsky
Computation: Finite and Infinite Machines, by Marvin L. Minsky,
explores how the
introduction of the computer in the last half century has affected
the fabric of human society. The book
essays to describe the application and limitation
of
computer
technology as it relates to human progress
and potential.
9.
Operating System Principles, by Per Brinch
Hansen
Operating
System Principles, by Per Brinch Hansen,
gives computer science and professional
programmers a general explanation and analysis of
operating systems. The book explains how an OS works to allow
sharing of information easy and efficient.
10. Artificial Intelligence, by Elaine
Rich
Artificial
Intelligence, by Elaine Rich, gives
programmers an introduction to the techniques and problems
associated with A.I. The book features references throughout that
allow the reader to pursue the topics deeper than would be possible
within the defined scope and space limitations of the
book.