Is 'Engineer Programmer' An Oxymoron?
Kevin Craig, Contributing Editor -- Design News, July 13, 2009
All engineers use computers, but do all engineers write computer programs? Could they? Do they really need to be able to?
The essence of modern engineering design is integration and simultaneous optimization of all the elements in the multidisciplinary engineering system. And computer software, whether it is for modeling and analysis or for real-time application, is an essential element. It is often the most costly element in terms of complexity and development time and can also be a major source of system failures. So if engineers only just use programs like Excel, MATLAB or LabVIEW and then rely on software specialists to write customized analysis programs or real-time application programs, aren't they failing in their integration and optimization mission?
At most universities, freshman engineering students take an introductory computer programming course usually taught by a non-engineer using a programming language like C or Java to solve non-engineering-type problems. Students do little, if any, computer programming over the next two years, usually as a last resort. When it comes time for the senior-year capstone design experience, all the computer programming gets handed off to the computer geek on the team. Where is the integration? Why should we then expect something different when our graduates become practicing engineers? Engineering educators are responsible for this situation and immediate changes are needed!
Let's first differentiate between conventional computer programming and real-time computer programming. Real-time software is at the heart of multidisciplinary engineering systems. It differs from conventional software in that its results must not only be numerically and logically correct, they must also be delivered at the correct time. It must embody the concept of duration, which is not part of conventional software. Real-time software used in most physical system control is also safety-critical. Software malfunction can result in serious injury and/or significant property damage. And asynchronous operations, while uncommon in conventional software, are the heart and soul of real-time software. The hardware interrupt, the capability to stop the current execution of a program and service some device or some sensor outside the program, is the nitty-gritty of real-time software.
Dr. Fred Stolfi, a mechatronics' professor at Columbia University and long-time industry practitioner, says working engineers use computer programs like Excel for data analysis. They are also familiar with CAD software for both mechanical design and electronic circuit analysis. However, they fear traditional code - like C and Assembler - which can perform real-time operations. So while they are comfortable doing computer analysis, they turn computer control over to a software expert. In his view, the problem is also generational. Older engineers often do not trust computer analysis and prefer to design by the "seat of their pants." Younger engineers seem to trust computers too much and do not think about what the computer results are saying. In general, control is a lost art and with it real-time programming. The situation is the same at the university. When students are asked to design an original system as part of their capstone design experience, they realize they want a real-time microcomputer or computer to control their system and do not know how to implement it.
In the next article, I will offer some solutions to the problem I have described and suggestions for effective computer programming, both for analysis and for real-time applications.
-
I know for myself I would never pass off programming to another department which wasn't key in designing a system and chance wrecking my team's efforts or slowing a project.
I attended university in Germany, where the distinction of the Mechatronics degree programmes were made quite a bit longer ago, which is my degree, BSMtE. The programming and total development is an inherent part of the education Europeans have been receiving for some time when following this path, only the US is a bit off the pace in adopting this.
This integrating Engineer will fast become the norm that we will have little memory of working without. All the better in my opinion. Right now we are pulling the weight and not being fully recognized for it.
The task I see is to get our primary education system to fully recognize the symbiotic relationship for the current and future students, and push those with the inclination to study all those aspects. I still see educators exposing students to these popular technology programs and competitions and requiring mechanical, electrical, and programming skills for them, then telling the students to choose ME, EE, or other for the future. The true burgeoning importance of mechatronics is still somewhat unknown to primary school educators and our universities are still building their curriculum to offer this option.
I foresee a structure that has ME's, EE's, and MtE's holding the primary echelons of design. Software Engineers and Programmers I believe will have less and less involvement with the implementation and customization of software and return more so to the creation of the software, at least in the realm of industry.'>The previous responders have said it. The Programmer Engineer is the rule rather than the exception. While those Engineers who are in their late 50's and older may not have had the requirement, I can assure that anyone younger will soon if they have not already had to design the programmed systems in addition to the other systems when the project involves this. Exactly as Ron stated, Engineers are the only correct choice to complete this extremely pivotal aspect. I have not met nor heard of an engineer for some time that has not had to make it part of their repertoire.
I know for myself I would never pass off programming to another department which wasn't key in designing a system and chance wrecking my team's efforts or slowing a project.
I attended university in Germany, where the distinction of the Mechatronics degree programmes were made quite a bit longer ago, which is my degree, BSMtE. The programming and total development is an inherent part of the education Europeans have been receiving for some time when following this path, only the US is a bit off the pace in adopting this.
This integrating Engineer will fast become the norm that we will have little memory of working without. All the better in my opinion. Right now we are pulling the weight and not being fully recognized for it.
The task I see is to get our primary education system to fully recognize the symbiotic relationship for the current and future students, and push those with the inclination to study all those aspects. I still see educators exposing students to these popular technology programs and competitions and requiring mechanical, electrical, and programming skills for them, then telling the students to choose ME, EE, or other for the future. The true burgeoning importance of mechatronics is still somewhat unknown to primary school educators and our universities are still building their curriculum to offer this option.
I foresee a structure that has ME's, EE's, and MtE's holding the primary echelons of design. Software Engineers and Programmers I believe will have less and less involvement with the implementation and customization of software and return more so to the creation of the software, at least in the realm of industry.
JB - 2009-18-8 22:25:56 EDT -
I have a BSEE and work in the gas industry. Engineers are the only ones who have the necessary knowledge to properly program the PLCs. If I had not gotten the background in college (Fortran) it would have been really difficult early on the contribute. All engineers I know can program some and most are avid programmers.
ron - 2009-18-8 12:14:55 EDT -
I have all my life wanted to know what is inside devices. I also grow up with VIC-20 and Commodore 64, later Amiga 500. At one point I researched Commodore 1541 -disk drive BIOS listings, because those were in German (before the English version came out), that I had been studying in school. Now I have for years been employed designing embedded CPU-cards for different LC-displays. And I can't figure how one can design efficient CPU-systems without knowledge of (preferably several) programming languages. I always try to make HW that I would be able and willing to program. That includes those mentioned IRQ's that help make better responding programs. I'm not that good with C, as I did grow up with Commodore Basic and 6502 machine language, but really what HW designer needs to be able to do is to tell the SW guys how he would use the HW he has drawn up. And that drawing does need programming skills otherwise one could end up with nonworking HW, that would ask for too much CPU power. So I would also get those students involved in programming, the earlier the better. In embedded world one can not just throw in more computing power like we have used to with desktop PC's. One must constantly be reminded of current consumption and even when that is coming from mains, about it's evil twin-sister heat. So remember also that heat-management.
Petri Pihkala - 2009-17-8 20:08:16 EDT -
I find it difficult to believe that engineers cannot program without a computer science degree. SARCASM! I am a retired engineer. During my career, I built several computers, programmed several systems, all in the course of an engineering career. I also taught computer science at a small public college. My degree is in Chemical Engineering.
Gary Griswold - 2009-17-8 16:31:07 EDT -
I had a new performance requirement for a product. When I created a model of it, I had a set of equations I could not solve directly. As I had taken some computer science courses, I decided to put the knowledge to use by creating a program, in Turbo Pascal, on a basic 5.5 MHz 8088 DOS PC. I designed the program to allow me to change some design parameters and quickly found a combination that allowed us to manufacture the product and meet the specifications. I made several other rather simple programs that made parts of the job go more easily.
We had recently been bought by a company 3000 times our size. As a result, others in the engineering department asked for copies of some of my programs to help their work. IT was frantic insisting that only they were allowed to write programs. Management was very uneasy about my doing this. They had the 15 MHz 8086 machines on their credenzas for office decorations or for their secretaries to type memos. When they make me a go away offer a couple years later, I gladly accepted. The place was becoming Dilbert.
Stuart Scott - 2009-27-3 01:16:53 EDT






















