The Software Engineering Students Need to Know
The education system can be slow to adopt technology used in the real world. Blame it on funding, tenure, legacy, bureaucracy or whatever you wish. Just don’t be surprised to see outdated hardware running outdated software in the halls of academia.
“One of the challenges with having access to engineering software is identifying what software is even available to the university or how invaluable it is to your career,” said Fatima Alleyne, research and general engineer at the United States Department of Agriculture. “As a student, I didn’t understand the scope of using CAD, C++ or simulation as a tool for my engineering career.”
Like Alleyne, many students may not get exposed to the most useful technology. Or the importance of the technology may be downplayed if covered in one week within a four-year degree. However, there is a lot of computer technology out there that engineers will need knowledge of when they walk into their new jobs. To help fill in the gaps, here are some engineering software suggestions for students from practicing engineers.
Data Analysis: Excel, MATLAB, Mathematica
“Features of Excel have been quite useful for me with creating charts and figures for my research,” said Alleyne. “I think it’s important for children in middle school and high school to learn the great features that Excel has. Or they can even learn how to use MATLAB for features that Excel is unable to facilitate. It would have been useful to me while I was in grad school.”
Alleyne has a great point; however, from personal experience, I will add that universities need to focus on this software as well. When I was a grad student, many of the engineering undergrads I taught as a TA had never touched Excel, let alone MATLAB or Mathematica. I found myself ensuring that my lesson plans reinforced what was taught in lecture through hands-on Excel computations. This ensured that the students learned to use the spreadsheet, which has inadvertently become universally used by engineers (it was invented for business).
During an assignment, a student asked his father, an engineer, for help. The student’s father showed him a new way to tackle the problem—one with which I was unfamiliar—and the student shared it wit me. The new method used a pivot table. I never knew pivot tables existed myself, and I had been diving into Excel for almost a decade. That method was instrumental to my future projects. Just goes to show the importance of continual education and why universities need to ensure that the “basics” like Excel aren’t taken for granted.
If no Program Fits the Task, Make one with C, C++ or Something Similar
Excel, MATLAB and Mathematica may not solve certain engineering problems, such as data collection and analysis or machine control. In this case, a custom application would have to be created. Enter high level programming languages.
The question often posed by students is: “which programming language to focus on?” The answer can be a bit complicated.
Learning fundamental programming concepts and structure is far more important than the syntactical idiosyncrasies of a particular language. Learning how to code in one language will make it much easier to pick up a second language, then a third. So a language like BASIC or Turing might be a good option for a novice just starting to program, as they are designed to help the programmer learn. However, these languages are not that practical in the engineering world. If you have, or hope to gain, experience programming, then a more powerful language like C, C++ or Fortran (yes, it is still in use) might be a better option down the line.
Statistics and Design of Experiments
Tools like Excel, MATLAB and Mathematica are useless if you don’t understand basic statistics, linear algebra and calculus. Of those three mathematic disciplines, statistics education is often lacking in an engineering curriculum. This is a particular shame because statistics also open the door to more advanced engineering concepts such as optimizations and design of experiments (DOE).
The ability to explore a product’s design space with a tool like modeFRONTIER can accelerate the design iteration process, bring the product’s development cycle to a minimum and help find solutions that humans couldn’t find on their own.
“DOE is important because it is a very useful method for understanding the influence of input parameters of a multidimensional system on its output(s), as well as the interaction between the input parameters,” said Oren Lever, principal engineer at Gas Technology Institute. “Moreover, DOE rolls in statistics, which is essential in getting prediction and confidence limits.”
Oren also noted that failing to teach DOE will lead to other gaps in knowledge of tools used by engineers, such as:
• Response surface models
• Statistical robustness
• Selecting parameter combinations
Computer Aided Design (CAD)
“One area the schools do a fair amount of teaching in is CAD,” said Kyle Koppenhoefer, principal at AltaSim Technologies, LLC. “Those classes have morphed into teaching AutoCAD, SOLIDWORKS or similar software. The students do learn these fairly well and then have to transfer that knowledge to other packages in the industry.”
Unfortunately, drafting in engineering curricula is often limited to 2D sketches and drawings—certainly a dated practice. Universities would do well by their students if they focused more on 3D modeling. Stuart Brown, managing partner of Veryst Engineering, noted that there are many benefits to 3D CAD; benefits realized when engineers transfer CAD knowledge to other applications.
He explains that engineers can use CAD information while they use various other tools ranging from simulation (computer aided engineering (CAE)), to computer aided manufacturing (CAM). He said, “What I think will happen now is greater linkage and greater connection between the engineer and manufacturing codes. The ability to not only prototype the part but also understand its properties so you remove the iterative step of making and testing. You can make something that works the right way the first time.”
Think Outside the Engineering Wheelhouse: CAM and Product Lifecycle Management (PLM)
Not many engineers get to step in a machine shop these days. This can lead to quite a lot of confusion when workplace collaboration with the machine shop is necessary. But the same can likely be said about the sales office, the management office and even the marketing office. It can be tricky for engineers to step outside their comfort zones to work well with their corporate teams.
To help alleviate this problem, engineers would do well to learn from some product data/lifecycle management (PDM or PLM) and CAM software. The former will ensure that the team will all be on the same page, the latter will ensure that your designs are manufacturable.
Edward Lopategui, engineer, author, CEO and founder of RevVision, said that CAM and PLM are relatively non-existent in engineering curricula. He then added that, “CAM is important just to understand producibility — how things are tooled and reliably built at scale. That every edge and hole has a consequence and cost associated with it that may not be ideal.”
Lopategui further explained that “PLM is important in understanding team think — engineering increasingly is not a one man show, but many working in concert to create very complex products where ideas are not bound by imagination, but cost, schedule, supply chain, regulation and other factors, most of which are wholly outside an engineer’s purview. Finding ways to efficiently map those external limitations to a design process and to coordinate those efforts among many is critical for modern design.”
Simulation: Finite Element Analysis (FEA) and Computation Fluid Dynamics
Students will spend a lot of time focusing on the theoretical physics, but these can often be impractical in the real world. After all, your designs will look quite different than a free body diagram. In fact, FEA can be instrumental when a free body diagram is statistically indeterminate.
Udayan Kanade, CEO of Oneirix Labs and Noumenon Multiphysics, said, “Simulation is very instrumental to us for what we do. I wish it was taught better or even taught in school. Simulation software is really a mathematics software. If that was taught in a more precise fashion … after all the entire world is a partial differential equation. If all of that was taught better it would be great.”
Understanding simulation software that can actually compute these physical outcomes on complex designs is necessary for many engineers in the workforce.
“Students need less theory and more practical finite element methods,” said Kerim Genc, technical sales manager at Simpleware. “There is almost no practical level knowledge taught in undergrad, and only a little taught in grad school. Even in grad school it’s mostly theory and very little hands on education. Students need a focus on FEM in industry. That is how we get people interested: real world applications.”
Though it is important for engineers to understand the theory behind the physics they are simulating to ensure their inputs and outputs are reasonable, Genc gave a perfect example of why practicing with finite elements is so vital. He said, “Students don’t get an understanding of how the use of a model influences the final model. This is called functional creep—when you have a very complex model when all you need is a simple one. I had a friend at NASA that solved what others would see as complex problems in Excel. He said, ‘This is all I need to answer my question.’ We need to encourage students to keep their models simple.”
Genc has a point: with overly complex models there is more opportunity to break them or introduce a bug. Additionally, why have a large model with large compute times when a simple model will do the trick in a few seconds?
As for which simulation software to focus on, Jeffrey Crompton, principal at AltaSim Technologies, has some suggestions. He said, “The main pieces of [simulation] software we find that are systemic across the industry are COMSOL, Abaqus, ANSYS Icepak, Fluent. Most of the time students will get some exposure to those. We are not bothered by expertise of a specific software. We much rather them be able to demonstrate they have the capability of understanding. Using the tools is relatively straightforward due to easy GUI. The problem with that is you can easily set up the problem wrong if you don’t have the fundamentals, so you need that to ensure you set up the problem correctly.”
Too Much Math and Science?
Lopategui feels that the limitation starts with the curriculum itself. There just isn’t enough time. He said, “CAE gets some coverage, but most CAM software is also largely missing. Even most CAD software is given rather cursory coverage in most engineering curricula; limited to rudimentary modeling and drawing skills rather than meaningful techniques for efficiently approaching design intent, similar to resilient modeling philosophies. There just isn’t enough bandwidth in most 4-year degree programs already saturated with math and science.”
With this time limitation in mind, Koppenhoefer believes that the focus should remain on math and science. He said, “That is largely where the universities should be. When it comes to specific pieces of software, we typically see students picking them up themselves in their masters and PhD theses. They are often learning on their own. So we would want to see more students taking classes like the ones we offer so they get up to speed. We want engineers that can look at results from the computer and say, ‘We don’t think that’s correct,’ and then move on to validation of the model.”
How to Learn Engineering Software on Your Own?
Having entered her grad studies without experiencing much engineering software, Fatima Alleyne felt lost in her post graduate studies. She knew better than the undergrads the importance of the optional courses or short, week-long sessions. But as these courses weren’t targeted to graduate students, she felt there was a barrier to taking those at that point in her student career. Perhaps it’s time to make these optional courses core courses?
Alleyne said, “I learned a lot about the different software tools available on campus through conversations with undergrads and looking through the schedule of introductory classes. I missed them as a grad student as it was aimed at undergrads. In the future, if I could relive my grad experience, I would enroll in those classes.”
However, not all is lost for Alleyne or for practicing engineers that missed the boat of engineering software on campus. She said, “While working as an engineer with the USDA I’m considering to enroll in a course online so I can learn a skillset that will be invaluable to my career.” Some online material Alleyne will be looking at is from online resources such as Coursera, i Get IT, MITx, HarvardX, as well as other courses from schools and private firms.
About the Author
Shawn Wasserman (@ShawnWasserman) is the Internet of Things (IoT) and Simulation Editor at ENGINEERING.com. He is passionate about ensuring engineers make the right decisions when using computer-aided engineering (CAE) software and IoT development tools. Shawn has a Masters in Bio-Engineering from the University of Guelph and a BASc in Chemical Engineering from the University of Waterloo.