Computer Science

What Is Computer Science? [In-Depth Guide to Comp Sci Degrees, Jobs, Salaries + More]

What Is Computer Science? [In-Depth Guide to Comp Sci Degrees, Jobs, Salaries + More]
Computer science is something anyone can learn—provided they have patience and determination. You don't have to be a math wizard or a master coder to succeed in this discipline, but a logical mind is undoubtedly helpful, as is a healthy dose of curiosity. Image from Unsplash
Christa Terry profile
Christa Terry December 20, 2020

Computer science includes everything from software development to hardware engineering to IT, and that's what makes it so hard to define. To find your place in this field, you need to understand just how broad it is.

Computer Science Programs You Should Consider

Article continues here

Computer science encompasses a broad range of disciplines and functions. So many, in fact, that defining it in a few short sentences can be challenging. However, that hasn’t stopped authoritative sources from trying.

The BBC, for example, defines computer scientists as people who “design new software, solve computing problems, and develop different ways to use technology.”

According to the University of California – Santa Barbara, “Computer scientists are involved in creating technology and systems that are used in a wide range of industries, including medicine, communications, entertainment, manufacturing, business, and science.”

And then there’s the University of Alabama at Birmingham‘s Collat School of Business, which explains that “Computer and information research scientists develop new computing methods to solve problems in countless industries, as well as find innovative new uses for existing technology.”

All these descriptions make clear that computer science is a discipline involving software, technology, and business. What’s less clear is what sub-disciplines it encompasses. Where does one draw the lines defining where computer science begins and ends?

Purists would say that computer science is the study of processes that allow us to create and use computer programs—and the theories underlying those processes. Others differentiate between theoretical computer science and applied computer science, which includes programming, IT, and analytics.

There’s no one perfect answer to the question ‘What is computer science?’ which is a little surprising given how long humans have been experimenting with computing devices. The earliest of these was probably an abacus, which first came into use about 5,000 years ago. Fairly sophisticated analog computers, like the Antikythera mechanism, existed in ancient Greece.

Over thousands of years, humans made great strides in analog computing. Still, it wasn’t until the 1940s that the first electronic digital computers were created to streamline ballistics calculations in World War II. Grace Hopper invented the compiler in 1951 (and found the first computer bug; it was literally a bug—more precisely, a moth).

Computer science became its own discipline in the 1960s. Purdue University (Main Campus) established the first computer science department in 1962. The first doctorate-level computer science degrees were awarded in 1965 (one from University of Wisconsin – Madison, the other from Washington University in St Louis).

The true computer revolution started in the 1980s, however. Today nearly all of us carry computers in our pockets, the vast majority of business transpires via computers or machines powered by computers, and the definition of computer science has grown ever broader.

In this article, we answer the question what is computer science? and explore the following:

  • How hard is computer science?
  • Why computer science is important
  • Computer science degrees
  • Subjects in computer science
  • Computer science fundamentals
  • Computer science principles
  • Computer science fields
  • Who should study/go into computer science?
  • Computer science career paths

How hard is computer science?

Computer science is something anyone can learn—provided they have patience and determination. You don’t have to be a math wizard or a master coder to succeed in this discipline, but a logical mind is undoubtedly helpful, as is a healthy dose of curiosity.

Computer science, at its heart, is about problem-solving. Sometimes computer science problems involve real-world business challenges. Sometimes those problems involve testing the limits of what computers and computer-driven technologies are capable of. If you find chipping away at a challenge until you finally tackle it invigorating rather than frustrating, studying and then working in this field can feel like play. There may be barriers in your way—people of color still encounter some institutional roadblocks—but organizations are working to break those barriers down.


“I'm Interested in Computer Science!”

University and Program Name Learn More

Why computer science is important

Computer science is more than just the study of computers and computer technology. Nearly everything humans do in the developed world is in some way powered by computer science. a few examples:

  • Professional communications happen over email or Slack
  • We watch streaming videos on websites like Netflix
  • When we want to know something, we google it
  • We buy everything from toilet paper to plane tickets online
  • More and more components of automobile engines are digitally-driven
  • Our thermostats and lighting systems are smart
  • Money changes hands in the form of 1s and 0s instead of dollars and cents

Computers speed technological advancement, and technological advancement leads to greater computer integration into more areas of our lives. Everyday items that act like virtual personal assistants now include WiFi-enabled water filters, bed bug detectors, and wearable cameras.

