guide to programming abstractions 6035617