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

Source code on a computer screen.

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."

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).

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.

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.

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.

Undergraduate

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 the artificial intelligence MSCS specialization offered by SMU Lyle Online. In our A.I. specialization, students take (in addition to a handful of core computer science classes), two artificial intelligence core courses, one of which covers "Machine Learning in Python."

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 advanced comp sci concepts.

SMU Lyle's online MSCS-AI program includes courses like:

  • File Organization & Database Management
  • Algorithm Engineering
  • Operating Systems & Systems Software
  • Computer Architecture

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. 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 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 of 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

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 ROI of an MSCS can't be denied. In some cases, computer engineers with master's degrees can earn up to $300,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. As reported by the Dallas Business Journal, data from the Department of Higher Education found "the highest-earning bachelor’s degree among North Texas universities was SMU’s Computer Science degree, which brought in a median of $72,100 in graduates’ first year." Regardless of where you live or where you earn your degree, 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.

This article was originally published on Noodle.com.