What is the difference between computer science and software engineering?

Yesterday I tried to explain to someone the difference between computer science and software engineering. I have degrees in both fields. The “pop” view of software engineering is that anyone who writes code is a software engineer. But there are formal definitions that are bit different than the pop view:

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.

Versus:

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.

…. 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.

via 6 Degrees of Computer Science | CompSci.ca/blog.

The bold faced section is the best – computer science is the underlying theories of logic, languages, algorithms and programming.

Software engineering is about how we do that in the context of design and architecture of software, the methodologies and processes used to manage, design, create, implement and perform SQA on software, and the interface between software and stakeholders (customers, the organization, management, developers, QA). As you can see, software engineering sits logically above computer science, perhaps in the way that electrical engineering sits above physics.

Enhanced by Zemanta
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s