This introduction to computer-based problem-solving using the MATLAB(R) environment is highly recommended for students wishing to learn the concepts and develop the programming skills that are fundamental to computational science and engineering (CSE). Through a teaching by examples approach, the authors pose strategically chosen problems to help first-time programmers learn these necessary concepts and skills. Each section formulates a problem and then introduces those new MATLAB(R) language features that are necessary to solve it. This approach puts problem-solving and algorithmic thinking first and syntactical details second. Each solution is followed by a talking point that concerns some related, larger issue associated with CSE. Collectively, the worked examples, talking points, and 300+ homework problems build intuition for the process of discretization and an appreciation for dimension, inexactitude, visualization, randomness, and complexity. This sets the stage for further coursework in CSE areas. The interplay between programming and mathematics throughout the text reinforces the student's ability to reason numerically and geometrically.