6 Degrees
of Computer Science
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
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
comment here