Ian Sommerville
Gordon Baxter
Interacting with Computers
Exploring decision-making processes in Python