6 answers
Asked Viewed 180 times Translate

How to know what Computer Science Major is best for your interests?

I'm in highschool and about to start the college application process, but when I think about what major I want to be in and what school best supports that major it's difficult because many colleges say "computer science" or "computer engineering" and I don't understand the difference. How do I know which major I'm looking for when they sound similar but could mean very different courses. #majors #college #computer-science

+25 Karma if successful
From: You
To: Friend
Subject: Career question for you
100% of 8 Pros
100% of 1 Students

6 answers

Updated Translate

Jeff’s Answer

Hi Tomi,

Great question! And you already have a lot of great answers on the specifics. I want to add a few points.

First, in the immortal words of Douglas Adams "Don't panic!" The first two years are primarily focused on introductory classes. This is where you get a very broad exposure so you can begin to figure out what you really enjoy and are good at. Many students start their academic careers with one major and end with another. If you ask my mother, she would tell you that I changed my major 20 times! I am positive it was only once. The point is that you do not have to lock down a degree focus in the beginning. And, you can change over time.

Once you get a feel for the different disciplines, you can begin to take focused upper level classes. But even then, you have to keep in mind that every area of computers is constantly evolving and changing. When I graduated, back in the stone age, I had programmed in 20 different languages but I was hired to work in a different language. From there, I went into hardware and then firmware development (BIOS). And then I went into academia.

As the industry evolves, the most important skill is adaptability. You will have the option to change your career as time and the industry progresses.

My advice: Don't worry about the exact focus of your college career at his point. Learn how to learn and adapt and see what really interests you. You should be able to take classes in any of the computer related disciplines. And, enjoy the journey!

This actually helps make my college pick a bit more lax. I've been focusing too much on the school's computer course in the first year, thank you! Tomi A.

100% of 1 Students
Updated Translate

John’s Answer

Tomi maybe you have always liked to solve problems or decipher codes. Perhaps you have a knack for learning new languages, or maybe you were so intrigued with your computer that you ripped off the cover and started to tinker with the inner workings. If so, either computer science or computer engineering might be an ideal career choice for you.


COMPUTER SCIENCE – Computer science majors study how data is processed, stored, and communicated. They learn how to create software that allows computers and machines to run more efficiently, process more data, do more tasks, and otherwise be more useful for either business or commercial users. A computer science major might study algorithms, statistical modeling, programming languages, and app development.

COMPUTER SYSTEMS ANALYST • The average Computer Systems Analyst salary in the United States is $88,500 as of June 28, 2020
Computer systems analysts assess an organization's computer systems and recommend changes to hardware and software to enhance the company's efficiency. Because the job requires regular communication with managers and employees, computer systems analysts need to have strong interpersonal skills. Systems analysts need to be able to convince staff and management to adopt technology solutions that meet organizational needs. Also, systems analysts need the curiosity and thirst for continual learning to track trends in technology and research cutting-edge systems. Systems analysts also need business skills to recognize what's best for the entire organization. Similar job titles are business analysts or business systems analysts.

SOFTWARE DEVELOPER • The average Software Developer salary in the United States is $90,000 as of June 28, 2020
Software developers create software programs that allow users to perform specific tasks on various devices, such as computers or mobile devices. They are responsible for the entire development, testing, and maintenance of software. Software developers must have the technical creativity required to solve problems uniquely. They need to be fluent in the computer languages that are used to write the code for programs. Communication skills are vital for securing the necessary information and insight from end users about how the software is functioning.

COMPUTER ENGINEERING – Computer engineering majors bring computer science and electrical engineering together. While computer engineering students also learn how to create and work with software, the focus of computer engineering programs is hardware – designing and building new chips and machines and wedding those new systems with functional software. Like computer scientists, computer engineers can design for either business users or commercial users. A computer engineer might design a new microprocessor or a new supercomputer, and a computer scientist would design the operating systems for both.

COMPUTER HARDWARE ENGINEER • The average Computer Hardware Engineer salary in the United States is $86,500 as of June 28, 2020
Computer hardware engineers are responsible for designing, developing, and testing computer components, such as circuit boards, routers, and memory devices. Computer hardware engineers need a combination of creativity and technical expertise. They must be avid learners who stay on top of emerging trends in the field to create hardware that can accommodate the latest programs and applications. Computer hardware engineers must have the perseverance to perform comprehensive tests of systems, again and again, to ensure the hardware is functioning as it should.

COMPUTER NETWORK ARCHITECT • The average Computer Network Architects salary in the United States is $112,000 as of June 28, 2020
Computer network architects design, implement, and maintain networking and data communication systems, including local area networks, wide area networks, extranets, and intranets. They assess the needs of organizations for data sharing and communications. Computer network architects also evaluate the products and services available in the marketplace. Computer network architects test systems before they are implemented and resolve problems as they occur after the setup is in place. Computer network architects need to have the analytical skills to evaluate computer networks.

