Computer Science Subfields Glossary: Key Terms and Definitions

Computer science encompasses dozens of distinct subfields, each with its own vocabulary, foundational concepts, and professional boundaries. This glossary defines the key terms that organize the discipline — from foundational theory to applied engineering — drawing on classification frameworks used by the Association for Computing Machinery (ACM), the IEEE Computer Society, and the National Institute of Standards and Technology (NIST). Understanding these terms helps practitioners, students, and hiring organizations navigate the discipline's architecture with precision.

Definition and scope

A subfield in computer science is a bounded area of inquiry and practice defined by a shared set of problems, methods, and formal tools. The ACM's Computing Classification System (CCS), maintained at dl.acm.org, organizes the discipline into 11 top-level categories — including hardware, software and its engineering, computer systems organization, networks, security and privacy, and applied computing — providing the most widely adopted taxonomy for academic publishing and research classification. The IEEE Computer Society maintains a parallel taxonomy used across over 200 peer-reviewed transactions and journals. These classification systems establish the formal vocabulary that governs grant applications, academic appointments, and conference organization across the United States.

Subfield boundaries are not always crisp. Key dimensions and scopes of computer science describes how the discipline maps onto overlapping axes — theoretical versus applied, systems versus algorithms, human-facing versus machine-facing — which is why the same term can appear in multiple classification contexts.


Core glossary terms are organized below by cluster.

Theoretical foundations

Algorithm — A finite, deterministic sequence of instructions that solves a class of computational problems. Algorithms are analyzed for time complexity (how runtime scales with input size) and space complexity (memory usage). The formal study of algorithms is covered at Algorithms and Data Structures.

Computational Complexity — The classification of problems by the resources required to solve them. The P vs. NP question, which asks whether every problem whose solution can be verified in polynomial time can also be solved in polynomial time, remains one of the seven Millennium Prize Problems identified by the Clay Mathematics Institute with a $1,000,000 prize for resolution (Clay Mathematics Institute). See Computational Complexity Theory.

Formal Language — A set of strings defined by a grammar or automaton. Formal languages underpin compiler design, protocol specification, and type systems. Coverage continues at Theory of Computation.

Discrete Mathematics — The mathematical substrate of computer science, encompassing graph theory, combinatorics, logic, and set theory. ACM curriculum guidelines specify discrete mathematics as a required component in accredited undergraduate programs. See Discrete Mathematics for Computer Science.

Programming languages and software engineering

Programming Paradigm — A fundamental style of programming that structures how computation is expressed. The three dominant paradigms are:

  1. Imperative — Programs specify how to compute using statements that change state (e.g., C, Pascal).
  2. Object-Oriented — Computation is organized around objects that encapsulate state and behavior (e.g., Java, Python). See Object-Oriented Programming.
  3. Functional — Programs are expressed as the evaluation of mathematical functions, avoiding mutable state (e.g., Haskell, Erlang). See Functional Programming.

Compiler — A program that translates source code in one language to a target language, typically machine code or bytecode. An interpreter executes source code directly without a full prior translation step. The distinction between compiled and interpreted execution affects runtime performance and deployment constraints. See Compiler Design and Interpreters.

Software Engineering — The application of systematic, disciplined, quantifiable methods to the development, operation, and maintenance of software, as defined by IEEE Standard 610.12. See Software Engineering Principles.

Systems and infrastructure

Operating System — System software that manages hardware resources and provides services to application programs. Core responsibilities include process scheduling, memory management, file systems, and device I/O. See Operating Systems Fundamentals.

Computer Architecture — The design of a computer's instruction set, processor components, memory hierarchy, and interconnects. The Von Neumann architecture — separating processor, memory, and I/O — remains the structural basis of most general-purpose processors. See Computer Architecture and Organization.

Distributed System — A system in which components located on networked computers communicate and coordinate to achieve a common goal. CAP Theorem, formalized by Eric Brewer in 2000, states that a distributed data store cannot simultaneously guarantee consistency, availability, and partition tolerance. See Distributed Systems.

