1.1. Introduction to the Course

This course is about computational engineering.

Computational engineering uses numerical computing, data analysis, visualization, and software tools to model, analyze, and solve a variety of science and engineering problems. Writing computer programs is merely a component of the process towards the goals of computational engineering. Mathematics, scientific knowledge, abstract reasoning, visualization, logic, and common sense are also components of the process.

Successful professional engineers in the modern era use computers to their best advantage. Computers have become essential to all branches of engineering. In the field of engineering, the primary appeal of computers is their fast numerical processing capabilities and the ability to visually display data. But computers have strict rules about how they are programmed to perform the specific calculations that we need. However, that does not mean that effective engineers need to also be computer scientists. A few software development environments have become particularly popular with engineers that allow users with limited programming experience to quickly solve a variety of numerical computation problems and plot data in various ways to help users visualize and understand their data. Modern software tools for engineers are not yet able to relax the strict rules of programming, but they can accomplish some amazing things with just a few lines of code. The primary software tool that we will use is MATLAB from The MathWorks, Inc.

At the end of the semester, students will have learned how to lean on a computer for help in solving engineering problems and producing plots to display data in meaningful ways. This knowledge can be a valuable tool in engineering courses and as a professional engineer. Think of the material in this course in the same way that you think of long division. I’m glad that I learned how to do long division in elementary school. But when presented with a division problem, I either do a rough estimate in my head or I reach for a calculator. I seldom use pencil and paper to do long division. This course can teach you how to make use of computers to solve engineering problems rather than pencil, paper, or even a hand held calculator. In doing so, you will be able to work quickly, accurately, and produce impressive results. Just as you needed to learn all about long division in elementary school, we do need to review and learn some new math concepts. But the math that we cover will directly apply to engineering problems and will be solved by computer as soon as possible.

Computational engineering often require searching the Internet or digging into some books for background information, hints, and example programs; but, such resources are readily available. To reap the benefits of using computers to aide with engineering problem solving, one needs to learn a few simple things about programming and the mathematics of numerical computation, particularly in relation to systems of equations, statistics, and the application of a branch of mathematics called linear algebra, which makes use of vectors and matrices. The systems that engineers design and analyze are usually defined by systems of linear and differential equations, not a single equation.

Realistically, most students will not yet be great programmers by the end of the semester. Relative to the vast amount of knowledge available, one semester does not provide enough time to become a programming guru. But the course can certainly provide enough information and experience about programming and computational engineering to add computers to your problem solving toolbox. Some of the algorithms that we will take advantage of are quite advanced, but are pre-developed and available for our use. It is acceptable to use pre-developed functions as long as we understand the basic concepts of what they do and the relationship of the input variables to the output. My first priority for what I hope for the students is that the course helps them to improve their ability to think like an engineer in terms of computational numeric problem solving. Some proficiency at computer programming will obviously be acquired along the way, but that is a secondary concern.

Using a computer to solve difficult problems is pleasurable, rewarding, and essential for the modern engineer. Make the most of it and enjoy this very applied and powerful approach to problem solving.