Introduction to Engineering Programming by Jane G. Austin, David Mazzoni & Mark Austin