Tomi as far as what it takes to be a successful student in these disciplines, both require that you have good math skills. Computer science programs put a bigger emphasis on science skills than computer engineering programs do. Successful computer engineering students will have an interest in both the hardware and software aspects of computers, whereas computer science students need to have more of an interest in just the software aspect.

Hope this was Helpful Tomi

Thank you for clarifying the difference between the fields, I'm interested in both software and hardware of computers. I'm going to take your descriptions into account as I choose what schools to apply to and so on. Thank you! Tomi A.

Most computer software development jobs require bachelor's degrees in computer science or software engineering. These programs have significant math requirements that include a sequence in calculus, differential equations, and linear algebra. The software development tracks of these programs teach students how to construct, analyze, and maintain software through lectures and laboratory sessions. Programs include topics in computer programming, operating systems, and networks. In many programs, the capstone requirement is a senior design project that allows students to apply the principles they've learned to an original concept. John Frick

A 4-year degree in Computer Hardware Engineering, electrical engineering or a related field is required for most jobs in computer hardware engineering; however, a master's degree may be necessary for some specialties, supervisory or high-ranking positions with cutting-edge companies. Coursework for the student computer hardware engineer cover such topics as engineering electronics, electric circuits, computer design and statistics for engineers. Those with successful careers in computer hardware engineering are usually creative, analytically-minded and detail-oriented people who enjoy being part of a team. John Frick

Thank You Morgan. “Our generation has the ability and the responsibility to make our ever-more connected world a more hopeful, stable and peaceful place.” — Natalie Portman John Frick

Thank You Michael. “At the end of the day it’s not about what you have or even what you’ve accomplished… it’s about who you’ve lifted up, who you’ve made better. It’s about what you’ve given back.” – Denzel Washington John Frick

100% of 3 Pros
Updated Translate

Caren’s Answer

If you're choosing between the two, and are good at calculus and physics, and the first-year required classes for the two majors are different at the schools you're looking at, focus on keeping your options open and choose Computer Engineering. If the first-year required courses at the schools are the same (as some very engineering-heavy schools arrange it), it probably doesn't matter as much which you choose. As others have noted, you will get software development courses in Computer Engineering, so you generally can always switch to Computer Science without needing to spend an extra year in college if you decide you prefer Computer Science to Computer Engineering, or you could double major. If you choose Computer Science first, that's not an engineering major, and you will likely need to make up for classes you did not take to switch into Computer Engineering. Many engineers (of various disciplines -- EE, Comp E, Mech E, IE, etc.) switch to computer science. Not as many computer science majors go in the other direction.

I'm not skilled in either calculus or physics, but I'm open to starting in engineering. But I'm skeptical of having to switch later down the line, mostly because many schools have different rules and conditions when it comes to switching classes and majors. Thank you for the advice! Tomi A.

Updated Translate

Kaan’s Answer

I think I can bring a practical view to this question. I went to a "Computer Science" department for my BS, then "Computer Engineering" for my MS in another university. Then I got my doctoral degree from a "Computer and Information, Science and Engineering" department in another university. What I studied was all the same. Confusing? No, it is not and here's why.

The name change between Science and Engineering was because in the first university, the department I went to was under Faculty of Liberal Arts and Sciences, hence the name Computer Science. The second department was under Faculty of Engineering and so the name Computer Engineering. As you see from the third department I went to, they included everything related to what they offer.

So, don't make decisions based on names. Just look at the courses they offer, you can find it on the department web site easily. Computer Science, Information, Engineering, whatever you name it offers these courses: Data Structures and Algorithms, Various programming language courses, Discreet Math or Structures, Software Engineering, Database systems, Computer Organization and/or Design, Operating Systems, Computer Networks. These are the core courses of a department which offers software aspects of Computer Engineering or just Computer Science.

On the other hand, if you see courses like, Circuits, Signals and Systems, Digital Logic, Microprocessors then you are looking at a department which offers hardware side of computer engineering, also sometime is called Electronics Engineering.

There are also departments which are called Computer Engineering and offers courses from both software side and hardware side above.

I need to also mention that there is no such thing that computer science departments make scientist and computer engineering departments make engineers. Any discipline has scientists, and to be one the requirement is to have a PhD or doctoral degree. So, you may graduate from an engineering discipline and then go for your Masters and Doctoral degrees and become a scientist.

My advice is to check the program and look for the courses they offer. Do not miss an opportunity like there is a college you wanted to go but they did not offer the program you wanted, or you are not accepted into. You can always take courses from other departments. You can get a minor degree if it is offered or you can sign up for specialization classes like Information Security or you can continue with a Masters on whatever most interests you after graduation. Possibilities are endless.

