Principles of computer science - Reynolds, Carl (London McGraw-hill, 2008)