Entry Overview
A practical glossary of important Computer Science terms, with concise definitions and plain-language explanations that make the field easier to read, study, and discuss.
Computer science can feel opaque because people use its vocabulary loosely. A “program” might mean a simple script, a large software product, or even a television schedule in ordinary speech. “Memory” can refer to a hardware resource, not human recollection. “Algorithm” has become a cultural catchall for everything from recommendation systems to office procedure. A clear glossary helps because the field is built on distinctions. When those distinctions blur, people end up talking past the subject rather than understanding it.
This guide defines foundational computer science terms in plain language without flattening them into slogans. It also connects those terms to the larger field, including what computer science is, its core concepts, its historical development, algorithms, programming, and the methods used to study the field. The goal is not to turn every reader into a specialist overnight. It is to make the language of the field readable enough that further study stops sounding like code itself.
Core ideas that shape the whole field
Algorithm
An algorithm is a finite, ordered procedure for solving a problem or producing a result. It is not limited to software, but computer science cares about algorithms because computers follow explicit procedures exceptionally well. Sorting, searching, pathfinding, ranking, compression, and cryptography all depend on algorithms.
Data structure
A data structure is a way of organizing data so operations on it become efficient or manageable. Arrays, linked lists, trees, hash tables, and graphs are classic examples. The same information arranged differently can radically change performance.
Abstraction
Abstraction means hiding lower-level detail so a person or program can work with a simpler conceptual layer. A programmer may call a function without thinking about transistor states. An operating system lets applications use files and memory without managing every electrical event directly. Abstraction is one of the main reasons modern computing scales.
Model
A model is a simplified representation of a system, problem, or process. In computer science, models help researchers reason about computation, communication, performance, and correctness. Some models are mathematical, while others are software prototypes or simulations.
Terms about code and software creation
Program
A program is a set of instructions written so a computer can perform a task. The instructions may be small and focused or part of a very large software system. Program is the broad term; software often refers to the larger packaged product or collection of programs, data, and supporting resources.
Programming language
A programming language is a formal language designed for expressing computations. Languages differ in syntax, type systems, runtime models, and intended use. Some are close to hardware, while others emphasize safety, productivity, mathematical clarity, or specific application domains.
Compiler and interpreter
A compiler translates source code into another form, often machine code or bytecode, before execution. An interpreter generally executes instructions more directly during runtime. In practice the boundary can blur because many modern systems combine compilation, interpretation, and just-in-time optimization.
Library, framework, and API
A library is reusable code that programs can call. A framework is a broader structure that helps organize how an application is built. An API, or application programming interface, is the defined way one piece of software exposes operations or data to another. APIs are crucial because modern software is deeply interconnected.
Bug and debugging
A bug is a defect in software or system behavior. Debugging is the process of finding, understanding, and fixing that defect. Bugs may involve logic, memory, concurrency, performance, security, or mismatched assumptions between components.
Version control
Version control is a system for tracking changes to code and related files over time. It allows teams to collaborate, compare revisions, branch experiments, and recover earlier states. In modern software practice, version control is basic infrastructure rather than an optional convenience.
Terms about how computers actually run work
Hardware and software
Hardware refers to the physical components of a computing system: processors, memory chips, drives, network cards, sensors, and so on. Software refers to the instructions and supporting data that tell hardware what to do. Computer science studies both separately and together.
CPU and GPU
The CPU, or central processing unit, is the general-purpose processor that handles a wide range of tasks. A GPU, or graphics processing unit, was originally optimized for graphics but now also powers highly parallel workloads such as scientific simulation and machine learning. The difference is not simply speed. It is architecture and workload fit.
Memory, storage, and cache
Memory usually means fast working memory such as RAM, where active data and instructions are held temporarily. Storage refers to longer-term retention on devices such as SSDs. Cache is even faster memory closer to the processor, used to reduce access delay for frequently needed data. These layers matter because computing performance depends heavily on movement, not just calculation.
Process and thread
A process is an executing instance of a program with its own resources and memory space. A thread is a smaller execution path within a process. Multi-threading allows concurrent work, but it also creates coordination hazards such as race conditions and deadlocks.
Operating system
An operating system manages hardware resources and provides core services for applications. It schedules CPU time, manages memory, controls input and output, handles files, and mediates access to devices. Without an operating system, most software would need to manage hardware directly.
Terms about data, communication, and scale
Database
A database is an organized system for storing, retrieving, and managing data. Relational databases use tables and structured queries, while other systems may store documents, key-value pairs, graphs, or streams. Database design matters because poor organization can make useful data slow, inconsistent, or unreliable.
Network and protocol
A network connects devices so they can exchange data. A protocol is the agreed set of rules that governs how that exchange works. Protocols matter because communication requires format, timing, addressing, and error handling, not just physical connection.
Latency and throughput
Latency is the delay before a result begins or arrives. Throughput is the amount of work completed per unit of time. A system can have low latency but limited throughput, or excellent throughput but poor responsiveness. Good engineering depends on knowing which matters more for a given workload.
Scalability
Scalability describes how well a system continues to perform as users, data, or tasks increase. Some systems slow down gracefully. Others break at predictable bottlenecks. Scalability is a design question, not a magical property gained by buying more machines.
Distributed system
A distributed system is a set of computers that coordinate to appear as one service or to solve a shared problem. Distributed systems power cloud computing, large web platforms, and many scientific workflows. They are powerful because they spread load, but they are difficult because time, failure, and communication delay become central design issues.
Terms about correctness, security, and trust
Complexity
Complexity often refers to how resource usage grows with input size, especially time and memory. Big-O notation gives a high-level way to describe that growth. Complexity theory also studies which classes of problems are tractable, intractable, or efficiently verifiable.
Concurrency
Concurrency means multiple tasks are in progress during overlapping periods. It is not exactly the same as parallelism, where tasks literally run at the same moment on different hardware resources. Concurrency is often about coordination; parallelism is often about simultaneous execution.
Encryption, hashing, and authentication
Encryption transforms data so only authorized parties can read it. Hashing maps data to a fixed-size output useful for integrity checking, indexing, and password verification schemes. Authentication verifies identity or legitimacy. These ideas are related but not interchangeable, and confusion between them leads to weak security reasoning.
Formal verification
Formal verification uses mathematical methods to prove that hardware or software satisfies a specification. It does not replace testing, but it can provide stronger guarantees for systems where failure is especially costly.
Deterministic and probabilistic
A deterministic process gives the same output for the same input and state. A probabilistic process incorporates randomness or uncertainty. Computer science studies both because randomized algorithms, distributed systems, machine learning, and security protocols often depend on carefully managed uncertainty.
Terms about contemporary computing
Virtualization and containerization
Virtualization allows one physical machine to behave like several isolated machines. Containers package software with many of its dependencies while sharing the host operating system more directly. Both are essential to modern deployment, cloud infrastructure, and reproducible environments.
Machine learning
Machine learning refers to methods that improve performance on a task by learning patterns from data rather than relying only on manually written rules. It is a major part of contemporary computer science, but it is not the whole field. Systems, theory, security, networking, graphics, databases, and programming languages remain core domains.
Technical debt
Technical debt is the long-term cost created by design shortcuts that made immediate delivery easier. The metaphor is useful because debt is not always bad in the short term, but unmanaged debt accumulates interest through fragility, slower changes, and harder debugging.
Open source
Open source software makes source code available under licenses that permit inspection, modification, and redistribution under defined terms. It has shaped modern computing profoundly, from operating systems and programming languages to databases, web servers, and machine learning tools.
Why these terms matter
Computer science becomes much easier to follow once its language is made precise. These terms are not decorative jargon. They mark real distinctions in how computation is designed, measured, trusted, scaled, and explained. A reader who understands algorithm, abstraction, memory, concurrency, protocol, complexity, and verification is already far better equipped to read technical writing, news coverage, and policy debates without confusion.
That clarity also makes the rest of the subject more accessible. The field becomes less mysterious when its words stop sliding into one another. A good glossary does not replace deeper study, but it removes unnecessary friction. That is often the first real step toward understanding.
A few more terms that readers meet constantly
Recursion
Recursion is a problem-solving technique in which a function or definition refers to itself, usually on smaller instances of the same problem. It is elegant and powerful, especially for trees, divide-and-conquer algorithms, and inductive reasoning, but it must be designed with a clear stopping condition.
State
State is the stored information that affects how a system behaves at a given moment. Programs, protocols, and interfaces may be stateful or largely stateless. State matters because remembering prior events can enable richer behavior while also complicating debugging, security, and scaling.
Fault tolerance
Fault tolerance is the ability of a system to continue operating acceptably even when components fail. This concept is central in distributed systems, storage, networking, and safety-critical software because real systems do not get the luxury of perfect hardware and ideal conditions.
Once terms like these are clear, technical discussions become much less intimidating. Readers can tell whether a debate is about performance, architecture, correctness, security, or design tradeoffs rather than treating every unfamiliar phrase as generic tech talk.
Search Intent Paths
These intent paths are built to capture the exact queries readers commonly ask after landing on a topic: definition, comparison, biography, history, and timeline routes.
What is…
Definition-first route for readers asking what this subject is and how it fits into the larger field.
History of…
Historical route for readers looking for development, background, and turning points.
Timeline of…
Chronology route that organizes the topic into milestones and sequence.
Who was…
Biography-first route for readers asking who this person was and why the figure matters.
Explore This Topic Further
This panel is designed to catch the search behaviors that usually follow a first encyclopedia visit: what is it, how is it different, who was involved, and how did it develop over time.
Computer Science
Browse connected entries, definitions, comparisons, and timelines around Computer Science.
“History Of…” and “Timeline Of…” Routes
Timeline entries that place the topic in chronological sequence and field development.
Timeline: Computer Science Timeline: Major Eras, Breakthroughs, and Turning Points
Historical milestones and field development for this topic.
“Who Was…” Routes
Biographical pages that connect people, influence, and historical context back into the topic graph.
Who was: Who Was Ada Lovelace? Life, Work, and Lasting Influence
Biographical route for notable figures connected to this topic or field.
Who was: Who Was Alan Turing? Life, Work, and Lasting Influence
Biographical route for notable figures connected to this topic or field.
Who was: Who Was Donald Knuth? Life, Work, and Lasting Influence
Biographical route for notable figures connected to this topic or field.
Who was: Who Was Grace Hopper? Life, Work, and Lasting Influence
Biographical route for notable figures connected to this topic or field.
Related Routes
Use these routes to move through the main subject structure surrounding this entry.
Subject Guide: Computer Science
Central route for this branch of the encyclopedia.
Field Guide: Computer Science
Central route for this branch of the encyclopedia.
Leave a Reply