programming problem solving and abstraction with c alistair moffat pdf how to cite a book in a research paper apa style