Embedded System — A computing system with a dedicated function within a larger mechanical or electrical system, constrained by real-time performance, power, and memory requirements. See Embedded Systems.

Artificial intelligence and data

Machine Learning — A subfield in which systems improve performance on tasks through experience, without being explicitly programmed for each case. Supervised, unsupervised, and reinforcement learning represent the three primary training paradigms. See Machine Learning Fundamentals.

Natural Language Processing (NLP) — The subfield concerned with enabling computers to process, understand, and generate human language. NLP draws on linguistics, probability theory, and neural architectures. See Natural Language Processing.

Computer Vision — The field enabling machines to interpret and make decisions based on visual data. Applications include image classification, object detection, and medical imaging analysis. See Computer Vision.

Security and privacy

Cryptography — The mathematical study of techniques for securing information against adversarial access. NIST maintains federal cryptographic standards through its Cryptographic Standards and Guidelines program at csrc.nist.gov. See Cryptography in Computer Science.

Cybersecurity — The practice of protecting systems, networks, and programs from digital attacks. NIST's Cybersecurity Framework, published at nist.gov/cyberframework, organizes security practice into 5 core functions: Identify, Protect, Detect, Respond, and Recover. See Cybersecurity Fundamentals.

How it works

Terminology in computer science functions hierarchically. Broad categories (e.g., "artificial intelligence") contain subfields (e.g., machine learning), which contain further specializations (e.g., deep learning, reinforcement learning). This nesting follows the ACM CCS structure, where each node in the hierarchy carries a unique identifier. When a practitioner claims expertise in "deep learning," that maps to ACM CCS node 10010147.10010257 — a specificity that matters in academic publishing, grant classification, and job description accuracy. See Deep Learning and Neural Networks for that specialization's mechanics.

The IEEE and ACM jointly publish the Computer Science Curricula guidelines, most recently updated as CS2023, which define the knowledge units required across these subfields for accredited degree programs. These guidelines are publicly available through the ACM at dl.acm.org.

Common scenarios

Scenario 1 — Curriculum alignment: A university department aligning a new undergraduate track to ACM CS2023 guidelines must map each course to at least one of the 18 knowledge areas defined in that document, including Algorithms and Complexity, Architecture and Organization, and Artificial Intelligence.

Scenario 2 — Job classification: An employer classifying a software role under the Bureau of Labor Statistics SOC code system must distinguish between SOC 15-1252 (Software Developers) and SOC 15-1243 (Database Administrators), a distinction that follows the functional subfield boundaries described in this glossary.

Scenario 3 — Research grant submission: A National Science Foundation (NSF) Division of Computing and Communication Foundations (CCF) grant application requires applicants to select a primary program area — Algorithmic Foundations, Foundations of Emerging Technologies, or Communications and Information Foundations — each of which maps to specific subfield vocabulary.

The broader landscape of computer science roles enabled by these subfields is documented at Computer Science Career Paths.

Decision boundaries

Three distinctions appear frequently as sources of classification error:

Computer Science vs. Computer Engineering — Computer science focuses on algorithms, software, and computation theory. Computer engineering addresses the hardware-software interface: processor design, digital logic, and embedded firmware. The boundary follows the ACM-IEEE distinction between software-centric and hardware-centric training.

Data Science vs. Computer Science — Data science draws statistical inference and domain expertise into computational workflows. Computer science provides the algorithmic and systems foundations; data science applies them to empirical datasets. The relationship is covered at Data Science and Computer Science.

Artificial Intelligence vs. Machine Learning — Artificial intelligence is the broader subfield encompassing any technique that enables machines to exhibit goal-directed behavior. Machine learning is one mechanism for achieving AI, specifically through data-driven model training. The parent field is described at Artificial Intelligence Overview. Not every AI system uses machine learning — rule-based expert systems, constraint solvers, and search algorithms represent non-ML AI approaches.

The home page of this reference network provides the full structural map of computer science as a discipline, linking each subfield glossary term to its dedicated reference content.

References