Business, entertainment, commerce, and the economy all rely on applied and theoretical computer science; that’s not going to change in our lifetimes. There’s already a huge demand for people with tech skills, and the need for developers, analysts, administrators, and architects is only going to grow.

Computer science degrees

Colleges and universities offer associate’s, bachelor’s, master’s, and doctoral degrees in computer science. Each academic pathway leads to different careers in computer science. Associate’s degree holders, for instance, can be found in entry-level computer science jobs, while earning a computer science master’s can help you advance into management-level positions—and earn some of the highest salaries in computer science. Let’s take a brief look at the most common computer science degrees.


Most comp sci undergrads pursue either the Bachelor of Science (BS) in Computer Science or the Bachelor of Arts (BA) in Computer Science, but colleges and universities offer a variety of diplomas, including:

  • Bachelor of Applied Science (BASc) in Computer Science
  • Bachelor of Computing in Computer Science
  • Bachelor of Engineering (BEng or BE) in Computer Science
  • Bachelor of Mathematics in Computer Science
  • Bachelor of Technology in Computer Science and Engineering (BTech)

Bachelor’s degree programs prepare students to work in technology or to transition into on-campus or online master’s in computer science programs. The BSCS and similar degrees are typically more technical, with more credit hours devoted to computer science topics. Students in BA programs often take more electives outside of comp sci and fewer core courses related to information technology, programming, and hardware engineering. Some bachelor’s-level computer science programs let students choose a specialization or a track, but many focus on the fundamentals.

Master’s level

It’s much more common for master’s in computer science programs to offer career-focused concentrations like machine learning, cyber security, or data analysis. These specializations often determine the classes students take (in addition to a handful of core classes). At the master’s level, many programs are focused on either applied computer science (for professionals) or theoretical computer science (for researchers).

It’s possible to advance in tech without a Master of Science in Computer Science (MSCS), but getting a computer science master’s is worth it for those who want to specialize in fields like robotics or step into managerial or executive roles.

Doctoral level

PhD in Computer Science programs are often built around independent study in one or more research areas. Students in doctoral-level comp sci programs don’t learn new coding skills or computational theory but rather how to apply the fundamentals of scientific inquiry to computing. The seeds of new technology often germinate in labs staffed by computer science PhDs, who are as likely to be experts in biocomputing as in advanced cryptography.

Subjects in computer science

The path from undergrad to PhD is often progressive. In computer science bachelor’s degree programs, students learn to code in the most common programming languages and the basics of computer architecture. These topics may be covered in MSCS programs for non-CS majors, but it’s more common for master’s programs to dive more deeply into specialty areas of computer science. Meanwhile, doctoral-level comp sci programs free students to explore their areas of interest more intensely.

Bachelor’s degree in computer science courses

Core courses in BSCS and BACS programs vary from school to school, but classes in most programs cover topics like:

  • Algorithms
  • Calculus
  • Computer architecture
  • Computer engineering
  • Data structures
  • Logic
  • Programming
  • Software development

After taking these foundational classes, students in most comp sci bachelor’s programs take electives related to their interests. Elective options in computer science BS and BA programs cover topics like:

  • AI and machine learning
  • Algorithmic functions
  • Compilers and compiler design
  • Computational theory
  • Cyber security
  • Data science
  • Distributed systems
  • Game design
  • Graphics
  • Human-computer interaction
  • Information theory
  • Operating systems
  • Project management

Master’s degree in computer science courses

Most students who go back to school to get a master’s in computer science have a tech background. While there are on-campus and online CS programs for non-CS majors, the top comp sci degree programs expect incoming students to arrive with foundational knowledge and skills so they can focus on advance comp sci concepts.

There are also programs, like the online MSCS program at Stevens Institute of Technology that bridge the difference. Core courses in this master’s program include:

  • Advanced Programming in the Unix Environment
  • Agile Methods for Software Development
  • Algorithms
  • Computer Organization & Programming
  • Data Structures
  • Database Management Systems
  • Distributed Systems & Cloud Computing
  • Human-Computer Interaction
  • Introduction to Java Programming
  • Introduction to Operating Systems
  • Mobile Systems & Applications
  • Web Programming

Computer science master’s programs are much more likely to be concentration-based than undergraduate programs. Graduate-level specializations include:

  • Computational biology
  • Computer systems
  • Cyber security
  • Foundations of computer science
  • Game development
  • Human-computer interaction
  • Machine learning
  • Natural language processing
  • Network systems
  • Robotics
  • Software theory
  • Visualization and graphics

