Friday, September 25, 2020

Computer Science or Software Engineering - Which Should You Choose?

Very often you can find reflections on the choice of one of the listed areas: "What is the difference between computing and software engineering?" and “Should I choose computer science or software engineering if I want to become a software engineer?”.

In this article we will try to understand and analyze the importance and necessity of training in these specialties.

Rapid patient examination

Computer science studies how a computer works, how it works, mainly from the theoretical and mathematical side computer qustions.

You should choose this direction if you love mathematics and logic or if you want to work in the field of computer science, artificial intelligence, machine learning, security, graphics.

Software engineering studies how operating systems and software systems work, and involves project management, quality assurance, and testing.

You should choose software development if you are interested in a hands-on approach, life cycle, and software development / support.

Both industries teach the basics of programming and computer science, which is useful if you want to become a software developer.

Software engineering

To understand the difference between computer and software specialists, let's take a look at their respective curriculum at the University of Waterloo in Canada.


What are the prospects?

Let's first compare the types of jobs and internships you can take after each program.

Fortunately, the University of Waterloo website has several examples. For each of the directions, jobs were offered after successful completion of the studies:


Computer science:

Web Developer / Architect, The Steele Group

Programmer, Harry Rosen Inc.

Mobile / Cloud Developer, Clearbridge Associates Limited.

Software Development, General Dynamics Canada.

Software development, Microsoft.

Agile Engineer, Pivotal Labs.

Business Analyst, Canadian Tire Corporation.

Product Manager, Dropbox.


Software Engineering:

Software Developer, Tagged Inc.

Software Developer, IBM Canada

Product Manager, Arius Software Corporation.

Software Engineer, VistaPrint USA.

Software Engineer, Harris Corporation.

Software Developer, Accenture Inc.

Product Manager / Software Development, NexJ Systems Inc.

Consultant, PureFacts Financial Solutions.

Implementation Consultant, Desire2Learn.

As you can see, there isn't much of a difference between the jobs you can get.

The most common job offers to look forward to after completing a Computer Science or Software Engineering degree are a software engineer or software engineer. There are other options like product manager, QA analyst, and technology consultant that depend on your skill set.

Mandatory Year 1 Topics

University of Waterloo

Now let's take a look at the courses in each program. First, let's compare some of the courses you will need to attend in your first year.


Computer science:

CS 135 - Development of functional programs.

CS 136 - Algorithm Design and Data Abstraction.

MATH 135 - Algebra.

MATH 136 - Linear Algebra 1.

MATH 137 - Calculus 1.

MATH 138 - Calculus 2.

Plus several optional ones.


Software Engineering:

CS 137 - Principles of Programming.

CS 138 - Data Abstraction and Implementation.

MATH 115 - Linear Algebra for Engineering.

MATH 117 - Calculus 1 for Engineering.

MATH 119 - Calculus 2 for Engineering.

MATH 135 - Advanced Mathematics.

ECE 105 - Physics of Electrical Engineering 1.

ECE 106 - Electricity and Magnetism.

ECE 124 - Digital Circuits and Systems.

ECE 140 - Linear Chains.

SE 101 - Software Development Techniques.

As you can see, in the first year, both specialties are very similar. Both cover basic knowledge of computer science, algebra, and calculus. The difference is that "Software Engineering" has additional physics and electrical engineering, while "Computer Science" has a few more electives.

Compulsory Second Year Topics

Now let's consider the subjects of the second year.


Computer science:

MATH 239 - An Introduction to Combinatorics.

STAT 230 - Probability Theory.

STAT 231 - Statistics.

CS 240 - Data Structures and Data Management.

CS 241 - Sequential Programming Basics.

CS 245 - Logic and Computation.

CS 246 - Object Oriented Software Development.

CS 251 - Organization and design of computers.

CS 341 - Algorithms.

CS 350 - Operating Systems.

In addition, some electives in computer science.


Software Engineering:

CHE 102 - Chemistry for Engineers.

ECE 222 - Digital Computers (including assembly language).

ECE 358 - Computer Networks.

MATH 213 - Advanced Mathematics for Software Engineers.

MATH 239 - An Introduction to Combinatorics.

STAT 206 - Statistics for Software Developers.

MSCI 261 - Engineering Economics: Financial Management for Engineers.

CS 241 - Sequential Programming Basics.

CS 240 - Data Structures and Data Management.

CS 247 - Principles of Software Development.

CS 341 - Algorithms.

CS 349 - User Interfaces.

CS 343 - Parallel programming.

CS 348 - Introduction to Database Management.

SE 212 - Logic and Computation.

SE 350 - Operating Systems.

SE 465 - Software Testing and Quality Assurance.

SE 464 - Software Development and Design.

SE 463 - Specification and Analysis of Software Requirements.

SE 490 - Project design.

In addition, several electives in computer science and electrical engineering.

When it comes to mathematics and statistics, computing and software engineering are almost the same. They cover combinatorics, probability theory and statistics.

No comments:

Post a Comment

Server management systems

Enterprises receive the services and functions they need (databases, e-mail, website hosting, work applications, etc.) for their corporate I...