15 Computer Science Fields

By Indeed Editorial Team

Published June 22, 2021

If you enjoy working with technology or finding practical applications for complex math, you may be interested in studying computer science. As a field of study, computer science encompasses many disciplines, from studying hardware to theories of artificial intelligence and computational limitations. To figure out what type of computer science you want to study, you can learn more about the different disciplines within the field. In this article, we discuss what computer science is as well as 15 specific disciplines.

Related: Computer Science vs. Computer Engineering: What's the Difference?

What is computer science?

Computer science is the study of computers, including their hardware and software. It is a broad field that encompasses all aspects of computing, including figuring out new ways to solve problems using computers and improving how computers work. Computers use data structures and algorithms to do complex computing. The study of computer science advances those capabilities while improving upon and inventing new computing machinery that can improve lives.

Theoretical vs. practical computer science

Theoretical computer science is a discipline within computer science that focuses on mathematics. While other disciplines focus on the practical application of computer science for the creation of better computers or software, theoretical computer science focuses on more abstract ideas like perfecting algorithms or studying the properties of codes and their benefits for specific applications. Both are necessary for the advancement of computer science as a field because to have progress in practical computer science, the field relies on the development of possibilities of computational ability through theoretical computer science.

Related: The 10 Best Schools With Computer Science Programs

Fields of study in computer science

Here are 15 computer science disciplines you can explore:

1. Artificial intelligence

Artificial intelligence, or AI, is the study and design of systems that can function autonomously from human input. Examples of AI are programs that offer music recommendations based on your previous listening habits or programs that can play complex games like chess against a human competitor. Some AI studies focus on creating machines that can perform human tasks like visual perception or speech recognition. Machine learning is a subset of AI that focuses specifically on the possibility of creating a machine that can use algorithms and programming to mirror the processes of the human mind.

Related: Your Guide To Getting a Job in Computer Science

2. Programming languages and logic

Programming languages are an integral part of computer science because most other disciplines use programming languages to function. To use a computer, the programmer translates commands into a specific programming language the computer can read. The study of programming languages and logic focuses on designing these languages as well as analyzing them and characterizing and classifying their individual features. Practical application of this study includes optimizing these languages so they can write complex programs using the smallest amount of code that the computer can understand.

Related: Job Outlook for Careers in Computer Science

3. Scientific computing applications

Scientific computing applications is a study of computer science that uses computer algorithms and modeling capabilities to predict the outcome of scientific experiments that scientists can't conduct physically. Some situations where scientific experiments need to be conducted through models are:

  • Big in scale: Some scientific experiments or research are simply too big to conduct an experiment accurately outside of a digital model, such as predicting the progress of climate change and its effects.

  • Dangerous: Some materials or chemical reactions may be too dangerous or unethical to conduct in-person, like experimenting with toxic or radioactive chemicals.

  • Expensive: Some experiments or research are too expensive or time-consuming. Using scientific computing can help to speed up these processes for a fraction of the cost, such as repeatedly crash testing aircraft for safety optimization.

Scientific computing is multidisciplinary because it includes people who are experts in the field that require the model, as well as the computer scientist to build the algorithms.

Related: Is a Computer Science Degree for You? Top Majors and Jobs

4. Theory of computation

Theory of computation is a discipline that focuses on determining what problems computational algorithms solve and if can they solve them completely or partially. The ultimate purpose of this subject is to determine what the fundamental capabilities and limitations of computers are. There are three major branches of this subject:

  • Automata theory and formal languages: Automata theory is the study of abstract machines called automata, which computer scientists use to describe and analyze the behavior of computer systems.

  • Computability theory: Computability theory, or recursion theory, is the study of what decision problems a computer program can and cannot solve. A decision problem is a yes or no question that can have an infinite number of factors. For example, if a computer can determine whether numbers in a set are even or odd, no matter what the numbers are, that would be a decision problem the computer can solve.

  • Computational complexity: Computational complexity focuses on how much time and memory different algorithms require. The more resources the algorithm requires, the more complex it is.

5. Data structures and algorithms

