Two of the common questions my students ask me most of the time are: “What’s the difference between Computer Science and Software Engineering degree?” and ” which option should I choose between the two”
In this article, I’ll share my opinion and give you my own quick analysis on these degrees
A quick glance of these two degrees
- 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.
What is computer science?
Computer science encompasses the study of computers and computational systems. Computer scientists may generally theorize and calculate aspects of software and software systems in the design and development phases.
Additionally, computer scientists may study and work in areas of the field that focus on artificial and machine intelligence, computer networks, security networks and monitoring systems, database systems, user interaction, mathematical analysis, programming languages and theories regarding computing and processes.
While computer scientists may also study principles of software engineering, this field of study is typically the only shared characteristic between computer science and software engineering.
What is software engineering?
Software engineering applies the standards and principles of engineering to design, develop, maintain, test and evaluate computer software. A software engineer may also be referred to as a computer programmer, software designer or software developer as the nature of software engineering can require knowledge of programming languages, principles of software design and building.
Software engineers may also be the programmers who test and perform quality assurance checks on new and developing software to ensure its efficacy and efficiency in its real-world application.
Software engineers may also be familiar with theories surrounding software use, however, working with theories typically may not fall under the job description, as computer scientists are the workers who construct and test theories about programming and operation.
Having understood what these two majors or degrees entail. It is now time to take a look at their respective curriculum from some of the best Universities in Kenya.
I will choose University of Nairobi and Jomo Kenyatta University of Agriculture and Technology simply because UON has one of the best undergraduate computer science programs and JKUAT has one of the best postgraduate software engineering programs
Bachelor of Science in Computer Science - University of Nairobi
Semester 1 – Year 1
- CSC111 Introduction to Computer Systems
- CSC112 Introduction to Programming
- CSC113 Discrete Mathematics
- CSC115 Programming Lab
- CSC126 Physics for Computing Systems
- CCS001 Communication Skills
- CCS009 Elements of Economics
Semester 2 – Year 1
- CSC122 Database Systems
- CSC123 Data Communications
- CSC125 Linear Algebra
- CSC127 Object Oriented Programming
- CSC211 Data Structures and Algorithms
- CSC214 Digital Electronics
- CCS010 HIV/AIDS
Semester 1 – Year 2
- CSC114 Differential and Integral Calculus
- CSC212 Systems Analysis and Design
- CSC213 Computer Architecture
- CSC217 Knowledge-based Systems & Programming
- CSC223 Operating Systems
- CSC224 Software Engineering
- CSC225 Computer Networks
Semester 2 – Year 2
- CSC124 Probability and Statistics
- CSC216 Assembly Language Programming
- CSC222 Automata Theory
- CSC227 Programming Project
- CSC228 Web and Services Programming
- CSC229 Machine Learning Algorithms & Programming
- CSC313 Foundations of Human Computer Interaction
Semester 1 – Year 3
- CSC311 Analysis and Design of Algorithms
- CSC314 Computer Graphics
- CSC315 Distributed Systems
- CSC316 Intro to Organizations and Management
- CSC317 Artificial Intelligence Applications
- CSC318 Network Design Implementation and Management
- CSC319 Innovation & Entrepreneurship
Semester 2 – Year 3
- CSC321 ICT Project Management
- CSC322 Network and Distributed Programming
- CSC326 Compiler Construction
- CSC327 Embedded Systems & Mobile Programming
- CSC328 Business Intelligence & Analytics
- CSC411 Computer Network Security
Semester 1 – Year 4
- CSC414 ICTs and Society
- CSC417 Information Systems and Organizations
- CSC418 Emerging Technologies Bootcamps
- CSC451 Distributed Databases
- CSC481 Computer Games Programming
- CSC416 Computer Systems Project
Semester 2 – Year 4
- CSC416 Computer Systems Project
- CSC434 Cloud Computing and Services
- CSC452 Information Systems Control Audit
- CSC455 Information for Emerging Online Solutions
MSc. Software Engineering - Jomo Kenyatta University of Agriculture and Technology
The minimum requirements for eligibility into the Master of Science in Software Engineering is: Holders of a Bachelor’s degree in Computer Science/Computer Technology/Information Technology, Mathematics and Computer science, and Electronic Engineering of at least Upper Second Class Honours of JKUAT.
Semester 1 – Year 1
- ICS 3101 Research Methodology
- ICS 3102 Foundations of Computer Logic and Symbolic Reasoning
- ICS 3103 Communication Systems
- ICS 3104 Systems Engineering
- ICS 3105 Object Oriented Software Engineering
- ICS 3106 Software Construction
Year 2 – THESIS
Semester 2 – Year 1
- ICS 3107 Human Computer Interaction
- ICS 3108 Software Project Management
- ICS 3109 Business Process Re-engineering and Change Management
- ICS 3110 Software Quality Assurance
- ICS 3111 Software Systems Risk Assessment
- ICS 3112 Legal and Ethical Aspects of Computing
My Take In Summary
From my research, I didn’t get a good match of undergraduate degree in software engineering that’s why I settled for post graduate degree in software engineering. I know of Strathmore university and Egerton University which offers undergraduate degree in software engineering though very scanty information is provided on their curriculum
As you can see, there isn’t a huge difference between the two degrees. In fact if you are keen enough, you will realize that University of Nairobi has incorporated a lot of S/W Engineering concepts in its Computer Science degree.
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.
When it comes to the requirements in math and statistics, Computer Science and Software Engineering are almost identical. They cover combinatorics, probability and statistics.
The core computer science requirements are similar as well, ranging over algorithms, data structures, and operating systems.
The key difference are that:
- Software Engineering has more requirements in electrical engineering and software engineering fundamentals, such as software testing, design, and software requirements specification.
- Computer Science allows more electives in higher-level computer science courses. You can choose from a wide range of topics such as security, software engineering fundamentals, computer vision, machine learning, and database management.
So, which Degree should you choose?
I think it mostly depends on your preferences. In short:
- 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.
- You should choose Software Engineering if you’re more interested in the hands-on approach, and if you want to learn the overall life cycle of how software is built and maintained.
So which option is better if you want to be a Software Engineer?
Here is my opinion. University of Nairobi with its particular set of program requirements, Computer Science is a better choice if you want to be a software engineer.
Typically, what an employer looks for in a software engineer candidate is the ability to write solid code and build interesting projects, as well as computer science fundamentals including data structures and algorithms.
I think the best way to cultivate this skill set is by quickly learning computer science fundamentals, and spending your own time practicing solving problems and writing code.
Based on the curriculum for Software Engineering and based on how busy engineering students tend to be in general, I think it would be harder to do this with Software Engineering than with Computer Science.
Another benefit of University of Nairobi’s Computer Science program is that it allows more computer science electives. This is great as well because depending on what’s in demand in the job market, you’ll be able to adjust your courses. For example, if mobile app development is in demand, you can learn that. And if parallel computing is in demand, you can focus on that instead.
I’m sure there are some benefits to learning software engineering fundamentals (project management, design, testing, etc.). But I would personally rather take flexibility over a predefined set of skills. That’s why I think Computer Science is a better degree to become a software engineer with this particular curriculum.
Of course, that’s just my opinion, and this is just one particular university. I’d love to hear about your opinion and what your experience was like if you majored in either Computer Science or Software Engineering. Please let me know in a comment below.
A Few Take Home Notes - Parting Shot
Note 1: Different universities have different requirements for these two degrees. This article should be a good starting point, but you should still take a look at the program requirements at the university you’re interested in attending.
Note 2: Most Kenyan universities don’t even have a Software Engineering degree. For example, the University of Nairobi as we have seen has Computer Science degree, but not Software Engineering. But it does have a software engineering concentration within their Computer Science program.
If the university you’re interested in going to doesn’t have a Software Engineering major, I would suggest you go with Computer Science if you want to become a software developer. Computer Engineering is more focused on hardware than Computer Science or Software Engineering, so it’s less directly related to a typical software developer’s job.
You are the best?
What about a degree in Information technology and computer science?