In: Computer Science
Engineering/ programming in MATLAB and it also involves a physics
A lot... If you really want to be outstanding in electrical and
electronics engineering (EEE), otherwise simply known as electrical
engineering (EE) in the U.S.. It can also be known as electrical
and computer engineering (ECE).
I strongly disagree with Razvan Baba. I may be wrong, but he does
not seem to have a good grasp of ECE, in terms of breadth across
the scope of ECE or depth in any area of ECE.
Look at IEEE journal and conference papers. Talk to faculty and
graduate (MS/Ph.D.) students in ECE, as well as senior R&D
engineers in ECE. Ask them if they can get away with programming
and computer modeling.
Programming in MATLAB for mathematical modeling, system/filter
design and analysis, and simulation is used in control engineering,
signal processing, antenna design, and many areas of ECE. Just
check out the MATLAB and Simulink toolboxes: Products and Services.
Challenging and academically rigorous classes, especially at the
graduate level, will require you to implement or even design
algorithms for control and signal processing. So, yes, you will
need to understand algorithm analysis and design. Think about
circuit complexity in VLSI circuit and system design. Isn't that a
lot like computational complexity? Does the algorithm run in
O(n^3)? Is the complexity of the circuit O(n*log n)?
Furthermore, modern/advanced control systems are multi-input,
multi-output, stochastic, adaptive, digital, autonomic, and/or
nonlinear. CS students will not want to learn about nonlinear
dynamical systems. Trust me. That is why the application of control
engineering in autonomic computing has very few takers. Why? You
need to be good at ECE and CS; that is, EE + CS = EECS.
Many, if not most, computer science (CS) programs do not train you
to design analog/RF and mixed-signal integrated circuits (ICs), and
VLSI circuits and systems. So, all the talk about using hardware
description languages (HDLs) for RTL design of ICs that are
implemented on FPGA boards or standard cell logic is nonsense.
Look, if they do not even teach computer organization classes that
require students to design a simple 32-bit processor, do you think
they can teach VLSI design or computer architecture effectively?
Hell no! Behavioral modeling of AMS/RF circuits and systems with
SystemC-AMS, Verilog-AMS, Verilog-A, and VHDL-AMS? Forget about it!
If you want to design ICs and VLSI systems, pursue a MS/Ph.D. in
ECE at a good research university (preferably in the U.S.). And,
yes, VLSI system design may involve modeling with UML, invoking
design patterns, using Petri Nets, and using formal/mathematical
logic for formal methods and formal verification. VLSI design also
involves programming in Perl, Tcl, and Python (or UNIX shell
scripts), in addition to C, C++, and SystemC. I consider behavioral
modeling in SystemC, Verilog, and VHDL as VLSI design, rather than
programming. You are designing electronic systems and ICs, not
programming a processor (as in system software, or application
software, development).
Instead of using a word processor for documentation, you can do
that with LaTeX and Doxygen (works with VHDL, too!). Want to draw
something? Use Graphics Layout Engine (GLE), Asymptote (vector
graphics language), MetaPost and TikZ!