Most MSCS programs include a practicum, internship, or culminating project or experience. The online MS in Computer Science curriculum at Tufts University, for example, includes a two-semester capstone project, during which students produce a substantial piece of software or engineering work.

Doctorate in computer science courses

Because computer science is such a broad discipline, it’s unusual for doctoral programs to have a fixed curriculum for their duration. Some colleges and universities have PhD course lists that are specific to each program of study offered. CS PhD candidates at Northwestern University take classes dictated by their chosen concentration (which many schools call a program of study or POS). At other schools, students design an independent program of study based on an area of interest. Still other institutions ask students to take a set number of courses in different computer science fields alongside classes related to a custom program of study.

Computer science fundamentals

Computer science degree program coursework can only tell us so much about what computer science is or isn’t. Looking at core classes in these programs can give us some insight into the fundamental elements of the field, which include:

  • Algorithms and data structures
  • Computational theory and the boundaries of computability
  • Computer architecture
  • Database development and management
  • Discrete mathematics and logic
  • Hardware engineering
  • Human-computer interaction
  • Interface design and UX design
  • Network stacks and routing protocols
  • Operating systems
  • Programming and programming languages
  • Security and secure development
  • Software engineering

Keep in mind that computer science is an evolving discipline. Once upon a time, AI played a theoretical role in comp sci. Now, it’s part of applied computer science and may belong on the above list of computer science fundamentals.

Computer science terms

To understand what computer science is, it’s helpful to understand terms like:

  • Bandwidth: How much information can be processed or transmitted.
  • Big Data: Shorthand for the massive amounts of digital information generated by humanity each day.
  • Binary: A computer or machine language made up of combinations of bits.
  • Bit: An abbreviation for ‘binary digit’ (1 or 0). This is the smallest amount of information computers can process.
  • Bus: Wires that connect components in hardware systems.
  • Code: Programs or snippets of programming that tell computers what to do.
  • Compiling: The process of translating source code from higher-level languages into lower-level language computers can understand.
  • CPU: Stands for Central Processing Unit, which can be thought of as the brains of a computer.
  • Debugging: The process of finding and removing errors from a program.
  • Hardware: The physical components of a computer, including the CPU, main memory, secondary storage, I/O devices, network, and bus.
  • Index: A list of data in a plain text format computers can scan to retrieve information.
  • Integrated Development Environment (IDE): Apps for programmers that contain a text editor, compiler, runtime environment, and debugger.
  • Programming paradigm: Classifications of programming languages based on style or methodology. Common paradigms include functional, procedural, imperative, and object-oriented.
  • RAM: Random-Access Memory, where computers store data while in operation.
  • ROM: Read Only Memory, where start-up processes and software instructions are stored.
  • Software: The instructions that tell hardware what to do.
    Syntax: Rules programming languages follow.

Computer science topics

The most concise answer to the question ‘What is computer science?’ is probably that computer science is the study of the theoretical foundations of computation. The CS field is much broader than the theory, however. Computer science professionals are familiar with a range of topics, including:

  • Algorithm design
  • Artificial intelligence
  • Computability
  • Computer design
  • Cyber security
  • Data analytics
  • Data structures
  • Information retrieval
  • Networks
  • Parallel and distributed computing
  • Programming
  • Programming language design
  • Programming methodologies

Experts in this field must also understand the overall impact existing and emerging digital technologies have—and could have—on people, organizations, and the world.

Computer science languages

There are hundreds of programming languages. The most common are:

  • C
  • C#
  • C++
  • Java
  • JavaScript
  • PHP
  • Python
  • Swift

Computer science principles

Entire books are devoted to computer science principles. The principles you will encounter most often when studying computer science or working in careers related to computer science are:

  • Abstraction
  • Creativity
  • Completeness
  • Complexity
  • Consistency
  • Efficiency
  • Evolution
  • Impact
  • Modeling
  • Order in space
  • Reuse
  • Security
  • Tradeoffs

What is abstraction in computer science?

Abstraction is one of the essential computer science principles. It is the process of filtering out (or otherwise ignoring) information and characteristics that aren’t necessary to solve a problem so you can focus on what is necessary in the initial phases of problem-solving. A programmer might use abstraction while modeling the solution to a problem but would not use abstraction when writing the code.

