April 23rd, 20196 Degrees of Computer Science
Saved From http://compsci.ca/blog/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.
So what are you interested in?