Software Engineering vs. Computer Science
There is significant overlap between software engineering and computer science degree programs. Professionals in the two fields often compete for the same positions. There are distinctions in their education, however, and in the future, there may be distinctions in what roles they are allowed to perform.
Syracuse University's College of Engineering and Computer Science offers an online M.S. in Computer Science focusing on subjects crucial to understanding emerging systems. Request Information about this program.
Software engineering is an engineering discipline. A licensing examination is under development; stakeholders believe that within two years, a number of states will be licensing those software developers whose work impacts safety and public welfare. Moreover, many people in the field believe that software development should be approached as an engineering discipline, even when it doesn’t have a direct bearing on public safety. [Find Software Engineering programs in your region]
Computer Scientists test theories and work at the edge of the unknown. Engineers start with knowledge that has already proven reliable. ~ Steve McConnell
In Professional Software Development, Steve McConnell argues that software development should follow the principles of engineering. Scientists research and extend scientific knowledge; they test theories and work at the edge of the unknown. Engineers start with knowledge that has already proven reliable. Their job is to create designs that work. Engineers need breadth, or broad scope, to their education while scientists need depth in narrow branches of knowledge. McConnell suggests that it is better to have a degree in computer science than to work in software development without a related degree. Still, a traditional computer science degree, with its focus on the theoretical aspects of the profession, does not always provide the best education. [Find a Computer Science Program in your area]
Software Engineering and Computer Science Degree Programs
Realize that the term software engineering is sometimes over-applied. Some companies choose to use the title software engineer even if a particular position does not require engineering. Also, some programs that are titled software engineering are not accredited by the Accreditation Board for Engineering and Technology (ABET). For this reason, there is some confusion among future software developers about the distinctions between programs.
Some schools offer separate tracks in computer science and software engineering. The two tracks will generally include some common courses, but a different overall architecture. Both computer science and software engineering programs are accredited by ABET. Computer science falls under the banner of the Computing Accreditation Commission, though, while computer engineering is the responsibility of the Engineering Accreditation Commission. There are significant differences in requirements. Software engineering programs include a design project; through this project, a future software engineer displays his or her ability to apply engineering principles in the real world. The senior project may be very applicable to a software engineer’s future work.
Students and graduates of computer science and software engineering programs cite a variety of differences. Courses in computer science often place greater emphasis on the theoretical. They emphasize algorithms. Traditionally, they have been considered good preparation for graduate level research. According to the BLS, they also prove useful for systems software engineering.
Some graduates report that computer science courses include more mathematics. This is not always the case, however. At Auburn University, Calculus III is listed as a requirement for the software engineering degree (as of the 2010 – 2011 school year) but not the computer science one. Both programs include some computer electives which allow candidates to tailor the program to meet individual goals.
Choosing a Degree Program
The lines between the two tracks have blurred a bit as some computer science programs have borrowed from the newer software engineering field. You may well find engineering courses in your computer science curriculum. If you envision yourself working in a field like embedded software, you’ll likely want an engineering degree of some sort. If you are not intending to work in a high-stakes arena, you may allow your interests and beliefs (as well as program reputation) to dictate your choice. Do you share McDonnell’s belief that developers should be engineers?