The widespread availability of affordable high-speed computing has made numerical solutions to complex engineering problems economically feasible. To meet modern engineering demands, students must understand numerical methods, develop skills to implement them computationally, and learn to choose appropriate software tools for real-world problems. This book prepares students to solve engineering problems using multiple numerical approaches and software systems and serves as a resource for junior/senior undergraduates and beginning graduate students.