"Mr. X" <gr**********@cox.net> wrote in message
news:TlaHd.10275$ru.1018@fed1read07...
Let me begin by saying that I am a strong advocate of science, math and
engineering students learning to program...
just a skill that they need to experience even if they go another path.
So, what kind:
The LabView kind where graphical icons are wired together?
The MatLab kind in which programs are built using programs?
Or the C programming kind?
I am a Mechanical engineering student @ Georgia Tech. I also teach the only
CS course required of Engineering/Science students at our college. We teach
them MatLab and I think it is a sufficient solution to the problem. I work
at a software company and I personally program in the 'last" kind of
languages, but for an engineer, knowledge of MatLab is more useful since it
removes the nitty gritty of programming from the user's hands while
providing them with the ability to customize their programs to their needs.
My father is also an engineer who taught himself programming since he
studied in an era where programs were submitted to universities as punch
cards and results were collected 4 days later. He finds it sufficient to
know enough programming to be able to write macros and computational blocks.
Also, from an Engineer's perspective, OOP is seldom implementable in real
life since we almost never have the freedom to classify parameters as
outputs or inputs or a specific type of variable in calculations/equations
(and that is what engineers primarily write programs for).
As an engineer, you generally want a convenient way to write code to reduce
the manual labour involved in doing mathematical operations. Ocassionaly you
have an engineer writing a program to sorting a database or search trees.
And engineers almost never code GUIs/Compilers and in general anything that
would exceed about 500 -1000 lines of code. We have computer scientists for
that!
It is more important for engineers to write simple loops/ recursive
functions / matrix manipulations/file IO and such without having to use
linked lists/pointers/abstract classes/ calls to malloc etc... It would be
beneficial to use their time to teach them algorithms for searching trees /
sorting / automatons etc...Also its useful to give them basic training in
command line operations and remote computing since almost every company uses
netwoks etc and such
I am saying this from personal experience of seeing engineers/scientists
stuffed with useless knowledge (like having to write applets) while missing
out on important stuff like signal processing or algorithms for numerical
methods like efficient root solving methods.
Cheers!
-Vig