This discipline focuses on the way data structures and algorithms can interact and how computer scientists can improve them to create better computer programs. A data structure is a location where you can organize and store data. An algorithm is a set of tasks you can command from a computer. You can use an algorithm to retrieve and perform computations on the data, which creates a computer program. The focus of this discipline is to study the overlap of these two functions and optimize them.

Related: 20 Highest Paying Computer Science Jobs

6. Computer architecture and organization

This discipline focuses on the study, design, implementation and operation of a computer system. Architecture focuses on how the design of hardware like computers, storage devices and network connection components store programs, transmit data and facilitate connections with other devices. Organization is how those components connect and how to optimize those connections.

Related: 11 Tips for Computer Science Graduates Starting Their Careers

7. Computer networks

The study of computer networks focuses on the analysis, design and implementation of networks that link computers together. For example, the internet is a type of network that links computers together. Computer scientists study how to develop these links using different connections, like light signals or radio waves. They also work to develop protocols that establish limitations and protections for these networks.

8. Computer security in cryptography

This discipline of computer science focuses on how to protect information stored on computers. This can include creating hardware that is more difficult to tamper with but mostly includes creating software that is invulnerable to theft, destruction, fraud or access by an unauthorized user. Cryptography is a part of computer security developed to protect data. It is the practice of using algorithms to encrypt information by translating it from its natural state into a hard-to-decipher pattern using a set of rule-based computations, as well as using algorithms to decrypt data.

9. Databases and data mining

The study of databases and data mining focuses on how computer scientists organize and store data. Big data is a term for large sets of data that are collected from a specific source. An example of big data would be the location data, browsing habits and app usage that cell phones collect to aid their users. Data mining is combing through that data to identify patterns. One important emphasis of this discipline is to create database structures that allow for the efficient organization and recall of data from a big data set, as well as facilitating easy and quick data mining.

10. Computer graphics and visualization

This discipline of computer science focuses on the display of computer systems and the control of images on the computer screen. This includes studying and improving the hardware capabilities of a computer. It also handles:

  • Rendering: Generating a realistic image from a two-dimensional model using a computer program.

  • Modeling: Generating probable outcomes based on a set of criteria.

  • Animation: Creating the effect of movement through a sequence of still images on a display screen.

  • Visualization: Interpreting data into a graphic form and interacting with the data to manipulate the graphic.

11. Image and sound processing

Image and sound processing focuses on studying the forms that information can take and how to interpret and process that information. Image processing is when you use a digital computer to interpret an image as a set of data that you can manipulate. Manipulating the set of data can create more exact changes to the image than altering it manually. A digital computer can manipulate sound and other forms of information with the same process. Studying how to translate images and sound into data sets accurately and then manipulating those sets is the primary purpose of this discipline.

12. Concurrent, parallel and distributed computing

This discipline is the study of computers and networks that have multiple computations happening at once. The central question of this topic is how to design machines or strategies that can improve the speed and correctness with which these simultaneous tasks occur. Concurrent computing is when multiple computations happen once. Computer scientists can improve concurrent computing is through a distributed system, which is when multiple computers connect to a network and process individual computations at one time.

13. Human-computer interaction

This topic within computer science focuses on how users interact with computers and the user interface that facilitates this interaction. The central aim of this discipline is to construct hardware and software that makes using the computer easy and manageable for its user, without insisting on their knowing computer science. This discipline incorporates user psychology, anthropology and engineering because it focuses on interpreting users' instincts and expectations. Then, computer scientists construct hardware and software that meets those expectations.

14. Software engineering

Software engineering focuses on using engineering approaches to the theory and practice of building software systems. The cost and time involved in developing complex software includes teams of computer scientists. The process of software engineering consists of:

  • Development of requirements

  • Analysis of possibilities

  • Design

  • Construction

  • Validation or checking to make sure it meets requirements

  • Deployment of the software

  • Operation

  • Maintenance

15. Information and coding theory

Information theory studies the transmission and processing of information. Coding theory studies how to translate information into codes that can transmit information, as well as how to reduce the error rate when transmitting data and how fast a computer can process a digital signal. In this discipline, computer scientists use codes to determine the limits of how much they can compress, store or transmit data.

Explore more articles