The University of Queensland Homepage
Study@ITEEStudy@ITEESchool of ITEE ITEE Main Website

 Should I do a Bachelor of Science (Computer Science), Bachelor of Information Technology or a Bachelor of Engineering (Computer Engineering or Software Engineering)?

The following is adapted from a blog by Tony Targonski, a student at the University of Waterloo, Canada, pursuing a degree in Computer Science: 

What is the difference between Computer Engineering and Software Engineering, and why is neither the same as obtaining a Computer Science or Information Technology degree?  The diagram below shows the program areas related to studying computer science.  By knowing what the program areas mean, you can select what you want to do to get the university experience you want.  Don't forget that there is enough flexibility in the UQ programs that you can change after first year and not lose any or much time in completing your degree.

Computer Science degree choices

Computer Science

Computer Science can be done as a major in the Bachelor of Science degree or by choosing courses in the Bachelor of Information Technology degree that have a particular focus.

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.

Tony says: "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. If Computer Science is about writing code, then Software Engineering is thinking about writing the said code.

The technical requirements of 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.

Tony says: "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, telecommunication, 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.

Tony says: "Here you get to design your circuit board, and program it too! Lower level coding, but for actual 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.

Tony says:  "Someone has to push those electrons faster! Hardware level optimisation 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 Maths, there was still room to include a couple of programming courses into the program’s schedule.

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.

Tony says:  "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."

Maths / Physics

There’s also an option to ditch the computers all together, and pursue the pure logic, theory, and problem solving with the underlying Mathematics. 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 fulfilment, though with a slightly different focus.