Fundamentals of computing II abstraction, data structures, and large software systems - Tucker, Allen B. (McGraw-Hill, 1995)