In most sciences, the seminal thinkers lived in the remote past.
Computer science is different.
Once computers became an engineering reality in the late 1940s, the important questions in computer science took a pragmatic turn. It was not enough to know that a problem could be solved eventually. Solving it efficiently and, if possible, elegantly became the issue. This required writing instructions for a real machine, finding an efficient solution, building a better computer for bigger versions of the problem, and, sometimes, asking the computer to participate in the creative process. The four parts of this book reflect the four basic questions computer scientists have wrestled with in the last fifty years.