Tools for Structured Design: An Introduction to Programming Logic (5th Edition)