Understanding procedural coding - Bowie (Cengage Learning, 2014)