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:
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.
Computer science is more than just the study of computers and computer technology. Nearly everything?utm_source=noodle_article_prospect&utm_medium=affiliate_cpl&utm_term=anonymous&utm_content=what-is-computer-science-bscs-mscs-phdcs&utm_campaign=Computer%2520Science?utm_source=noodle_article_prospect&utm_medium=affiliate_cpl&utm_term=anonymous&utm_content=what-is-computer-science-bscs-mscs-phdcs&utm_campaign=Computer%2520Science humans do in the developed world is in some way powered by computer science. a few examples:
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.
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'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.
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.
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.
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.
Core courses in BSCS and BACS programs vary from school to school, but classes in most programs cover topics like:
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:
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:
Computer science master's programs are much more likely to be concentration-based than undergraduate programs. Graduate-level specializations include:
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.
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 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:
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.
To understand what computer science is, it's helpful to understand terms like:
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:
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.
There are hundreds of programming languages. The most common are:
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 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.
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.
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.
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.
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:
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.
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).
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.
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.
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.
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.
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.
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:
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 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:
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:
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:
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.
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.
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.