| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Level 4 | Level 3 | Level 2 | Level 1 | Description | |||||||||||||||||||||
2 | 2-3 Tree | Search Structure | Data Structure | A balanced search tree where each node can have two or three children, maintaining efficient search, insertion, and deletion operations. | ||||||||||||||||||||||
3 | Abstract Data Type | Software Design | Software Engineering | A conceptual model that defines object in terms of a set of operations (their inputs and outputs). | ||||||||||||||||||||||
4 | Adversary Argument | Lower Bound Proof | Proof | Techniques that use hypothetical adversaries to establish lower bounds on algorithm complexity, demonstrating the minimal resources required. | ||||||||||||||||||||||
5 | Aggregation | Software Design | Software Engineering | The process of creating a collection of records. | ||||||||||||||||||||||
6 | Algorithm | A formal description for a process taken by a computer program. | ||||||||||||||||||||||||
7 | Algorithm Analysis | Algorithm | A analytic process to determine the runtime cost of an algorithm. | |||||||||||||||||||||||
8 | Ambiguity | Parsing | Compiler | Programming Languages | In parsing, the property that a given string can be interpreted in multiple ways under the associated grammar. | |||||||||||||||||||||
9 | Amortized Analysis | Lower Bound Proof | Proof | 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 Problems | Algorithm Analysis | Algorithm | Methods for assessing the complexity of different computational problems. | ||||||||||||||||||||||
11 | Analyzing Programs | Algorithm Analysis | Algorithm | Techniques for examining the performance and behavior of computer programs. | ||||||||||||||||||||||
12 | Array | Linear Structure | Data Structure | A contiguous collection of same-sized objects in memory. | ||||||||||||||||||||||
13 | Array | Aggregation | Software Design | Software Engineering | A contiguous collection of same-sized objects in memory. | |||||||||||||||||||||
14 | Array-Based List | List | Linear Structure | Data Structure | Implementing a list using an array. | |||||||||||||||||||||
15 | Array-Based Queue | Queue | Linear Structure | Data Structure | Implementing a queue using an array. | |||||||||||||||||||||
16 | Array-Based Stack | Stack | Linear Structure | Data Structure | Implementing a stack using an array. | |||||||||||||||||||||
17 | ArrayList Class | Java | Programming | Software Engineering | An array-based list implementation in Java | |||||||||||||||||||||
18 | Automata | Finite State Machine | Formal Languages | Theory of Computation | A generic term for a finite state machine. | |||||||||||||||||||||
19 | Average Case | Algorithm Analysis | Algorithm | Scenario describing algorithm performance for the weighted average of all inputs for a given size. | ||||||||||||||||||||||
20 | AVL Tree | Search Structure | Data Structure | A self-balancing binary search tree. | ||||||||||||||||||||||
21 | B-Tree | Indexing | Search Structure | Data 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 Form | Compilers | Programming Languages | A notation used to express context-free grammars, commonly used in the description of programming languages. | ||||||||||||||||||||||
23 | Balanced Binary Tree | Tree | Data Structure | Binary tree that maintains balance to improve performance. | ||||||||||||||||||||||
24 | Best Case | Algorithm Analysis | Algorithm | Scenario describing algorithm performance for the best of all inputs for a given size. | ||||||||||||||||||||||
25 | Big O | Algorithm Analysis | Algorithm | Notation used to describe an upper bound on performance of an algorithm. | ||||||||||||||||||||||
26 | Big Omega | Algorithm Analysis | Algorithm | Notation used to describe a lower bound on performance of an algorithm. | ||||||||||||||||||||||
27 | Big Theta | Algorithm Analysis | Algorithm | 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 Sort | Sorting | Algorithm | 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 Search | Search | Algorithm | A divide-and-conquer algorithm that finds the position of a target value within a sorted array. | ||||||||||||||||||||||
30 | Binary Search Tree | Search Structure | Data Structure | A binary tree where each node has a key greater than its left child and less than its right child. | ||||||||||||||||||||||
31 | Binary Search Tree | Binary Tree | Tree | Data 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 Implementation | Binary Tree | Software Design | Software Engineering | Design techniques for the node of a binary tree. | |||||||||||||||||||||
33 | Binary Tree Space Analysis | Binary Tree | Algorithm Analysis | Algorithm | Evaluating the memory requirements for storing and processing binary trees. | |||||||||||||||||||||
34 | Binary Tree Terminology | Binary Tree | Tree | Data Structure | Terms and definitions related to binary trees. | |||||||||||||||||||||
35 | Binary Tree Traversal | Binary Tree | Tree | Algorithm | Technique for visiting all nodes in a binary. | |||||||||||||||||||||
36 | Binomial Tree | Tree | Data 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 | Binsort | Bucket Sort | Sorting | Algorithm | A type of bucket sort, where a bucket stores only one key value (though it might store multiple records with that key value). | |||||||||||||||||||||
38 | Bintree | Spatial Data Structure | Search Structure | Data 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 Vector | Search Structure | Data 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 Expression | Math 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 Algorithm | String Matching | Algorithm | An algorithm for performing string matching. | ||||||||||||||||||||||
44 | Breadth-First Search | Graph | Algorithm | 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 Sort | Sorting | Algorithm | A simple, but inefficient, comparison-based sorting algorithm. | ||||||||||||||||||||||
46 | Bucket Hashing | Hashing | Search Structure | Data Structure | A type of hashing where keys are hashed to a bucket that might store multiple records. | |||||||||||||||||||||
47 | Bucket Sort | Sorting | Algorithm | Distributes elements into buckets and sorts each bucket individually. | ||||||||||||||||||||||
48 | Buddy Method Memory Manager | Memory Management | Algorithm | A memory allocation algorithm that splits blocks of memory in half, with the two halves defined to be buddies. | ||||||||||||||||||||||
49 | Buffer Pool | Memory Management | Data 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 Problem | NP-completeness | Complexity Theory | Problem | Determining the inputs to a Boolean circuit that result in a true output. | |||||||||||||||||||||
52 | Circuit Satisfiability Problem | NP-completeness | Complexity Theory | Theory 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 Problem | Problem | Identifying the largest clique within a graph. | |||||||||||||||||||||||
55 | Clique Problem | NP-completeness | Complexity Theory | Theory of Computation | Identifying the largest clique within a graph. | |||||||||||||||||||||
56 | Closure Property | Relations | Math Topic | A property of a relation that ensure the relation is closed under certain operations. | ||||||||||||||||||||||
57 | Closure Property | Language Classification | Formal Languages | Theory 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 Classification | Formal Languages | Theory of Computation | The process of determining the classification for a langauge, such as regular, context free, etc. | ||||||||||||||||||||||
59 | Code Coverage | Testing | Programming | Software Engineering | A measure of the extent to which a program is executed during testing. | |||||||||||||||||||||
60 | Code Tuning | Software Design | Software Engineering | The process of optimizing code to improve performance and efficiency, separate from improving the underlying algorithm. | ||||||||||||||||||||||
61 | Collision Resolution | Hashing | Search Structure | Data Structure | Techniques used to handle collisions in hashing. | |||||||||||||||||||||
62 | Command Line Interface | Programming | Software Engineering | A text-based interface for interacting with computer programs by entering commands | ||||||||||||||||||||||
63 | Command Line Parameter | Programming | Software Engineering | Arguments passed to a program at the command line, used to customize program behavior. | ||||||||||||||||||||||
64 | Comparator | Software Design | Software 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 Tree | Binary Tree | Data Structure | Binary trees where all levels except possibly the last are completely filled. | ||||||||||||||||||||||
67 | Composite Design | Design Pattern | Software Design | Software 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 | Composition | Software Design | Software 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 | Container | Abstract Data Type | Software Design | Software Engineering | An abstract data type that stores multiple elements, providing methods for accessing and modifying them. | |||||||||||||||||||||
71 | Context-Free Grammar | Language Classification | Formal Languages | Theory of Computation | A grammar for a language that is confext free. | |||||||||||||||||||||
72 | Context-Free Language | Language Classification | Formal Languages | Theory of Computation | A language generated by a context-free grammar. | |||||||||||||||||||||
73 | DFA Minimization | Formal Languages | Algorithm | An algorithm to minimize the number of nodes in a DFA. | ||||||||||||||||||||||
74 | DFA Minimization | Formal Languages | Theory 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 Type | Software Design | Software Engineering | A type together with a collection of operations to manipulate the type. | ||||||||||||||||||||||
77 | Debugging | Software Development | Software Engineering | Techniques used to identify and correct errors in software. | ||||||||||||||||||||||
78 | Deductive Proof | Proof | The process of reasoning from general principles to derive specific instances. | |||||||||||||||||||||||
79 | Delegation | Design Pattern | Software Design | Software Engineering | One object (the delegating object) passes responsibility for a task to another object (the delegate). | |||||||||||||||||||||
80 | Depth-First Search | Graph | Algorithm | 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 Search | Tree | Algorithm | 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 Pattern | Software Design | Software Engineering | Reusable solutions to common design problems in software development. | ||||||||||||||||||||||
83 | Deterministic Finite Automata | Finite State Machine | Theory 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 Automaton | Pushdown Automaton | Finite State Machine | Theory 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 | Dictionary | Abstract Data Type | Software Design | Software Engineering | An abstract data type representing a collection of key-value pairs. | |||||||||||||||||||||
86 | Dirty Bit | Buffer Pool | Memory Management | Data 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 Set | Set | Math Topic | A collection of sets that are mutually exclusive, supporting efficient union and find operations. | ||||||||||||||||||||||
88 | Disk Drive | Computer Architecture | A device for storing and retrieving digital data using magnetic storage or other media. | |||||||||||||||||||||||
89 | Doubly Linked List | List | Linear Structure | Data Structure | A linked list where each node has pointers to both the previous and next nodes. | |||||||||||||||||||||
90 | Dynamic Storage Allocation | Memory Management | Algorithm | Allocates memory from a pool as needed | ||||||||||||||||||||||
91 | Eclipse IDE | Software Development | Software Engineering | The Eclipse integrated programming environment. | ||||||||||||||||||||||
92 | Edit Distance Problem | Problem | 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 Comparison | Software Development | Software 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 Class | Relations | Math Topic | A distint subset that results from partitioning a set based on an equivalence relation. | ||||||||||||||||||||||
95 | Exchange Sort | Sorting | Algorithm | Any sorting algorithm that can only reorder the list by swapping adjacent records. | ||||||||||||||||||||||
96 | Exponentiation | Numerical Algorithm | Algorithm | The operation of computing a value to a given power. | ||||||||||||||||||||||
97 | Exponentiation | Mathematical Problem | Problem | The operation of computing a value to a given power. | ||||||||||||||||||||||
98 | Expression Tree | Tree | Data 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 Sorting | File Processing | Sorting | Algorithm | Sorting methods that involve data stored outside of main memory, such as on disk. | |||||||||||||||||||||
100 | Fast Fourier Transform | Numerical Algorithm | Algorithm | An O(n log n) algorithm to compute the discrete Fourier transform, used for example to speed up polynomial multiplication. |