Beginning C# Object-Oriented Programming, by Dan Clark