computingin the sense of doing mathematical calculationsis skill that mankind has developed over thousands of years programmingon the other handis in its infancywith history that spans few decades only both topics are vastly comprehensive and usually taught as separate subjects in educational institutions around the worldespecially at the undergraduate level this book is about the combination of the twobecause computing today becomes so much more powerful when combined with programming most universities and colleges implicitly require students to specialize in computer science if they want to learn the craft of programmingsince other student programs usually do not offer programming to an extent demanded for really mastering this craft common arguments claim that it is sufficient with brief introductionthat there is not enough room for learning programming in addition to all other must-have subjectsand that there is so much software available that few really need to program themselves consequence is that engineering students often graduate with shallow knowledge about programmingunless they happened to choose the computer science direction we think this is an unfortunate situation there is no doubt that practicing engineers and scientists need to know their pen and paper mathematics they must also be able to run off-the-shelf software for important standard tasks and will certainly do that lot neverthelessthe benefits of mastering programming are many why learn programming ready-made software is limited to handling certain standard problems what do you do when the problem at hand is not covered by the software you boughtfortunatelya lot of modern software systems are extensible via programming in factmany systems demand parts of the problem specification ( material modelsto be specified by computer code with programming skillsyou may extend the flexibility of existing software packages by combining them for exampleyou may integrate packages that do not speak to each other from the outset this makes the work flow simplermore efficientand more reliableand it puts you in position to attack new problems