Okay so most people know that I’m most interested in (and am majoring in) Computer Engineering. However, many people do not realize that computer engineering is totally different from computer science… we do not just program things like Microsoft Office. A friend pointed out an article that does a great job of explaining the differences between the jobs. You can find the whole post here, but I’ve copied the most relevant parts below.
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.
Full article can be found at http://compsci.ca/blog/6-degrees-of-computer-science/.





