Keith Douglas' Web Page

About me Find out who I am and what I do.
My resumé A copy of my resumé and other documentation about my education and work experience for employers and the curious.
Reviews, theses, articles, presentations A collection of papers from my work, categorized and annotated.
Current research projects What I am currently working on, including some non-research material.
Interesting people People professionally "connected" to me in some way.
Interesting organizations Organizations I am "connected" to. (Some rather loosely.)
Intellectual/professional influences Influences on my work, including an organization chart. Here you can also buy many good books on philosophy and other subjects via I have included brief reviews of hundreds of books.
Professional resources Research sources, associates programs, etc.
What is the philosophy of computing? A brief introduction to my primary professional interest.
My intellectual heroes A partial list of important people. Limited to the dead.
My educational philosophy As a sometime teacher I've developed one. Includes book resources.

Book Influences - Computing: Data Structures and Algorithms

Data Structures & Algorithm Analysis in Java Weiss Of my three data structures and algorithms books, this is the middle one in difficulty. It is, however, the only one that touches on object oriented programming in the editions I have.
Data Structures, Algorithms and Software Principles in C Standish More data structures and algorithms: the most elementary of my three. Nevertheless, many will need a teacher to guide them and provide additional information with this text.
Expert VB 2008 Business Objects Lhotka and Fallon A whirlwind tour about a fairly sophisticated development framework for .NET (CSLA.NET). Both the implementation of the framework and the use of it are covered, with varying degrees of depth. The weakest part of the framework and this book concerns concurrency and a few other related database matters. CSLA encourages (but fortunately does not require) optimistic concurrency. Nevertheless, it is difficult to enforce locking adequately in web applications and so there is little attempt to try here: one can use .NET transactional statements, but near as I can tell those do not enforce the right level of granularity - too all or nothing. (And they go against the usual database principle of applying such things as close as possible to the data so that performance and scalability is maximal.)
Introduction to Algorithms Cormen, et al Third of my data structures and algorithms books. This one seems to weigh more than an osmium brick and is probably a lethal weapon in several juristictions. It is, however, the algorithms text according to many people.