A
common confusion among high school seniors interested in computers has
to do with too many, often similar, options available for pursuit in
higher education. What is the difference between Computer Engineering,
Software Engineering, and why is neither the same as obtaining a
Computer Science degree? I have put together a graph of programs related
to computer science education. Ultimately either will allow for a
computer career such as a programmer, but each option also offers a
unique flavour. It is essential to pick out where one fits best on this
academic gradient, in order to ensure the best University experience.
Computer
Science degree choices
Computer Science
The most familiar name, Computer Science is the pillar degree of the IT
world. Available with a plethora of options and minors, there’s an aura
of customizability around this major, but such difficult choices are
usually not required until the 2nd year of study.
Computer Science is recognized as an independent discipline with an
inherently mathematical nature. Its activity ranges from theoretical
areas such as the theory of automata, system organization and logic
design, formal languages and computability theory to applied areas such
as scientific computing, programming languages, bioinformatics, software
management, and computer systems.
This is where one gets to design algorithms, mathematically figure out
their efficiencies, and actually gets to write out code to implement the
said algorithms in practice. For those who enjoy figuring out just how
the code works, and generally code monkey around – this should be the
program of choice.
Software Engineering
Probably the closest program to Computer Science, this major will also
fetch an Iron Ring for those graduating in Canada. If Computer Science
is about writing code, then Software Engineering is thinking about
writing the said code.
The technical requirements of these software engineers include a strong
foundation in mathematics, natural sciences, and computer science; a
broad education in software engineering and design; an understanding of
computers and networks; a better appreciation for all aspects of the
software engineering life cycle; and the use of methodologies and tools.
The curriculum requirements are not all technical. Industry is also
asking for graduates who have facility across several disciplines.
Software engineering graduates need to have substantial communications,
business, and reasoning skills. Graduates should be able to work in
groups; make presentations to technical and non-technical audiences;
write coherent well-reasoned reports; and assess the social, technical,
legal, and commercial implications of the technology they help to
create.
Not quite the same level of involvement with the code. Software
Engineering is more abstract, more “larger picture” focused. Lack of
Pointer kung-foo is made up with non-technical skills such as
communication and presentations. Management material
education.
Computer Engineering
In many ways similar to Software Engineering, the Computer Engineering
discipline deals with design of specialized type of software, and
incorporates more hardware material into studies.
Computer Engineers apply algorithmic and digital design principles to
design, build, and test computer software or hardware components used
for information processing, communication, and storage – typically
embedded in larger engineered systems and in distributed, networked
environments. Application areas include communication, automation and
robotics, power and energy, health care, business, security,
entertainment, and many others.
For those lucky enough to have taken Computer Engineering in high
school, this is it. Here you get to design your circuit board, and
program it too! Lower level coding, but for actually physical gadgets.
Pretty cool.
Electrical Engineering A yet lower level approach, Electrical Engineering would be most similar to Computer Engineering, but with a heavier focus on hardware than software components of study.
Electrical
Engineers apply electronic and electromagnetic/optical design
principles to design, build, and test analog or digital devices,
circuits, and systems – for processing, communication, and storage of
information; distribution, conversion, and storage of energy; and
process automation or robotics. Application areas include communication,
manufacturing, power and energy, health care, computing, security,
entertainment, and many others.
Someone has to push those electrons faster! Hardware level optimization
really pushes the limits of critical systems, and for some this low
level computing is where it’s at. A typical EE program still includes
enough programming courses and is a similar enough discipline to allow
one to write software.
Mechatronics Engineering
Mechatronics Engineering is an interesting program as it tries to
integrate every other discipline from the above chart. Described as a
mix of Software, Hardware, Mechanical parts, and lots of Math, there was
still room to include a couple of programming courses into the
program’s schedule. At the expense of elective courses.
Mechatronics engineering is an integrated approach to the design of
computer controlled electro-mechanical systems. Mechatronic applications
are pervasive in our everyday lives, so much so that we often take them
for granted. Familiar examples of mechatronic systems include
automotive anti-lock braking systems (ABS), SLR cameras, and aerospace
“fly-by-wire” systems. These mechatronic designs are much more than
simply the addition of a microcontroller to an existing mechanical
system – their complete and properly integrated redesign is what makes
them successful. An integrated design philosophy has been incorporated
into the development of this program.
The broad scope will likely be appealing for those interested in picking
up on a lot of new and varying material. Very management material
course, as the education promises a middle ground that will unite all
the other disciplines that are deemed to be unable to communicate well
with each other.
After completing a year of Mechatronics Engineering, I have
decided that I am much more interested in just the code and programming
part, so now I’m in pursuit of a Computer Science degree instead.
Math / Physics There’s also an option to ditch the computers all together, and pursue the pure logic , theory, and problem solving with the underlying Math. Computer Science is inherently mathematical in nature, and to some there is an appeal in this direction of problem solving by numbers, theory, and without limitations and bounds of programming languages. Applied Mathematics is motivated mathematics, or mathematics to a purpose. It reflects the belief that there exists a basic order and harmony in the universe which may be described by the logical structures of mathematics. Thus, it is no coincidence that some of the greatest mathematicians of the past were also interested in engineering and physics. A major in Physics also offers a similar level of fulfillment, though with a slightly different focus. Obviously either choice offers a minor in Computer Science to fine-tune the desired dose of exposure to actual programming. In Conclusion… Minors and options provide a fine gradient of choice between related programs. An undergraduate degree is a 4 or 5 year pursuit, so it’s best to consider all of the available options and excel in a field of interest and passion for the subject.

No comments:
Post a Comment