Programming for design from theory to practice - Cherry, Edith (Wiley, 1999)