Thank you, I will look more into what the college's offer despite the name. Tomi A.

Updated Translate

Anna’s Answer


John's answer above that clarifies the difference between computer science (the software side of things) and computer engineering (the hardware side of things). I see you are asking " How do I know which major I'm looking for when they sound similar but could mean very different courses." I'll try to help with that.

You are right that sometimes behind the same name, there might be very different majors. For example, at some universities 'computer science' is an umbrella major and within it students can choose tracks to specialize in - software engineering, information technology, programming, data science and analytics, computing security, etc. At other universities, these 'subdivisions' will have their own major - i.e. there will be a separate computer science major, and also software engineering, information technology, cybersecurity, etc. There are many other majors that are computing-related - mechatronics, computer game development, etc.

The best place to see exactly what is in a major is the university catalog. It will typically list the requirements for the major, and also will have course descriptions for each course that is included in the major. You can usually find this using any search engine with search terms "university name undergraduate catalog".

Hope this pointer helps you find the info you need.

Thank you, I'll definitely be checking on the catalogs of schools I had in my mind and get to learn a little more. Tomi A.

Updated Translate

Sachin’s Answer

If you are considering a computational degree program you have probably come across the terms computer science and computer engineering. Though these terms have substantial overlap, understanding the differences between computer science masters degree programs and computer engineering programs is essential to picking a program that will be a good fit for you.

Computer science focuses on the theory of computation. This includes writing code that integrates data, data structures, algorithms, statistical models and more in the most efficient way possible. This field also focuses on how to create algorithms that efficiently achieve complex tasks, whether that task is emulating a human brain or determining the best route for your Uber pool. Some of the most popular careers for computer scientists are software engineering, UI/UX design, web design, data science, and machine learning.

Computer engineering focuses on how to build devices. It is a field that combines physics, electrical engineering and computer science. The focus of computer engineering is on hardware, rather than software. Closely related to physics and engineering, students who want to understand how things work and apply that knowledge to build something new could thrive in a computer engineering program.
The work of a computer engineer works in the physical world and involves understanding how we can harness the laws of physics and electronics to create better computer components. They are more likely to spend more time at a lab bench than writing code. Your computer engineering degrees will most likely cover a wide array of topics including computer architecture, computer networks and physics.

Computer engineers still need solid programming skills. A degree in computer engineering will cover programming topics such as software design. There are many different career options for computer engineers, such as: aerospace, life sciences, mobile devices and robotics.

Computer Science Courses
• Design and Analysis of Algorithms
• This course teaches students how to analyze the efficiency of algorithms using concepts from the theory of computation such as big O notation. Through this course students learn to write code that is optimized for its use case and analyze the efficiency of code.
• Introduction to Operating Systems
• This course covers the way operating systems manage and execute code in order make software run. This course will cover topics including process and thread management, concurrent programming, resources management and distributed services.
• Software Engineering
• This course teaches students to apply the theory of computation to practical problems by creating software solutions. This includes topics such as effective design and testing, engineering compromises and team based development.
• Data Analysis
• This course provides students with the tools and skills to apply statistical methods to large datasets using computational methods. This includes topics such as data creation, storage, access, processing and presentation.

Many CS departments at U.S. universities were offshoots from math departments , and the emphasis on providing a rigorous mathematical foundation for the computing disciplines is still evident in many CS curricula.

Computer engineering programs were largely developed in engineering departments strong in electrical engineering. Computer Engineering focuses on the practical aspects of development and use of computers.

Computer Engineering Courses
• Mechanics
• This course covers the fundamentals of physics. It explores the laws governing movement, energy and waves.
• Electricity and Magnetism
• This introductory physics course covers electromagnetic phenomena and how they influence the world. Students will learn how to predict, describe and understand these phenomena.
• Calculus III
• This course covers multivariate calculus and vector fields. These techniques help describe and predict many natural and physical phenomena.
• General Physics
• This course will cover the basics of physical phenomena including particles, work, gravitation and motion.
• Electric Circuits
• This course covers the basic concepts in the design of electronic systems. Students will learn to apply their knowledge to build functional circuits and to understand computer architecture and integrated circuits.
• Waves, Optics, Thermodynamics
• This course applies calculus to understand the mechanics and outcomes of waves and related phenomena. Students will learn to calculate the energy of waves, apply the laws of thermodynamics and understand physics experiments.
• Digital Logic, Machine Design
• This course covers how electrical circuits can be used to perform logic operations. Students will learn to design and build the type of circuits used in computing systems.

I would also request you to go through the courses offered for both these disciplines in the universities of your choices and see if it suits your interests or strengths before you take a decision.

This helped me a lot thank you! May I use your information in some social media posts for Career Village? Tomi A.