How to Design Programs: An Introduction to Computing and Programming. An introduction to computer science that uses Scheme as the language to illustrate the concepts. The book's exercises uses teachpacks that are written in Scheme to do exercises. These teachpacks are bundled with PLT-Scheme. Also uses features of PLT-Scheme to do certain exercises. Perhaps more accessible than SICP.