Evolving computation program meets AE students' needs
If you ask AE Professor Tim Bretl what’s important for an undergraduate aerospace engineering student to learn by the time they graduate, you’ll likely hear him say something about computation. It’s a topic that has been on his mind a lot lately, one that he believes is now essential to aerospace engineering as a discipline. Here are some of his thoughts on the subject.
Computation to solve aerospace engineering problems
Math is a foundation for almost everything we do as aerospace engineers. But, when we use math, we’re not using it to solve the same problems that a mathematician would. We are using it to solve open problems in aerospace engineering, problems that are different from what you would encounter in the field of mathematics.
Computation is the same way. It’s a tool we use all the time, but to solve the problems we care about, not the problems a computer scientist might care about.
This same philosophy carries over into our curriculum. Our undergrads need to take courses in math and computation that will prepare them to be the best aerospace engineers they can be — not the best mathematicians or computer scientists.
The current consensus is that the types of computation we want our students to focus on in preparation for work in AE is different than what they would focus on as a CS undergrad.
Exposure and mastery earlier in their college years
We want to make sure the first two years of curriculum provide a strong foundation for students in the area of computation. One way we do this is to require Computer Science 101.
The Grainger College of Engineering also made a dramatic move by supporting ongoing changes to core math courses that place a stronger emphasis on computational methods. The linear algebra course that was required years ago was pencil and paper. It was a very traditional linear algebra course with students inverting two by two matrices by hand. Now, the linear algebra course takes a completely different approach. It is designed for engineers and recognizes, for example, that computers are the right tool for inverting matrices.
We are also taking steps to expose our students to computation earlier in our own courses. The course students take in numerical methods is a good example. This course is about using computers to find approximate solutions to ordinary and partial differential equations. It places equal focus on theory, algorithms, and implementation with code. We originally offered this course to seniors, then to juniors, and now we are encouraging our students to take it as sophomores so they can use what they learn in all their other courses.
We have also changed the way we teach other core subjects like controls. Our course on aerospace control systems used to be entirely pencil and paper, with a little MATLAB. We just completely changed it. Now students in that course do several mini-projects in which they design, implement, and test a controller for a real aerospace system in simulation — and the implementation is done in python. They have to write code if they want to see their controller work.
Which is better: a specific course or computation in every class?
Recently, we asked all AE faculty to share how they incorporate computation in the classes they teach. Their answers showed that computation is already present across the curriculum. And it’s the right thing to do. We know students need this.
We continue to work toward an even more cohesive strategy of what computational concepts students are expected to master each year of their program. And we are evaluating the pros and cons of using a consistent programming language rather than the several that we currently use. Some argue that a lack of consistency is a good thing in that it teaches students to learn to use whatever tools are required to get the job done. I understand this view but believe that working with one programming language first — used consistently throughout most of our courses — is the best way to build a strong foundation to explore other languages later.
Hands-on experience versus computation
We all know that hands-on work is important. Students need the opportunity to do physical experiments in the laboratory and to work with real aerospace systems. These things are a lot of fun and contribute to a better understanding of core concepts.
Since we know we don’t have time for everything, there’s a tendency to view the need for “hands-on” and “computational” work as being in opposition.
I don’t see it that way. This doesn’t need to be either/or. In fact, I think of computation as enabling more hands-on work. To fly an autonomous fixed-wing aircraft, you need to write code. To get results from experiments with a modern wind tunnel, you need to write code.
AE at Illinois has a long heritage of being ahead of the curve in curriculum development. One of the things that makes us strong as a department is this desire to continually improve our undergraduate program based on our students’ needs and what will be expected of them in their careers.