By Dr. Robert A. Canfield, Virginia Tech
MATLAB® has been the core computational tool in AOE 2074: Computational Methods at Virginia Tech for many years. This second-year course equips engineering students with two skill sets that they will need throughout their academic careers and beyond. The first is the ability to use numerical methods to solve engineering problems that involve root finding, simultaneous linear equations, linear regression, interpolation, and numerical integration and differentiation. The second is the ability to apply MATLAB as a computational tool and as a programming language.
When I began teaching the course two years ago, I wanted to give students more hands-on experience with MATLAB and more one-on-one instruction with teaching assistants. These changes required a significant overhaul of the course structure. The revamped course now underpins a department-wide initiative to integrate MATLAB more deeply throughout the aerospace and ocean engineering curricula (Figure 1).
To accommodate the more than 150 students who typically attended, Computational Methods used to be a conventional lecture-based course. Two weekly 75-minute lectures were complemented by homework assignments in MATLAB designed to reinforce the material covered in class.
A key weakness of this format was that too much time passed between introducing a concept and letting the students try it themselves. When students are learning to program and solve problems, they need to apply what they learn as they go along. Presenting too many topics in sequence without letting students work on relevant problems makes it difficult for them to assimilate what they have learned.
To address this issue, I converted the second 75-minute lecture into a lab session. Teaching assistants (TAs) lead these sessions, each TA working with about 30 students. The labs not only enable one-on-one interaction between students and their TAs; they also enable students to learn from one another while working through examples together. More importantly, students work hands-on with MATLAB soon after learning a new numerical method, with a TA available for guidance.
Changing the course structure enabled us to teach a class of 150 students—and even to support more than that—while providing each student with regular, direct access to an instructor. The change precipitated another adjustment to make the course work efficiently: supplementing lecture materials with the MATLAB tutorial available on mathworks.com.
Because I had cut lecture time in half, I wanted to supplement the lectures with learning activities that students could complete on their own. The interactive, online MATLAB tutorial is an excellent fit. In addition to providing a basic introduction to MATLAB, it includes modules for many of the topics covered in the course, including computational data analysis, curve fitting, data visualization, and MATLAB programming basics.
Most students have used MATLAB briefly in a first-year engineering course. I use the same introductory tutorial module in the first lab session to bring them back up to speed.
The format of the interactive MATLAB tutorial met the needs of the revamped course. After presenting new material, the tutorial poses questions. In some cases, students have to respond by typing MATLAB commands. The module then provides feedback before students need to complete homework assignments. This interactivity is particularly helpful in self-directed learning activities, which are assigned in between the lecture and computer lab. As MathWorks adds new tutorial modules, I incorporate them into the course if the topics covered are relevant.
Computational Methods is a required course for all second-year students in aerospace and ocean engineering, but engineering students from other departments attend, as well. While redesigning the course, I asked colleagues in my department and in other engineering departments about problems they assign that require the use of numerical methods and MATLAB. I incorporated their input by using some of their course materials to complement the examples provided in the course textbook, Steven Chapra's Applied Numerical Methods with MATLAB for Engineers and Scientists.
Chapra illustrates several concepts using a bungee jumper example. My students use MATLAB to model the dynamics of a single bungee jumper and of several jumpers linked together. Examples like this engage the students and help them visualize the system dynamics. The course content loosely follows the material in the textbook, starting with modeling and programming; proceeding to roots and optimization, linear systems, curve fitting, integration, and differentiation; and ending with simple differential equations.
This year we have made Computational Methods a prerequisite for our gateway courses in the second sophomore semester. Professors who teach junior- and senior-level courses that require students to find numerical solutions in their courses count on the students having experience solving them with MATLAB. Because faculty can now depend on our students having mastered MATLAB fundamentals, they can go more deeply into the course material. We expect this effect will be amplified as more courses incorporate MATLAB.
Aerospace and ocean engineering students become more proficient every semester, tackling increasingly challenging problems and design projects. Several past students have told me that they've used the numerical methods they learned in my class for their experimental laboratory class and in their senior design course—and in ways they hadn't expected.
The restructured course has already yielded positive results. Our department teaches an astrodynamics course in which students use MATLAB for a number of homework assignments. At the start of the course, the instructor gives an assessment quiz to test the students' knowledge of MATLAB. Last year, for the first time, at least half the students in his class had attended the revamped Computational Methods. He noted that this class scored significantly higher than students in previous years on his MATLAB assessment quiz.
In lectures, I often use MATLAB interactively to create plots that illustrate new concepts, or to demonstrate examples from the textbook. Many of the features that make MATLAB an excellent teaching tool—including the ability to execute commands interactively and visualize results—make it an effective learning tool, as well. Students don't have to compile, execute, and debug code in a low-level language. Instead, they can develop an algorithm by interactively entering MATLAB commands. They can use the plotting capabilities to verify their results and then assemble all the steps into a script (Figure 2).
My colleagues and I believe that it's important for students to develop the analytical thinking capability that comes with learning how to program algorithms. Even if the companies they eventually work for use highly specialized applications, modified algorithms and analyses are almost always needed as well. By adopting a hands-on approach with MATLAB in the second year and integrating MATLAB throughout the engineering program, we equip our students with the critical analytical skills that companies require in engineering graduates, including the ability to use numerical methods to solve real-world engineering problems.
Published 2012 - 91984v00