ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
Level 4Level 3Level 2Level 1Description
2
2-3 TreeSearch StructureData Structure
A balanced search tree where each node can have two or three children, maintaining efficient search, insertion, and deletion operations.
3
Abstract Data TypeSoftware DesignSoftware Engineering
A conceptual model that defines object in terms of a set of operations (their inputs and outputs).
4
Adversary ArgumentLower Bound ProofProof
Techniques that use hypothetical adversaries to establish lower bounds on algorithm complexity, demonstrating the minimal resources required.
5
AggregationSoftware DesignSoftware Engineering
The process of creating a collection of records.
6
Algorithm
A formal description for a process taken by a computer program.
7
Algorithm AnalysisAlgorithm
A analytic process to determine the runtime cost of an algorithm.
8
AmbiguityParsingCompiler
Programming Languages
In parsing, the property that a given string can be interpreted in multiple ways under the associated grammar.
9
Amortized AnalysisLower Bound ProofProof
A technique in algorithm analysis used to average the running time of operations over a sequence of operations, providing a better understanding of the overall efficiency than analyzing individual operations in isolatio
10
Analyzing ProblemsAlgorithm AnalysisAlgorithm
Methods for assessing the complexity of different computational problems.
11
Analyzing ProgramsAlgorithm AnalysisAlgorithm
Techniques for examining the performance and behavior of computer programs.
12
ArrayLinear StructureData Structure
A contiguous collection of same-sized objects in memory.
13
ArrayAggregationSoftware DesignSoftware Engineering
A contiguous collection of same-sized objects in memory.
14
Array-Based ListListLinear StructureData Structure
Implementing a list using an array.
15
Array-Based QueueQueueLinear StructureData Structure
Implementing a queue using an array.
16
Array-Based StackStackLinear StructureData Structure
Implementing a stack using an array.
17
ArrayList ClassJavaProgrammingSoftware Engineering
An array-based list implementation in Java
18
AutomataFinite State MachineFormal LanguagesTheory of Computation
A generic term for a finite state machine.
19
Average CaseAlgorithm AnalysisAlgorithm
Scenario describing algorithm performance for the weighted average of all inputs for a given size.
20
AVL TreeSearch StructureData Structure
A self-balancing binary search tree.
21
B-TreeIndexingSearch StructureData Structure
A balanced tree data structure that maintains large sorted lists and allows for efficient insertion, deletion, and search operations. Widely used to store datbases on disk.
22
Backus-Naur FormCompilers
Programming Languages
A notation used to express context-free grammars, commonly used in the description of programming languages.
23
Balanced Binary TreeTreeData Structure
Binary tree that maintains balance to improve performance.
24
Best CaseAlgorithm AnalysisAlgorithm
Scenario describing algorithm performance for the best of all inputs for a given size.
25
Big OAlgorithm AnalysisAlgorithm
Notation used to describe an upper bound on performance of an algorithm.
26
Big OmegaAlgorithm AnalysisAlgorithm
Notation used to describe a lower bound on performance of an algorithm.
27
Big ThetaAlgorithm AnalysisAlgorithm
Notation used to describe performance of an algorithm, indicating that the upper and lower bounds are the same within a constant factor.
28
Binary Insertion SortSortingAlgorithm
A (largely theoretical) variant on insertion sort where the location for inserting the next object into the sorted portion of the list is found using binary search. This minimizes the number of comparisons required, but in practice does not improve the amount of swaps required.
29
Binary SearchSearchAlgorithm
A divide-and-conquer algorithm that finds the position of a target value within a sorted array.
30
Binary Search TreeSearch StructureData Structure
A binary tree where each node has a key greater than its left child and less than its right child.
31
Binary Search TreeBinary TreeTreeData Structure
A binary tree where each node has a key greater than its left child and less than its right child.
32
Binary Tree Node ImplementationBinary TreeSoftware DesignSoftware Engineering
Design techniques for the node of a binary tree.
33
Binary Tree Space AnalysisBinary TreeAlgorithm AnalysisAlgorithm
Evaluating the memory requirements for storing and processing binary trees.
34
Binary Tree TerminologyBinary TreeTreeData Structure
Terms and definitions related to binary trees.
35
Binary Tree TraversalBinary TreeTreeAlgorithm
Technique for visiting all nodes in a binary.
36
Binomial TreeTreeData Structure
A Binomial Tree of order 0 has 1 node. A Binomial Tree of order k can be constructed by taking two binomial trees of order k-1 and making one the leftmost child of the other.
37
BinsortBucket SortSortingAlgorithm
A type of bucket sort, where a bucket stores only one key value (though it might store multiple records with that key value).
38
BintreeSpatial Data StructureSearch StructureData Structure
A spatial data structure with the shape of a binary tree, that splits the key space in half, alternating through each dimension.
39
Bit VectorSearch StructureData Structure
A data structure that assigns each key to a position in an array that stroes a single bit to indicate if that key is in the represented set or not.
40
Boolean ExpressionMath Topic
A mathematical expression where boolean variables are combined using boolean operators.
41
Boolean Expression
Programming Language Construct
Programming Languages
A mathematical expression where boolean variables are combined using boolean operators.
42
Boolean Operator
Programming Language Construct
Programming Languages
A mathematical operator whose parameters are boolean variables.
43
Boyer-Moore String Match AlgorithmString MatchingAlgorithm
An algorithm for performing string matching.
44
Breadth-First SearchGraphAlgorithm
An organized process to visit all nodes in a graph by first visiting all nodes one step from the source, then two steps, and so on. If the graph were actually a tree, this would be visitng nodes level by level.
45
Bubble SortSortingAlgorithm
A simple, but inefficient, comparison-based sorting algorithm.
46
Bucket HashingHashingSearch StructureData Structure
A type of hashing where keys are hashed to a bucket that might store multiple records.
47
Bucket SortSortingAlgorithm
Distributes elements into buckets and sorts each bucket individually.
48
Buddy Method Memory ManagerMemory ManagementAlgorithm
A memory allocation algorithm that splits blocks of memory in half, with the two halves defined to be buddies.
49
Buffer PoolMemory ManagementData Structure
A data structure that caches frequently accessed data in memory to improve access times.
50
Chained Matrix Multplication Problem
Problem
A series of matricies are multiplied together. While the order in which adjacent matricies are multiplied will not change the final answer, it can greatly affect the cost if the matricies are of different sizes.
51
Circuit Satisfiability ProblemNP-completenessComplexity TheoryProblem
Determining the inputs to a Boolean circuit that result in a true output.
52
Circuit Satisfiability ProblemNP-completenessComplexity TheoryTheory of Computation
Determining the inputs to a Boolean circuit that result in a true output.
53
Class Hierarchy
Object-Oriented Programming
Programming Languages
A classification of object types with super-class/sub-class relationships.
54
Clique ProblemProblem
Identifying the largest clique within a graph.
55
Clique ProblemNP-completenessComplexity TheoryTheory of Computation
Identifying the largest clique within a graph.
56
Closure PropertyRelationsMath Topic
A property of a relation that ensure the relation is closed under certain operations.
57
Closure PropertyLanguage ClassificationFormal LanguagesTheory of Computation
Use of a closure property to help prove whether a given language is included or excluded as a member of a particular language classification.
58
Language ClassificationFormal LanguagesTheory of Computation
The process of determining the classification for a langauge, such as regular, context free, etc.
59
Code CoverageTestingProgrammingSoftware Engineering
A measure of the extent to which a program is executed during testing.
60
Code TuningSoftware DesignSoftware Engineering
The process of optimizing code to improve performance and efficiency, separate from improving the underlying algorithm.
61
Collision ResolutionHashingSearch StructureData Structure
Techniques used to handle collisions in hashing.
62
Command Line InterfaceProgrammingSoftware Engineering
A text-based interface for interacting with computer programs by entering commands
63
Command Line ParameterProgrammingSoftware Engineering
Arguments passed to a program at the command line, used to customize program behavior.
64
ComparatorSoftware DesignSoftware Engineering
A function that compares two objects (generally records in a collection for sorting or searching purposes).
65
Compiler
Programming Languages
A program that takes a program as input and converts it to another form for more efficient processing.
66
Complete Binary TreeBinary TreeData Structure
Binary trees where all levels except possibly the last are completely filled.
67
Composite DesignDesign PatternSoftware DesignSoftware Engineering
A structural design pattern that composes objects into tree structures to represent part-whole hierarchies, allowing clients to treat individual objects and compositions uniformly.
68
CompositionSoftware DesignSoftware Engineering
The combining of distinct parts or elements to form a whole.
69
Conditional Statement
Programming Language Construct
Programming Languages
A branch statement like an IF or CASE statement.
70
ContainerAbstract Data TypeSoftware DesignSoftware Engineering
An abstract data type that stores multiple elements, providing methods for accessing and modifying them.
71
Context-Free GrammarLanguage ClassificationFormal LanguagesTheory of Computation
A grammar for a language that is confext free.
72
Context-Free LanguageLanguage ClassificationFormal LanguagesTheory of Computation
A language generated by a context-free grammar.
73
DFA MinimizationFormal LanguagesAlgorithm
An algorithm to minimize the number of nodes in a DFA.
74
DFA MinimizationFormal LanguagesTheory of Computation
An algorithm to minimize the number of nodes in a DFA.
75
Data Structure
A data representation and its associated operations. Alternatively, the implementation for an ADT.
76
Data TypeSoftware DesignSoftware Engineering
A type together with a collection of operations to manipulate the type.
77
DebuggingSoftware DevelopmentSoftware Engineering
Techniques used to identify and correct errors in software.
78
Deductive ProofProof
The process of reasoning from general principles to derive specific instances.
79
DelegationDesign PatternSoftware DesignSoftware Engineering
One object (the delegating object) passes responsibility for a task to another object (the delegate).
80
Depth-First SearchGraphAlgorithm
A graph traversal algorithm. Whenever vertex v is visited during a traversal, DFS will recursively visit all of v's unvisted neighbors. In a tree, this results in a preorder traversal.
81
Depth-First SearchTreeAlgorithm
A graph traversal algorithm. Whenever vertex v is visited during a traversal, DFS will recursively visit all of v's unvisted neighbors. In a tree, this results in a preorder traversal.
82
Design PatternSoftware DesignSoftware Engineering
Reusable solutions to common design problems in software development.
83
Deterministic Finite AutomataFinite State MachineTheory of Computation
A theoretical machine used to recognize regular languages by accepting or rejecting strings. A pair of states has at most a single transition between them for a given symbol.
84
Deterministic Pushdown AutomatonPushdown AutomatonFinite State MachineTheory of Computation
A theoretical machine used to recognize context-free languages by accepting or rejecting strings. A pair of states has at most a single transition between them for a given symbol.
85
DictionaryAbstract Data TypeSoftware DesignSoftware Engineering
An abstract data type representing a collection of key-value pairs.
86
Dirty BitBuffer PoolMemory ManagementData Structure
Within a buffer pool, a piece of information associated with each buffer that indicates whether the contents of the buffer have changed since being read in from backing storage.
87
Disjoint SetSetMath Topic
A collection of sets that are mutually exclusive, supporting efficient union and find operations.
88
Disk DriveComputer Architecture
A device for storing and retrieving digital data using magnetic storage or other media.
89
Doubly Linked ListListLinear StructureData Structure
A linked list where each node has pointers to both the previous and next nodes.
90
Dynamic Storage AllocationMemory ManagementAlgorithm
Allocates memory from a pool as needed
91
Eclipse IDESoftware DevelopmentSoftware Engineering
The Eclipse integrated programming environment.
92
Edit Distance ProblemProblem
A measure of the similarity between two strings, calculated by counting the minimum number of operations required to transform one string into another.
93
Empirical ComparisonSoftware DevelopmentSoftware Engineering
An approach to comparing to things by actually seeing how they perform. Most typically, we are referring to the comparison of two programs by running each on a suite of test data and measuring the actual running times. Empirical comparison is subject to many possible complications, including unfair selection of test data, and inaccuracies in the time measurements due to variations in the computing environment between various executions of the programs.
94
Equivalence ClassRelationsMath Topic
A distint subset that results from partitioning a set based on an equivalence relation.
95
Exchange SortSortingAlgorithm
Any sorting algorithm that can only reorder the list by swapping adjacent records.
96
ExponentiationNumerical AlgorithmAlgorithm
The operation of computing a value to a given power.
97
ExponentiationMathematical ProblemProblem
The operation of computing a value to a given power.
98
Expression TreeTreeData Structure
A tree structure meant to represent a mathematical expression. Internal nodes of the expression tree are operators in the expression, with the subtrees being the sub-expressions that are its operand. All leaf nodes are operands.
99
External SortingFile ProcessingSortingAlgorithm
Sorting methods that involve data stored outside of main memory, such as on disk.
100
Fast Fourier TransformNumerical AlgorithmAlgorithm
An O(n log n) algorithm to compute the discrete Fourier transform, used for example to speed up polynomial multiplication.