Computer Science or Software Engineering?

CS or SE?

Based on popular request, here is an insight into the differences between a Computer Science & Software Engineering degree. Hope it satisfies your question.

Computer Science or Software Engineering- A Dilemma for Potential Students!

With students applying to universities in this part of the year, there are a lot of questions that spring up in their minds. A particularly common question that students ask year in and year out is which of the following degrees they should opt for- Computer Science or Software Engineering?
The words Computer Science and Software Engineering are used interchangeably in everyday life. However, there is in fact a fine line between them. Most students like to believe that Software Engineering is a PEC (Pakistan Engineering Council) accredited version of the Computer Science degree. This suggests that students who pursue a Software Engineering degree at any university like NUST have the title Engineer attached to their names once they graduate. For some students having that title in their name is of great pride. Others believe, it really should not be the deciding factor when it come to picking between SE & CS.
A definition from states that Computer Science is ‘the science that deals with the theory and methods of processing information in digital computers, the design of computer hardware and software, and the applications of computers.’ Software Engineering, on the other hand, is ‘the art or process of designing and programming computer systems”. Let us elaborate on that. Software Engineering is more applied than Computer Science because it focuses on building and maintaining software systems. Computer Science focuses on design and analyzing programs in addition to development. This makes it a broader discipline owing to the emphasis on how to manipulate and transform data.
We surveyed websites from top notch universities like MIT to reveal that they offer CS degrees mostly. SE is usually a course or unit taught within the CS degree since it deals with one aspect of the broad discipline.
Rightly so, many view SE to be more disciplined than CS when it comes to developing a software system. A lot of emphasis is laid upon following software engineering principles in a systematic manner to ensure the end product fulfills the requirement. In CS, students have the flexibility of diving into SE to a limited degree and exploring a variety of application domains.
Looking at the course contents of both degrees at NUST, this difference is minimal but fairly obvious. Students pursuing a degree in CS have to complete 133 credit hours whereas students in SE have a 136 credit hour degree. Foundation courses are essentially the same. Here are a list of courses that students of SE took that CS students were not offered (Source: Students from Batch of 2014):
  1. Software Requirements Engineering
  2. Software Design & Architecture
  3. Software Quality Engineering
  4. Software Construction
  5. Software Project Management
CS students only studied the foundation course entitled "Software Engineering". CS students were offered more diverse courses such as Psychology and Sociology to help them with their interactions in the job market. Additionally, there were a few courses which were mandatory for CS students and offered as electives to SE students including:
  1. Digital Image Processing
  2. Compiler Construction
This helped CS students of NUST gain exposure to more diverse and broad course contents
Both CS and SE are very similar when it comes to career prospects. Once you graduate, they depend heavily on the knowledge you have acquired, work experience and the portfolio you present on your CV. Work hard and you shall do well!