C: A Software Engineering Approach by Peter A. Darnell