I hold BS (Software Engineering) degree and now I am confused which area of training should I choose for my QSW application: Computer Science or Computer Engineering?
Am I free to choose any area and will this affect my application?
In considering Canadian immigration, Timothy Lethbridge, Professor of Software Engineering and Computer Science, University of Ottawa offered the a particularly cogent overview on Quora. It should help you to decide what best suits your credentials.
Software engineering and computer science are two of the five areas in the IEEE/ACM Computing Curricula. I helped write the software engineering part of that document.
Essentially, software engineering degrees focus on teaching students to become expert at the various core tasks in the software lifecycle: Requirements, design, programming, etc. along with project management, user interface design, engineering economics and certain other topics. A full course (40 hour academic unit) would typically be devoted to each of these areas. In a computer science degree you would also expect to become a good programmer, but most computer science degrees would not focus a full required course on each of the above areas. Instead, a computer science degree would have full courses in many other areas of both theory (e.g. formal languages, complexity theory) and application areas or technologies (artificial intelligence, robotics, graphics, advanced databases, networking, etc.). A software engineering student might only have space in their program to take a small number of electives in these areas, since they would be spending most of their time studying the core SE topics in depth.
Both CS and SE degrees would teach basic computer science concepts including basic data structures and algorithms. Usually there would be courses in operating systems in both types of degrees, and computer science degrees would almost always have one introductory course in software engineering.
Software engineering degrees are extremely common in Canada, Australia and parts of Europe. They are also increasing in number in China. In the US there has been only slow growth, with most universities just offering computer science.
In many jurisdictions, a software engineering degree can lead you to become licensed as a Professional Engineer (after you have practiced for some years following graduation). This is the case in Canada, and is becoming the case in many US states.
In the US, Computer Science programs and Software Engineering programs are accredited by ABET. Computer Science accredited degrees are recognized in many countries through the Seoul Accord, while Software Engineering programs are recognized through the Washington Accord. That means that if you move to another country in either of these accords, you may find it easier to obtain professional recognition.
In Canada, the CEAB accredits software engineering degrees (with recognition through the Washington Accord) and the CSAC accredits both kinds of degrees (with recognition through the Seoul Accord). I am currently the chair of CSAC.