This article separates computer science into six other categories, with software engineering being one of them. How is software engineering like computer science? How is software engineering different?
Each category is further described by a spider web diagram, showing the topics covered and the degree of emphasis on each topic. A comparison of computer science and software engineering shows the overlap and differences in topics and emphasis. It positions software engineering as a category of computer science. This categorization contrasts the STEM categorization of four main disciplines: science, technology, engineering, and math. Science discovers general principles and problem-solving techniques. Engineering uses those principles and techniques to develop solutions to problems. Technology uses practices and tools to deploy, operate, and maintain those solutions in practical applications. Both perspectives are helpful. At a higher level of abstraction, the STEM perspective shows that computer science and software engineering have fundamentally different processes. At a more detailed level of abstraction, the six degrees perspective shows the intersection and difference of topic coverages between computer science and software engineering and the other four disciplines.
Computing Related Fields
Computer Science
Despite its name, much of computer science is not focused on the study of computers themselves. Instead, computer scientists are more concerned with understanding what problems can be solved with computation and how we can most efficiently and appropriately solve those problems with algorithms. (An algorithm is simply a step by step process for solving a problem).
Computer science tends to have a more theoretical focus than other computing disciplines. There is a core to the discipline that is closely related to ideas in math and logic. But the discipline also applies those theoretical tools to solve specific problems in areas from artificial intelligence, to graphics, to simulations, and many others.
Typical careers:
-
Software Developer
-
Computer Research Scientist
Education:
-
Working as a software developer requires a Bachelor's degree
-
Working as a research scientist requires a graduate degree (Master's of PhD).
The first year of study generally focuses on programming - the essential skill needed to solve problems using a computer. Courses in the following years tend to be more focused on the theory of why software and hardware work and how to build software.
During their Jr and Sr years students usually can chose from classes to concentrate in a specific area (graphics, databases, artificial intelligence, computational biology, software development). For students who intend to become software developers, this is an important opportunity to take courses on software engineering and applied programming skills.
Computer science students generally need a strong core of mathematics to support the theoretical parts of their CS coursework.
Knowledge Domains:
This diagram illustrates the knowledge areas required in this field. A 5 represents a very high degree of required expertise while 1 represents a minimal amount.