Computer science theory/theoretical computer science

Theoretical computer science refers to areas of the field that are mathematical, less practical, or still evolving. Computer science theory often explores the limits of computation and algorithms and the theoretical applications of technologies like cryptography.

Computer science algorithms

Algorithms are precise sequences of unambiguous computational instructions that computers can execute to solve specific problems. They’re the building blocks of computer programs. Every area of computer science, from AI to security, relies on the development and optimization of algorithms.

Variable computer science

Variables are named units of data that have an assigned value. Some variables are mutable, which means the value is changeable, but others have a set value that never changes. Variables come in many forms, which can be defined by the programmer doing the coding or a script. They play an essential role in computer science because they are a part of most programming languages.

Computer science fields

Each field in computer science can be drilled down into sub-fields that can also be further broken up into related fields that fall into one of two categories:

Theoretical computer science fields

  • Automata theory
  • Computational biology
  • Computational complexity
  • Computational geometry
  • Formal methods
  • Information science
  • Machine learning
  • Programming language theory
  • Quantum computation
  • Reactive systems
  • Software theory
  • Systems theory
  • Very-large-scale integration

Applied computer science fields

  • Artificial intelligence
  • Computer architecture
  • Computer engineering
  • Control system
  • Cyber security
  • Data communications
  • Databases and information retrieval
  • Distributed systems
  • Health informatics
  • Human-computer interaction
  • Information systems analysis
  • Mobile application development
  • Network architecture
  • Operating systems
  • Parallel and distributed systems
  • Performance analysis
  • Software engineering
  • Software systems
  • Visualization and graphics

Computer engineering vs. computer science

The difference between computer science and computer engineering isn’t as simple as some resources claim. The most common distinction—that computer science is focused on software while computer engineering is focused on hardware—doesn’t tell the whole story. According to computer scientist and researcher Peter Denning, the fundamental question in computer science is, “What can be automated?” Computer engineering, meanwhile, is more concerned with developing the technology necessary to empower automation.

Computer science vs. software engineering

Many computer science schools treat software engineering as a part of computer science, though there are people who draw a hard line between what they see as totally distinct disciplines. Software engineers, in their view, work on practical problems, designing and developing applications to meet user needs. In contrast, computer scientists are wholly concerned with theories of computing (even when their focus is on software).

Computer science vs. information technology

Information technology (IT) is again treated as a part of comp sci by some computer science programs, but it’s easier to draw a distinction between these two areas of computing. IT professionals help businesses and organizations meet specific needs with tech like computer systems, operating networks, and databases. Computer scientists, on the other hand, create technical solutions but aren’t responsible for implementing them.

Computer science vs. computer programming

One way to think about the distinction between computer programming and computer science is to consider how architecture and construction differ but are nonetheless closely related. Programming is part of computer science because, without instructions, computers can’t do anything. Some people are surprised that computer science degree programs don’t include more coding in the curriculum—especially at the master’s level. Most colleges and universities assume that comp sci students either already have specific programming skills or will learn them outside class.

Computer science vs. cybersecurity

Cybersecurity is its own field of study, but one that falls under the umbrella of computer science. Both fields are concerned with ensuring that computer systems are secure. The difference is that cybersecurity professionals typically tackle practical challenges related to safeguarding user data or preventing hacking, whereas computer scientists might study how to make computer networks and software safer but aren’t responsible for actually doing so.

Computer science vs. information systems

Information systems is a discipline focused on the practical applications of existing software and hardware in varied environments (e.g., healthcare or finance). When computer science looks at information systems, it’s often to improve processes or the available technology or develop entirely new consumer tech.

Who should study/go into computer science?

You need to have a head for analytical thinking and enjoy problem-solving to succeed in computer science because that’s all computer science is: turning challenges into solutions. If you don’t get a kick out of hammering away at a tough-to-crack nut, this might not be the field for you. Yes, computer science salaries are high (more on this below), but money won’t be enough to make you happy if you don’t like figuring things out.

Computer science career paths

People equate software development and computer science, but while many programmers study comp sci, not all computer science majors end up coding for a living. Many job titles fall under the computer science umbrella, and computer science professionals work in just about every industry. People who study computer science work in:

  • Artificial intelligence
  • Database design
  • E-commerce
  • Electrical engineering
  • Entertainment
  • Finance
  • Government
  • Healthcare
  • High schools
  • Higher education
  • Network engineering
  • Research
  • Robotics
  • Software engineering

