Programming a Beginner's Guide by Richard Mansfield