difference between computer science and software engineering
A quick overview of these two majors
- Computer Science is the study of how computers work, mostly from the theoretical and mathematical perspective.
- You should choose Computer Science if you like math, logic, or if you want to get into a specialized field in CS such as artificial intelligence, machine learning, security, or graphics.
- Software Engineering is the study of how software systems are built, including topics such as project management, quality assurance, and software testing.
- You should choose Software Engineering if you are more interested in the hands-on approach, and if you want to learn the overall life cycle of how software is built and maintained.
- Both Computer Science and Software Engineering teach fundamentals of programming and computer science, so you can choose either one to become a software developer.
To understand the difference between Computer Science and Software Engineering majors, let’s take a look at their respective curriculum at University of Waterloo in Canada.
I chose University of Waterloo for this because it has one of the best computer science programs in North America.
Job prospects
Let’s first compare the kinds of jobs and internships you can get through each program.
Thankfully, University of Waterloo’s website provides several examples.
For each major, here are some of the titles alumni hold, and where they work:
Computer Science
- Web Developer/Architect, The Steele Group
- Programmer, Harry Rosen Inc.
- Mobile/Cloud Developer, Clearbridge Associates Limited
- Software Engineering, General Dynamics Canada
- Software Development Engineering, Microsoft
- Agile Engineer, Pivotal Labs
- Business Analyst, Canadian Tire Corporation
- Developer Advocate, Google
- Product Manager, Dropbox
Software Engineering
- Software Developer, Tagged Inc
- Software Developer, IBM Canada
- Software Manager, Arius Software Corporation
- Software Engineer, VistaPrint USA
- Software Engineer, Harris Corporation
- Software Developer, Accenture Inc.
- Technical Product Manager — Software Design & Development, NexJ Systems Inc
- Consultant, PureFacts Financial Solutions
- Implementation Consultant, Desire2Learn
As you can see, there isn’t a huge difference between the types of jobs you can get.
The most common job graduates get after earning their Computer Science or Software Engineering degree is Software Developer or Software Engineer.
There are other related options as well, such as Product Manager, QA Analyst, and Technology Consultant. Your options will depend on your specific skill set.
First-year courses:
Now, let’s take a look at each program’s required courses. Let’s first compare some of the courses you’d need to take in your first year.
Computer Science
- CS 135 — Designing 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 a few electives
Software Engineering
- CS 137 — Programming Principles
- 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 — Algebra for Honours Mathematics
- ECE 105 — Physics of Electrical Engineering 1
- ECE 106 — Electricity and Magnetism
- ECE 124 — Digital Circuits and Systems
- ECE 140 — Linear Circuits
- SE 101 — Methods of Software Engineering
As you can see, the first year courses are fairly similar as well. They both cover a few fundamental computer science courses, and a few math courses in linear algebra and calculus.
No comments:
Post a Comment