One of the best things about this field is that you can find employment in just about any industry once you have a grasp of the fundamentals.

In-demand jobs

In some computer science areas, there are far more open positions than there are qualified professionals to fill them. These in-demand jobs tend to have high pay, competitive benefits, and high satisfaction ratings because when employers fill those roles, they want to keep the talent happy. These include:

  • AI architect/AI engineer
  • Business intelligence analyst
  • Cloud administrator
  • Cloud architect
  • Computer research scientist
  • Data scientist
  • DevOps engineer
  • Network security architect
  • Software engineer

Top employers

Surveys of students and recent grads tell us what we already know: newly minted computer science professionals dream of working at big tech firms. Universum polled tens of thousands of students to find out what they wanted in future employers. Computer science students’ ideal employers included:

  • Amazon
  • Apple
  • Facebook
  • Google
  • IBM
  • Intel
  • Microsoft
  • NASA
  • Netflix
  • Nintendo
  • Riot Games
  • SpaceX
  • Spotify
  • SONY
  • Tesla
  • The Walt Disney Company

Top cities for computer science jobs

Computer science is widely associated with Silicon Valley and its high-stakes start-up scene, but the cost of living and doing business in the Valley is driving many tech companies to move their operations elsewhere. The demand for top talent in the San Francisco Bay Area is still high, but also hugely competitive, and many computer science professionals find that the six-figure salaries associated with tech jobs go further in other parts of the US.

There are also many jobs in tech outside of Silicon Valley—even for programmers, engineers, database specialists, and network architects who feel most at home in start-ups. Some top cities for computer science jobs are:

  • Atlanta, GA
  • Austin, TX
  • Baltimore, MD
  • Boston, MA
  • Chicago, IL
  • Cleveland, OH
  • Columbus, OH
  • Detroit, MI
  • Indianapolis, IN
  • Kansas City, MO
  • Louisville, KY
  • Minneapolis-St. Paul, MN
  • Oklahoma City, OK
  • Pittsburgh, PA
  • Raleigh-Durham, NC
  • Salt Lake City, UT
  • Seattle, WA
  • St. Louis, MO
  • Washington, DC

Average salary

Average salaries in computer science don’t tell you much in this field because job title, location, education, and other factors all play a role in how much tech jobs pay. According to PayScale, average salaries in computer science are around $79,000 regardless of highest level of education. On the other hand, the same source reports that the median annual salary for CS bachelor’s degree holders is $85,000 and the median annual salary for MSCS graduates is about $102,000 (or twice the median household income in the US).

You’ll almost certainly need a master’s degree to qualify for the top-paying computer science jobs. Even if you don’t become a software engineering director (average salary: $149,000) or a senior solutions architect (average salary: $135,000), the return on investment of an MSCS can’t be denied. One Georgetown University survey of how degrees impact salaries found that computer scientists with master’s degrees earned $500,000 more over their careers.

Starting salary

Computer science jobs have some of the highest post-graduation salaries. Associate’s degree holders with less than a year of experience can earn $65,000 if they have specific practical skills. NACE’s Winter 2020 Salary Survey found that across industries, BSCS grads had the highest starting salaries. And plenty of entry-level roles in CS areas like computer systems analysis, software design, IT support, or database administration pay quite well and offer professionals plenty of room to grow.

Salary with 10+ years of experience

There’s nowhere to go but up in computer science, a field in which salaries tend to rise quickly. PayScale reports computer science professionals with 10 or more years of experience earn an average of about $104,000 before bonuses. Title changes can lead to even bigger increases. It’s not unusual for computer science professionals who are willing to switch companies to go from earning $60,000 after graduation to $100,000 just five years later.

That’s because comp sci grads enter a seller’s market. Computer science may not be a hard discipline to master, but it takes a level of hard work and determination that many people just don’t want to put into their careers. Companies are looking for people who understand the tech and are driven to master new languages, new theories, and new technologies as they evolve—and evolution, in computer science, is inevitable. The skills you learn today will only last so long.

Questions or feedback? Email

About the Editor

Tom Meltzer spent over 20 years writing and teaching for The Princeton Review, where he was lead author of the company's popular guide to colleges, before joining Noodle.

To learn more about our editorial standards, you can click here.


You May Also Like To Read

Categorized as: Computer ScienceInformation Technology & Engineering