Computer Science vs Software Engineering: Key Differences
- Computer science involves the design and understanding of computational processes, while Software engineering is a process of analyzing, designing, building, and testing software applications.
- Computer Science studies how computers perform theoretical and mathematical tasks, whereas Software Engineering studies how software systems are built.
- you should select Computer Science to learn about AI and machine learning, while you should select Software Engineering to learn about the overall working of the specific software.
- Students of software engineering can take courses on project management while it is often included in the computer science curriculum.
What is Computer Science?
Computer science is a discipline that involves the design and understanding of computers and computational processes. It is a broad scientific topic. It includes the study of how data is processed, the security of networks, organizing databases, artificial intelligence, etc.
Much like other forms of science, computer science takes an abstract approach to computers and computer programming. It explores how computers work in terms of algorithms and the computations that process which manipulate data with theories. Below is a key difference between Computer Science vs Software Engineering.
What is Software Engineering?
Software Engineering is a process of analysing user requirements and then designing, building, and testing software application which will satisfy those requirements.
It deals with creating new software that would be used in the real world. You would be required to work with a team to build a new application that your end-users would find beneficial.
Difference Between Software Engineering and Computer Science
Here are the important differences between Software Engineering vs Computer Science:
Parameter | Software Engineering | Computer Science |
---|---|---|
Definition | Software engineering is defined as a process of analyzing user requirements and then designing, building, and testing software applications. | Computer science is a discipline that involves the design and understanding of computers and computational processes. |
Meanings | Software Engineering is a study of how software systems are built. | Computer Science is the study of how computers perform theoretical and mathematical jobs. |
Selection | You should choose Software Engineering if you want to learn the overall life cycle of how specific software is built and maintained. | You should choose Computer Science if you want to get into a specialized field in CS like artificial intelligence, machine learning, security, or graphics. |
Project management | Students of software engineering will likely take courses on project management, both in undergraduate and graduate programs. | Project management is often included in the computer science curriculum. Mostly as part of a software engineering course. |
Course include | In Software Engineering, you will also learn programming languages and general computing principles. | Computer science students will study how data is stored, processed, and applied on various other computing devices. |
Scope | Emerging occupations related to software engineering depend on the state of software and technology in the future. | It is a field of computer science which also includes careers in cloud computing and AI technology. |
Developer | The average salary for a computer scientist is $103,643 per year in the United States. | The average salary for a software engineer is $107,932 per year. |
Why need Software Engineering?
Here, are reasons for using software engineering method:
- It allows you to improve the quality of the software products.
- To increase productivity
- Provide job satisfaction to software professionals.
- It will enable you to control software schedules and to plan effectively.
- It helps to reduce the cost of software development.
- Allow you to meet the customers’ needs and requirements.
- It helps you to support the engineers’ activities systematically and efficiently.
Why need Computer Science?
Here, are reasons for using Computer science:
- It is internationally recognized for its excellence in research, learning, and engagement with industry.
- Helps you to study basic computer fundamental mathematically and logically.
- Gives in-depth knowledge about the actual functioning of the computer
Challenges of Software Engineering
Here are some important challenges of Software Engineering:
- In safety-critical areas such as space, aviation, nuclear power plants, etc. the cost of software failure can be massive because lives are at risk.
- Increased market demands for fast turnaround time.
- The diversity of software systems should be communicating with each other.
Challenges of Computer Science
Here are some important challenges of Computer Science:
- The Internet s infrastructure will need to be updated to match the’ New Internet.
- More customers are using mobile apps, so empathizes on mobile platforms and cloud services is important.
- In 2020. 100-billion objects will be connected to the Internet
- Professionals rated data leaks and exposure of sensitive information as the highest concern
Best Practice of Software Engineering
Here are some best practices for software engineers:
- Software engineers should act in such a way that it is beneficial to the client as well as the employer.
- Allows you to software products and related modifications that should meet the highest professional standards.
- It helps you to maintain integrity and independence in their professional approach.
- Promote an ethical approach for software development and maintenance.
Best Practice of Computer Science
Here are some critical best practices for Computer Science professionals:
- Make incremental changes.
- Optimize software only after It works correctly.
- Document design and purpose, not mechanics.
- Collaborate.
Which is better? Computer Science or Software Engineering?
Both are the best in their own aspects. However, you should opt for the Software engineering if you are interested in software testing, software development and overall software life cycle or you can opt for Computer Science if you have an interest in artificial intelligence, machine learning, security, database management, etc.
Addis Ababa Universty Software Engineering
List of courses
# | Modules Number | Module Title | ECTS | Course Code | Course Title | ECTS | Cr.Hr. |
01 | EnLa-M1013 | Basic English Skills | 10 | EnLa-1011 | Communication English | 5 | 3 |
EnLa-1012 | Basic Writing Skills | 5 | 3 | ||||
02 | CESt-M1023 | Civics and Ethics Education | 5 | CESt-1023 | Civics and Ethical Education | 5 | 3 |
03 | PHIL-M1033 | Introduction to Logic | 5 | PHIL-1033 | Introduction to Logic | 5 | 3 |
04 | GEng-M1043 | Applied Engineering Mathematics | 14 | Math-1041 | Applied Mathematics I | 7 | 4 |
Math-1042 | Applied Mathematics II | 7 | 4 | ||||
05 | GEng-M1053 | Engineering Mechanics | 12 | CEng-1051 | Engineering Mechanics I (Statics) | 6 | 3 |
MEng-1052 | Engineering Mechanics II (Dynamics) | 6 | 3 | ||||
06 | GEng-M1063 | Basic Engineering Skills | 8 | GEng-1061 | Introduction to Engineering Profession | 2 | 1 |
MEng-1062 | Engineering Drawing | 6 | 3 | ||||
07 | ITSE-M2211 | Information Technology Fundamentals | 7 | ITSE-1071 | Fundamentals of Information Technology | 7 | 4 |
08 | ITSE-M5511 | Human Computer Interaction | 7 | ITSE-3081 | Fundamentals of Human Computer Interaction | 7 | 4 |
09 | ITSE-M7811 | Information Assurance and Security | 14 | ITSE-4091 | Fundamentals of IT Security | 7 | 4 |
ITSE-4092 | Advanced IT Security | 7 | 4 | ||||
10 | ITSE-M4511 | Networking | 21 | ITSE-2121 | Fundamentals of Networking | 7 | 4 |
ITSE-2122 | Mobile Programming | 7 | 4 | ||||
ITSE-3123 | Advanced Mobile Programming | 7 | 4 | ||||
11 | ITSE-M2411 | Programming Fundamentals I | 14 | ITSE-1131 | Fundamentals of Computer Science and Programming | 7 | 4 |
ITSE-2131 | Fundamentals of Data Structures and Algorithms | 7 | 4 | ||||
12 | ITSE-M2411 | Programming Fundamentals II | 14 | ITSE-2132 | Object-Oriented Programming I | 7 | 4 |
ITSE-3133 | System Programming | 7 | 4 | ||||
13 | ITSE-M8811 | Social and Professional Issues | 12 | ITSE-4182 | Social Networks | 6 | 3 |
ITSE-4181 | Ethics and Professionalism | 6 | 3 | ||||
14 | ITSE-M4811 | Web Systems and Technologies I | 13 | ITSE-2192 | Fundamentals of Web Design and Development | 7 | 4 |
ITSE-2191 | Graphics and Multimedia I | 6 | 3 | ||||
15 | ITSE-M4812 | Web Systems and Technologies II | 13 | ITSE-3193 | Web Programming I | 7 | 4 |
ITSE-4194 | RAD Web Development I | 6 | 3 | ||||
16 | ITSE-M4812 | System Integration and Architecture | 24 | ITSE-2211 | Software Engineering I (Software Modeling & Analysis) | 6 | 3 |
ITSE-3212 | Software Engineering II (Software Design, Verification & Validation) | 6 | 3 | ||||
ITSE-4213 | Software Quality Assurance and Testing | 6 | 3 | ||||
ITSE-4214 | Software Project Management | 6 | 3 | ||||
17 | ITSE-M3311 | Information Management | 14 | ITSE-2221 | Fundamentals of Database | 7 | 4 |
ITSE-5222 | Distributed and Object Database | 7 | 4 | ||||
18 | ITSE-M3321 | Math and Statistics for IT | 12 | ITSE-2231 | Discrete Mathematics | 6 | 3 |
ITSE-4232 | Linear Programming | 6 | 3 | ||||
19 | ITSE-M5911 | Advanced Programming I | 14 | ITSE-3241 | Object-Oriented Programming II | 7 | 4 |
ITSE-3242 | System Programming | 7 | 4 | ||||
20 | ITSE-M5912 | Advanced Programming II | 13 | ITSE-5243 | Distributed Systems Programming | 7 | 4 |
ITSE-5244 | Algorithm Design and Analysis | 6 | 3 | ||||
21 | ITSE-M2911 | Platform Technologies I | 20 | ITSE-3251 | Digital Logic Design | 7 | 4 |
ITSE-3252 | Computer Architecture and Organization | 6 | 3 | ||||
ITSE-3253 | Operating Systems | 7 | 4 | ||||
22 | ITSE-M2912 | Platform Technologies II | 24 | ITSE-4254 | Microcomputers | 6 | 3 |
ITSE-4255 | Interfacing | 6 | 3 | ||||
ITSE-5256 | Introduction to Robotics | 6 | 3 | ||||
ITSE-5257 | FPGA Programming | 6 | 3 | ||||
23 | ITSE-M3711 | Systems and Application Specialties | 12 | ITSE-1261 | Fundamentals of Electrical Circuits | 6 | 3 |
ITSE-2262 | Fundamentals of Electronics | 6 | 3 | ||||
24 | ITSE-M911 | Project | 14 | ITSE-5271 | Project I | 7 | 4 |
ITSE-5272 | Project II | 7 | 4 | ||||
25 | ITSE-M5581 | Electives | 12 | Elective I | 6 | 3 | |
Elective II | 6 | 3 | |||||
Total | 328 | 178 |
Addis Ababa Universty Computer Science
Core modules
Modules | Clusters | |||||||||||
Module Code | Module Name | Course Code | Courses in a Module | Credit hrs. | ECTS | |||||||
CoSc-M1011 | Basic Programming | CoSc1011 | Introduction to Computer Science | 4 | 6 | |||||||
CoSc1012 | Fundamentals of Programming I | 3 | 5 | |||||||||
CoSc1013 | Fundamentals of Programming II | 3 | 5 | |||||||||
Total | 10 | 16 | ||||||||||
CoSc- M3051 | Database Systems | CoSc3051 | Fundamentals of Database | 4 | 6 | |||||||
CoSc3052 | Advanced Database System | 4 | 6 | |||||||||
Total | 8 | 12 | ||||||||||
CoSc -M4171 | Computer Security | CoSc4171 | Computer Security | 3 | 5 | |||||||
Total | 3 | 5 | ||||||||||
CoSc-M2041 | Computer Networking | CoSc2041 | Computer Networking & Data Communication | 4 | 6 | |||||||
CoSc2043 | Wireless Communication and Mobile Computing | 3 | 5 | |||||||||
CoSc2042 | Network and System Administration | 3 | 5 | |||||||||
Total | 10 | 16 | ||||||||||
CoSc -M3091 | Web Development | CoSc3091 | Internet Programming | 4 | 7 | |||||||
Total | 4 | 7 | ||||||||||
CoSc- M2021 | Advanced Programming | CoSc2021 | Object Oriented Programming | 4 | 6 | |||||||
CoSc2022 | Data structures and Algorithms | 4 | 6 | |||||||||
CoSc2023 | Advanced Programming | 4 | 6 | |||||||||
Total | 12 | 18 | ||||||||||
CoSc -M2031 | Computer Architecture andOperating Systems | CoSc2031 | Computer organization and architecture | 3 | 5 | |||||||
CoSc2032 | Operating System | 4 | 6 | |||||||||
CoSc2033 | Microprocessor and Assembly Language Programming | 3 | 5 | |||||||||
Total | 10 | 16 | ||||||||||
CoSc-M3101 |
| CoSc3101 | Computer Graphics | 3 | 5 | |||||||
CoSc3102 | Human Computer Interaction | 3 | 5 | |||||||||
Total | 6 | 10 | ||||||||||
CoSc-M3071 | System Development | CoSc3071 | Fundamentals of Software Engineering | 3 | 5 | |||||||
CoSc3072 | Object Oriented Software Engineering | 3 | 5 | |||||||||
Total | 6 | 10 | ||||||||||
CoSc–M4111 | Algorithms and Complexity | CoSc4111 | Analysis of Algorithms | 3 | 5 | |||||||
CoSc4112 | Complexity Theory | 3 | 5 | |||||||||
Total | 6 | 10 | ||||||||||
CoSc-M3061 | Compiler Development | CoSc3061 | Formal Language and Automata Theory | 3 | 5 | |||||||
CoSc3062 | Compiler Design | 4 | 6 | |||||||||
Total | 7 | 11 | ||||||||||
CoSc-M3081 | Intelligent Systems | CoSc3081 | Introduction to Artificial Intelligence | 4 | 6 | |||||||
Total | 4 | 6 | ||||||||||
CoSc-M4121 | Project | CoSc4121 | Technical Report Writing in Computer Science | 2 | 4 | |||||||
CoSc4122 | Final Project I | 4 | 6 | |||||||||
CoSc4123 | Final Project II | 4 | 6 | |||||||||
Total | 10 | 16 | ||||||||||
CoSc-M4141 | Selected Topics | CoSc4141 | Selected topics in Computer Science | 3 | 5 | |||||||
Total | 3 | 5 | ||||||||||
CoSc-M4161 | Distributed Systems | CoSc4161 | Int. to Distributed Systems | 3 | 5 | |||||||
Total | 3 | 5 | ||||||||||
Program Total | 102 | 163 | ||||||||||
Elective Module
Courses in a Module | Credit hrs. | EtCTS |
Elective I (one course) | 3 | 5 |
Elective II (one course) | 3 | 5 |
Elective I | |||||
No. | Course Code | Course title | Credit | CP | |
CoSc4151 | System Programming | 3 | 5 | ||
CoSc4152 | Introduction to Neural Network | 3 | 5 | ||
CoSc4153 | Multimedia | 3 | 5 | ||
CoSc4154 | Industrial Practice | 3 | 5 | ||
CoSc4155 | Computer Vision and Image processing | 3 | 5 | ||
Elective II | |||||
No. | Course Code | Course title | Credit | CP | |
CoSc4156 | Real –time and Embedded Systems | 3 | 5 | ||
CoSc4157 | Int. to Data mining and Warehousing | 3 | 5 | ||
CoSc4158 | Windows Programming | 3 | 5 | ||
9. | CoSc4159 | Simulation and Modeling | 3 | 5 |
General Education Modules
Module Code | Module Name | Course Code | Courses in a Module | Credit hrs. | EtCTS |
EnLa- M1013 | Communication Skills | EnLa1011 | Communicative English Skills | 3 | 5 |
EnLa1012 | Basic Writing Skills | 3 | 5 | ||
CvEt –M1023 | Civics and Ethics | CvEt1023 | Civics and Ethics | 3 | 5 |
Phil-M1033 | Introduction to Logic | Phil1033 | Introduction to Logic | 3 | 5 |
Total | 12 | 20 |
Supportive Modules
Module Code | Module Name | Course Code | Courses in a Module | Credit hrs. | EtCTS |
Math- M2193 | Introduction to Linear Algebra | Math2191 | Introduction to Linear Algebra | 3 | 5 |
Math-M2021 | Basic Calculus | Math2021 | Calculus I | 4 | 7 |
Math-M2233 | Discrete Mathematics and Combinatorics | Math2231 | Discrete Mathematics and Combinatorics | 3 | 5 |
Math-M3223 | Applied Numerical Analysis | Math3221 | Applied Numerical Analysis | 3 | 5 |
ECEG-M1359 | Electronics for Computer Science | ECEG1351 | Fundamentals of Electricity and Electronic Devices | 3 | 5 |
ECEG1352 | Digital Electronics | 3 | 5 | ||
Stat- M2183 | Statistics and Probability | Stat2181 | Introduction to Statistics | 3 | 5 |
Stat2182 | Introduction to Probability | 3 | 5 | ||
MGMT-M4111 | INNOVATION and Project Management | MGMT4111 | ENTREPRENEURSHIP AND ENTERPRISE DEVELOPMENT | 3 | 5 |
Total | 28 | 47 |