C++ Plus Data Structures

C++ Plus Data Structures

memorize.aimemorize.ai (lvl 286)
Section 1

Preview this deck

automatic variable

Front

Star 0%
Star 0%
Star 0%
Star 0%
Star 0%

0.0

0 reviews

5
0
4
0
3
0
2
0
1
0

Active users

0

All-time users

0

Favorites

0

Last updated

6 years ago

Date created

Mar 1, 2020

Cards (414)

Section 1

(50 cards)

automatic variable

Front

a variable for which memory is allocated and deallocated when control enters and exits the block in which it is declared

Back

assignment statement

Front

a statement that stores the value of an expression into a variable

Back

chain

Front

a linked list of elements that share the same hash location char a data type whose values consist of one alphanumeric character (letter, digit, or special symbol)

Back

batch processing

Front

a technique for entering data and executing programs without intermediate user interaction with the computer

Back

branching control structure

Front

selection control structure

Back

abstraction

Front

a model of a complex system that includes only the details essential to the perspective of the viewer of the system; the separation of the logical properties of data or actions from their implementation details

Back

array data type

Front

a collection of components, all of the same type, ordered on N dimensions (N >= 1); each component is accessed by N indexes, each of which represents the component's position within that dimension

Back

Boolean expression

Front

an assertion that is evaluated as either true or false, the only values of the Boolean data type

Back

activation record (stack frame)

Front

a record used at run time to store information about a function call, including the parameters, local variables, register values, and return address

Back

ALU

Front

arithmetic/logic unit

Back

auxiliary storage device

Front

a device that stores data in encoded form outside the computer's memory

Back

assertion

Front

a logical proposition that is either true or false

Back

cancellation error

Front

a form of representational error that occurs when numbers of widely differing magnitudes are added or subtracted

Back

booting the system

Front

the process of starting up a computer by loading the operating system into its main memory

Back

assignment expression

Front

a C++ expression with a value and the side effect of storing the expression value into a memory location

Back

adjacent nodes

Front

two nodes in a graph that are connected by an edge

Back

binary search

Front

a search algorithm for sorted lists that involves dividing the list in half and determining, by value comparison, whether the item would be in the upper or lower half; the process is performed repeatedly until either the item is found or it is determined that the item is not on the list

Back

binding time

Front

the time at which a name or symbol is bound to an address or to the appropriate code

Back

brainstorming

Front

the stage in an object-oriented design in which the first pass is made to determine the classes in a design

Back

abstract data type

Front

a data type whose properties (domain and operations) are specified independently of any particular implementation; a class of data objects with a defined set of properties and a set of operations that process the data objects while maintaining the properties

Back

aggregate operation

Front

an operation on a data structure as a whole, as opposed to an operation on an individual component of the data structure

Back

base class

Front

the class being inherited from

Back

binary

Front

expressed in terms of combinations of the numbers 1 and 0 only

Back

bit

Front

short for binary digit; a single 1 or 0

Back

actual parameter

Front

a variable, constant, or expression listed in the call to a function or procedure

Back

adjacency list a

Front

a linked list that identifies all the vertices to which a particular vertex is connected; each vertex has its own adjacency list

Back

base address

Front

the memory address of the first element in an array

Back

Boolean

Front

a data type consisting of only two values: true and false; bool in C++

Back

call

Front

the point at which the computer begins following the instructions in a subprogram is referred to as the subprogram call

Back

atomic data type

Front

a data type that allows only a single value to be associated with an identifier of that type

Back

anonymous type

Front

a user-defined type that does not have an identifier (a name) associated with it

Back

binary tree

Front

a structure with a unique starting node (the root), in which each node is capable of having two child nodes, and in which a unique path exists from the root to every other node

Back

big-O notation

Front

a notation that expresses computing time (complexity) as the term in a function that increases most rapidly relative to the size of a problem

Back

byte

Front

eight bits

Back

branch

Front

a code segment that is not always executed; for example, a switch statement has as many branches as there are case labels

Back

block

Front

In C++ a group of zero or more statements enclosed in braces body the statement(s) to be repeated within the loop; the executable statement(s) within a function

Back

abstraction (in OOD)

Front

the process of testing the system in its real environment with real data

Back

central processing unit (CPU)

Front

the part of the computer that executes the instructions (program) stored in memory; consists of the arithmetic/logic unit and the control unit

Back

bucket

Front

a collection of elements associated with a particular hash location

Back

arithmetic/logic unit (ALU)

Front

the component of the central processing unit that performs arithmetic and logical operations

Back

assembler

Front

a program that translates an assembly language program into machine code

Back

character set

Front

a standard set of alphanumeric characters with a given collating sequence and binary representation

Back

adjacency matrix

Front

for a graph with N nodes, an N?N table that shows the existence (and weights) of all edges in the graph

Back

Boolean operators

Front

operators applied to values of the type Boolean; in C++ these are the special symbols &&, ||, and !

Back

abstract step

Front

an algorithmic step for which some implementation details remain unspecified

Back

base case

Front

the case for which the solution can be stated nonrecursively

Back

algorithm

Front

a logical sequence of discrete steps that describes a complete solution to a given problem, computable in a finite amount of time; a step-by-step procedure for solving a problem in a finite amount of time; a verbal or written description of a logical sequence of actions

Back

binary search tree

Front

a binary tree in which the key value in any node is greater than the key value in its left child and any of its children (the nodes in the left subtree) and less than the key value in its right child and any of its children (the nodes in the right subtree)

Back

assembly language

Front

a low-level programming language in which a mnemonic represents each of the machine language instructions for a particular computer

Back

black-box testing

Front

testing a program or function based on the possible input values, treating the code as a "black box"

Back

Section 2

(50 cards)

data type

Front

the general form of a class of data items; a formal description of the set of values (called the domain) and the basic set of operations that can be applied to it data

Back

conversion function

Front

a function that converts a value of one type to another type so that it can be assigned to a variable of the second type; also called transfer function or type cast

Back

clustering

Front

the tendency of elements to become unevenly distributed in the hash table, with many elements clustering around a single hash location

Back

composition (containment)

Front

a mechanism by which an internal data member of one class is defined to be an object of another class type

Back

collating sequence

Front

the ordering of the elements of a set or series, such as the characters (values) in a character set

Back

communication complexity

Front

a measure of the quantity of data passing through a module's interface

Back

coding

Front

translating an algorithm into a programming language; the process of assigning bit patterns to pieces of information

Back

conditional test

Front

the point at which the Boolean expression is evaluated and the decision is made to either begin a new iteration or skip to the first statement following the loop

Back

data coverage

Front

black-box testing

Back

class constructor

Front

a special member function of a class that is implicitly invoked when a class object is defined

Back

CRC card

Front

(Class, Responsibility, Collaboration) a visualization technique that uses 4 ? 6 cards to represent a class

Back

data

Front

information that has been put into a form a computer can use

Back

constant

Front

an item in a program whose value is fixed at compile time and cannot be changed during execution

Back

data abstraction

Front

the separation of a data type's logical properties from its implementation

Back

class

Front

an unstructured type that encapsulates a fixed number of data components with the functions that manipulate them; the predefined operations on an instance of a class are "whole assignment" and "component access"

Back

complete binary tree

Front

a binary tree that is either full or full through the next-to-last level, with the leaves on the last level as far to the left as possible

Back

constant time

Front

an algorithm whose Big-O work expression is a constant

Back

cursor control keys

Front

a special set of keys on a computer keyboard that allow the user to move the cursor up, down, right, and left to any point on the screen

Back

computer programming

Front

the process of planning a sequence of steps for a computer to follow

Back

client

Front

software that declares and manipulates objects (instances) of a particular class

Back

control structure

Front

a statement used to alter the normally sequential flow of control

Back

compiler

Front

a program that translates a high-level language (such as C++, Pascal, or FORTRAN) into machine code

Back

circular linked list

Front

a list in which every node has a successor; the "last" element is succeeded by the "first" element

Back

data structure

Front

a collection of data elements whose organization is characterized by accessing operations that are used to store and retrieve the individual data elements; the implementation of the composite data members in an abstract data type

Back

collision

Front

the condition resulting when two or more keys produce the same hash location

Back

constructor

Front

an operation that builds new instances of an abstract data type (such as a list)

Back

control abstraction

Front

the separation of the logical properties of a control structure from its implementation

Back

counter

Front

a variable whose value is incremented to keep track of the number of times a process or event occurs

Back

crash

Front

the cessation of a computer's operations as a result of the failure of one of its components; cessation of program execution due to an error

Back

data validation

Front

a test added to a program or a function that checks for errors in the data

Back

CPU

Front

central processing unit

Back

data encapsulation

Front

the separation of the representation of data from the applications that use the data at a logical level; a programming language feature that enforces information hiding

Back

clear- (white-) box testing

Front

testing a program or function based on covering all of the branches or paths of the code

Back

computer program

Front

a list of instructions to be performed by a computer

Back

compiler listing

Front

a copy of a program into which have been inserted messages from the compiler (indicating errors in the program that prevent its translation into machine language if appropriate)

Back

code walk-through

Front

a verification process for a program in which each statement is examined to check that it faithfully implements the corresponding algorithmic step, and that the preconditions and postconditions of each module are preserved

Back

computer

Front

a programmable device that can store, retrieve, and process data

Back

complete graph

Front

a graph in which every vertex is directly connected to every other vertex

Back

composite type

Front

a data type that allows a collection of values to be associated with an object of that type

Back

copy constructor

Front

a special member function of a class that is implicitly invoked when passing parameters by value, initializing a variable in a declaration, and returning an object as the value of a function

Back

control unit

Front

the component of the central processing unit that controls the action of other components so that instructions (the program) are executed in sequence

Back

class destructor

Front

a special member function of a class that is implicitly invoked when a class object goes out of scope

Back

class member

Front

a component of a class; class members may be either data or functions

Back

data flow

Front

the flow of information from the calling code to a function and from the function back to the calling code

Back

code coverage

Front

clear- (white-) box testing

Back

complexity

Front

a measure of the effort expended by the computer in performing a computation, relative to the size of the computation

Back

concrete step

Front

a step for which the implementation details are fully specified

Back

class object (class instance)

Front

a variable of a class type

Back

count-controlled loop

Front

a loop that executes a predetermined number of times

Back

data representation

Front

the concrete form of data used to represent the abstract values of an abstract data type

Back

Section 3

(50 cards)

enumerator

Front

one of the values in the domain of an enumeration type

Back

deskchecking

Front

tracing an execution of a design or program on paper

Back

execution trace

Front

a testing procedure that involves simulating by hand the computer executing a program

Back

dynamic data structure

Front

a data structure that can expand and contract during program execution

Back

event counter

Front

a variable that is incremented each time a particular event occurs

Back

editor

Front

an interactive program used to create and modify source programs or data

Back

filtering

Front

the stage in an object-oriented design in which the classes determined during brainstorming are reexamined

Back

flow of control

Front

the order of execution of the statements in a program

Back

edge (arc)

Front

a pair of vertices representing a connection between two nodes in a graph

Back

debugging

Front

the process of removing known errors decision

Back

external representation

Front

the printable (character) form of a data value

Back

documentation

Front

the written text and comments that make a program easier for others to understand, use, and modify

Back

executing

Front

the action of a computer performing as instructed by a given program

Back

delete

Front

a C++ operator that returns the space allocated for a dynamic variable back to the heap to be used again

Back

flag

Front

a Boolean variable that is set in one part of the program and tested in another to control the logical flow of a program

Back

file

Front

a named area in secondary storage that is used to hold a collection of data; the collection of data itself

Back

execution summary

Front

a computer-generated list of all commands processed and any system messages generated during batch processing

Back

development environment

Front

a single package containing all of the software required for developing a program

Back

echo printing

Front

printing the data values input to a program to verify that they are correct

Back

enumeration data type

Front

a data type in which the formal description of the set of values is an ordered list of literal values

Back

deep copy

Front

an operation that not only copies one class object to another but also makes copies of any pointed-to data

Back

delimiter

Front

a symbol or keyword that marks the beginning or end of a construct (e.g., statement, comment, declaration, and parameter list)

Back

driver

Front

a simple dummy main program that is used to call a function being tested; a main function in an object-oriented program

Back

decision

Front

selection control structure

Back

dynamic allocation

Front

allocation of memory space for a variable at run time (as opposed to static allocation at compile time)

Back

field identifier (member identifier in C++)

Front

the name of a component in a record (struct)

Back

field of a record

Front

a component of a record data type

Back

dynamic binding

Front

the run-time determination of which implementation of an operation is appropriate

Back

external file

Front

a file that is used to communicate with people or programs and is stored externally to the program

Back

declaration

Front

a statement that associates an identifier with a process or object so that the user can refer to that process or object by name

Back

expression

Front

an arrangement of identifiers, literals, and operators that can be evaluated to compute a value of a given type

Back

floating point number

Front

the value stored in a type float variable, so called because part of the memory location holds the exponent and the balance of the location the mantissa, with the decimal point floating as necessary among the significant digits

Back

dereference operator

Front

an operator that when applied to a pointer variable denotes the variable to which the pointer points

Back

exception report

Front

a set of messages in a program that explains the actions taken when an invalid data item is encountered during execution

Back

expression statement

Front

a statement formed by appending a semicolon to an expression

Back

demotion (narrowing)

Front

the conversion of a value from a "higher" type to a "lower" type according to a programming language's precedence of data types. Demotion may cause loss of information

Back

dynamic variable

Front

a variable created during execution of a program by the new operator

Back

fetch-execute cycle

Front

the sequence of steps performed by the central processing unit for each machine language instruction

Back

field member selector

Front

the expression used to access components of a record variable; formed by using the record variable name and the field identifier, separated by a period

Back

down

Front

a descriptive term applied to a computer when it is not in a usable condition

Back

external pointer

Front

a named pointer variable that references the first node in a linked structure

Back

exception

Front

a situation associated with an unusual, usually unpredictable event, detectable by software or hardware, which requires special processing

Back

directed graph (digraph)

Front

a graph in which each edge is directed from one vertex to another (or the same) vertex

Back

derived class

Front

the class that inherits

Back

event-controlled loop

Front

a loop that terminates when something happens inside the loop body to signal that the loop should be exited

Back

finite state machine

Front

an idealized model of a simple computer consisting of a set of states, the rules that specify when states are changed, and a set of actions that are performed when changing states

Back

flat implementation

Front

the hierarchical structure of a solution written as one long sequence of steps; also called inline implementation

Back

field

Front

a group of character positions in a line of output

Back

doubly linked list

Front

a linked list in which each node is linked to both its successor and its predecessor

Back

encapsulation (in OOD)

Front

the bundling of data and actions in such a way that the logical properties of the data and actions are separated from the implementation details; the practice of hiding a module implementation in a separate block with a formally specified interface

Back

Section 4

(50 cards)

inorder traversal

Front

a systematic way of visiting all the nodes in a binary tree that visits the nodes in the left subtree of a node, then visits the node, and then visits the nodes in the right subtree of the node

Back

input transformation

Front

an operation that takes input values and converts them to the abstract data type representation

Back

functional problem description

Front

a description that clearly states what a program is to do

Back

functional equivalence

Front

a property of a module that performs exactly the same operation as the abstract step it defines, or when one module performs exactly the same operation as another module

Back

functional cohesion

Front

a property of a module in which all concrete steps are directed toward solving just one problem, and any significant subproblems are written as abstract steps

Back

functional domain

Front

the set of valid input data for a program or function

Back

implementation phase

Front

the second set of steps in programming a computer: translating (coding) the algorithm into a programming language; testing the resulting program by running it on a computer, checking for accuracy, and making any necessary corrections; using the program implementing

Back

function type

Front

function result type

Back

formal parameter declaration

Front

the code that associates a formal parameter identifier with a data type and a passing mechanism

Back

header node

Front

a placeholder node at the beginning of a list; used to simplify list processing

Back

information hiding

Front

The practice of hiding the details of a function or data structure with the goal of controlling access to the details of a module or structure; the programming technique of hiding the details of data or actions from other parts of the program

Back

hierarchical implementation

Front

a process in which a modular solution is implemented by subprograms that duplicate the hierarchical structure of the solution

Back

general (recursive) case

Front

the case for which the solution is expressed in terms of a smaller version of itself

Back

function result

Front

the value computed by the function and then returned to the main program; often just called the result

Back

inheritance

Front

a design technique used with a hierarchy of classes by which each descendant class inherits the properties (data and operations) of its ancestor class; the language mechanism by which one class acquires the properties—data and operations—of another class; a mechanism for automatically sharing data and methods among members of a class and its subclasses

Back

in place

Front

describes a kind of sorting algorithm in which the components in an array are sorted without the use of a second array

Back

function result type

Front

the data type of the result value returned by a function; often referred to simply as function type

Back

implementing

Front

coding and testing an algorithm

Back

hashing

Front

the technique used for ordering and accessing elements in a list in a relatively constant amount of time by manipulating the key to identify its location in the list

Back

function

Front

a subprogram in C++

Back

input prompts

Front

messages printed by an interactive program, explaining what data is to be entered

Back

garbage

Front

memory locations that can no longer be accessed

Back

graph

Front

a data structure that consists of a set of nodes and a set of edges that relate the nodes to each other

Back

input

Front

the process of placing values from an outside data set into variables in a program; the data may come from either an input device (keyboard) or an auxiliary storage device (disk or tape)

Back

high-level programming language

Front

any programming language in which a single statement translates into one or more machine language instructions

Back

infinite recursion

Front

the situation in which a subprogram calls itself over and over continuously

Back

implementing a test plan

Front

running the program with the test cases listed in the test plan

Back

index

Front

a value that selects a component of an array

Back

information

Front

any knowledge that can be communicated

Back

folding

Front

a hash method that breaks the key into several pieces and concatenates or exclusive-ORs some of them to form the hash value

Back

homogeneous

Front

a descriptive term applied to structures in which all components are of the same data type (such as an array)

Back

heap

Front

a complete binary tree, each of whose elements contains a value that is greater than or equal to the value of each of its children; see also free store

Back

implicit matching

Front

positional matching

Back

formal parameter

Front

a variable declared in a function heading

Back

function definition

Front

a function declaration that includes the body of the function

Back

functional modules

Front

in top-down design, the structured tasks and subtasks that are solved individually to create an effective program

Back

generic data type

Front

a type for which the operations are defined but the types of the items being manipulated are not

Back

heuristics

Front

assorted problem-solving strategies

Back

hierarchy (in OOD)

Front

structuring of abstractions in which a descendant object inherits the characteristics of its ancestors

Back

function prototype

Front

a function declaration without the body of the function

Back

hardware

Front

the physical components of a computer

Back

formatting

Front

the planned positioning of statements or declarations and blanks on a line of a program; the arranging of program output so that it is neatly spaced and aligned

Back

hierarchical records

Front

records in which at least one of the fields is itself a record

Back

function call

Front

an expression or statement in the main program requiring the computer to execute a function subprogram

Back

global

Front

a descriptive term applied to an identifier declared outside any function, so- called because it is accessible to everything that follows it

Back

hash function

Front

a function used to manipulate the key of an element in a list to identify its location in the list

Back

infinite loop

Front

a loop whose termination condition is never reached and which therefore is never exited without intervention from outside of the program

Back

identifier

Front

a name associated with a process or object and used to refer to that process or object

Back

free store (heap)

Front

a pool of memory locations reserved for dynamic allocation of data full binary tree a binary tree in which all of the leaves are on the same level and every nonleaf node has two children

Back

inline implementation

Front

flat implementation

Back

Section 5

(50 cards)

interpreter

Front

a program that inputs a program in a high-level language and directs the computer to perform the actions specified in each statement; unlike a compiler, an interpreter does not produce a machine language version of the entire program

Back

linear time

Front

for an algorithm, when the Big-O work expression can be expressed in terms of a constant times N, where N is the size of the problem

Back

insertion sort

Front

a sorting algorithm in which values are placed one at a time into their proper position within a list that was originally empty

Back

modular programming

Front

top-down design

Back

memory leak

Front

the loss of available memory space that occurs when memory is allocated dynamically but never deallocated

Back

mantissa

Front

with respect to floating point representation of real numbers, the digits representing a number itself and not its exponent

Back

iteration

Front

an individual pass through, or repetition of, the body of a loop

Back

lifetime

Front

the period of time during program execution when an identifier has memory allocated to it

Back

metric based testing

Front

testing based on measurable factors

Back

loop control variable (LCV)

Front

a variable whose value is used to determine whether the loop executes another iteration or exits

Back

mainframe

Front

a large computing system designed for high-volume processing or for use by many people at once

Back

loop invariant

Front

assertions about the characteristics of a loop that must always be true for a loop to execute properly; the assertions are true on loop entry, at the start of each loop iteration, and on exit from the loop, but are not necessarily true at each point in the body of the loop

Back

microcomputer

Front

personal computer

Back

modularity (in OOD)

Front

meaningful packaging of objects

Back

loop exit

Front

the point when the repetition of the loop body ends and control passes to the first statement following the loop

Back

minicomputer

Front

a computer system larger than a personal computer but smaller than a mainframe; sometimes called an entry-level mainframe

Back

inspection

Front

a verification method in which one member of a team reads the program or design line by line and the others point out errors

Back

iterator

Front

an operation that allows us to process all the components in an abstract data type sequentially

Back

length

Front

the actual number of values stored in a list or string

Back

mixed mode expression

Front

an expression that contains operands of different data types

Back

module

Front

a self-contained collection of steps that solves a problem or subproblem; can contain both concrete and abstract steps

Back

local variable

Front

a variable declared within a block; it is not accessible outside of that block

Back

machine language

Front

the language, made up of binary-coded instructions, that is used directly by the computer

Back

loop test

Front

the point at which the loop expression is evaluated and the decision is made either to begin a new iteration or skip to the statement immediately following the loop

Back

logging on

Front

taking the preliminary steps necessary to identify yourself to a computer so that it accepts your commands

Back

linear probing

Front

resolving a hash collision by sequentially searching a hash table beginning at the location returned by the hash function

Back

integration testing

Front

testing performed to integrate program modules that have already been independently unit tested

Back

maintenance

Front

the modification of a program, after it has been completed, in order to meet changing requirements or to take care of any errors that show up

Back

leaf node

Front

tree node that has no children

Back

method

Front

a function declared as a member of a class object

Back

member selector

Front

the expression used to access components of a struct or class variable; it is formed by using the variable name and the member name, separated by a dot (period)

Back

loop

Front

a method of structuring statements so that they are repeated while certain conditions are met

Back

module nesting chart

Front

a chart that depicts the nesting structure of modules and shows calls among them

Back

metalanguage

Front

a language that is used to write the syntax rules for another language

Back

internal file

Front

a file that is created but not saved; also called a scratch file

Back

logging off

Front

informing a computer—usually through a simple command—that no fur- ther commands follow

Back

loop entry

Front

the point at which the flow of control first passes to a statement inside a loop

Back

logical order

Front

the order in which the programmer wants the statements in the program to be executed, which may differ from the physical order in which they appear

Back

iteration counter

Front

a counter variable that is incremented with each iteration of a loop

Back

invoke

Front

to call on a subprogram, causing the subprogram to execute before control is returned to the statement following the call

Back

integer number

Front

a positive or negative whole number made up of a sign and digits (when the sign is omitted, a positive sign is assumed)

Back

maintenance phase

Front

period during which maintenance occurs

Back

interface

Front

a connecting link (such as a computer terminal) at a shared boundary that allows independent systems (such as the user and the computer) to meet and act on or communicate with each other; the formal definition of the behavior of a subprogram and the mechanism for communicating with it

Back

logarithmic order

Front

for an algorithm, when the Big-O work expression can be expressed in terms of the logarithm of N, where N is the size of the problem

Back

input/output (I/O) devices

Front

the parts of a computer that accept data to be processed (input) and present the results of that processing (output)

Back

memory unit

Front

internal data storage in a computer

Back

listing

Front

a copy of a source program, output by a compiler, containing messages to the programmer

Back

interactive system

Front

a system that allows direct communication between the user and the computer

Back

literal value

Front

any constant value written in a program

Back

linked list

Front

a list in which the order of the components is determined by an explicit link field in each node, rather than by the sequential order of the components in memory

Back

Section 6

(50 cards)

pass by name

Front

a parameter-passing mechanism in which the actual parameter is passed to a procedure as a literal character string and interpreted by a thunk

Back

one-dimensional array

Front

a structured collection of components of the same type given a single name; each component is accessed by an index that indicates its position within the collection

Back

operating system

Front

a set of programs that manages all of the computer's resources

Back

object-based programming language

Front

a programming language that supports abstraction and encapsulation, but not inheritance

Back

pass by reference

Front

pass by address

Back

overflow

Front

the condition that arises when the value of a calculation is too large to be represented

Back

nested if

Front

an if statement that is nested within another if statement

Back

polymorphic operation

Front

an operation that has multiple meanings depending on the type of the object to which it is bound at run time

Back

out-of-bounds array index

Front

an index value that, in C++, is either less than zero or greater than the array size minus one

Back

observer

Front

an operation that allows us to observe the state of an instance of an abstract data type without changing it

Back

precision

Front

a maximum number of significant digits

Back

parameter

Front

a literal, constant, variable, or expression used for communicating values to or from a subprogram

Back

nodes

Front

the building blocks of dynamic structures, each made up of a component (the data) and a pointer (the link) to the next node

Back

pass by value

Front

a parameter-passing mechanism in which a copy of an actual parameter's value is passed to the formal parameter

Back

positional matching

Front

a method of matching actual and formal parameters by their relative positions in the two parameter lists; also called relative or implicit matching

Back

personal computer (PC)

Front

a small computer system (usually intended to fit on a desktop) that is designed to be used primarily by a single person

Back

object program

Front

the machine-language version of a source program

Back

object class (class)

Front

the description of a group of objects with similar properties and behaviors; a pattern for creating individual objects

Back

preconditions

Front

assertions that must be true before a module begins execution prefix

Back

password

Front

a unique series of letters assigned to a user (and known only by that user) by which that user identifies himself or herself to a computer during the logging-on procedure; a password system protects information stored in a computer from being tampered with or destroyed

Back

polymorphism

Front

The ability to determine which of several operations with the same name is appropriate; a combination of static and dynamic binding

Back

priming read

Front

an initial reading of a set of data values before entry into an event-controlled loop, in order to establish values for the variables

Back

overriding

Front

reimplementing a member function inherited from a parent class

Back

postfix operator

Front

an operator that follows its operand(s)

Back

named constant

Front

a location in memory, referenced by an identifier, where a data value that cannot be changed is stored

Back

overloading

Front

giving the same name to more than one function or using the same operator symbol for more than one operation; usually associated with static binding

Back

name precedence

Front

the priority treatment accorded a local identifier in a block over a global identifier with the same spelling in any references that the block makes to that identifier

Back

pointer

Front

a simple data type consisting of an unbounded set of values, each of which addresses or otherwise indicates the location of a variable of a given type; operations defined on pointer variables are assignment and test for equality

Back

postorder traversal

Front

a systematic way of visiting all the nodes in a binary tree that visits the nodes in the left subtree of a node, then visits the nodes in the right subtree of the node, and then visits the node

Back

prefix operator

Front

an operator that precedes its operand(s)

Back

postconditions

Front

assertions that must be true after a module is executed

Back

pass by address

Front

a parameter-passing mechanism in which the memory address of the actual parameter is passed to the formal parameter; also called pass by reference

Back

named type

Front

a type that has an identifier (a name) associated with it

Back

object-oriented design

Front

a building-block design technique that incorporates abstraction, encapsulation, modularity, and hierarchy

Back

PC

Front

personal computer

Back

nested control structure

Front

a program structure consisting of one control statement (selection, iteration, or subprogram) embedded within another control statement

Back

preorder traversal

Front

a systematic way of visiting all the nodes in a binary tree that visits a node, then visits all the nodes in the left subtree of the node, and then visits the nodes in the right subtree of the node

Back

output transformation

Front

an operation that takes an instance of an abstract data type and converts it to a representation that can be output

Back

nonlocal access

Front

access to any identifier declared outside of its own block

Back

peripheral device

Front

an input, output, or auxiliary storage device attached to a computer

Back

object-oriented programming

Front

a method of implementation in which programs are organized as cooperative collections of objects, each of which represents an instance of some class, and whose classes are all members of a hierarchy of classes united via inheritance relationships

Back

nybble

Front

four bits; half of a byte

Back

nested loop

Front

a loop that is within another loop

Back

nonlocal

Front

a descriptive term applied to any identifier declared outside of a given block

Back

named matching

Front

explicit matching

Back

path testing

Front

a testing technique whereby the tester tries to execute all possible paths in a program or function

Back

null statement

Front

an empty statement

Back

parameter list

Front

a mechanism by which functions communicate with each other

Back

path

Front

a combination of branches that might be traversed when a program or function is executed; a sequence of vertices that connects two nodes in a graph

Back

new

Front

a C++ operator that returns the address of new space allocated for a dynamic variable

Back

Section 7

(50 cards)

program verification

Front

the process of determining the degree to which a software product fulfills its specifications

Back

reference parameter

Front

a formal parameter that receives the location (memory address) of the caller's actual parameter

Back

scenarios

Front

the stage in an object-oriented design in which the behavoir of each class is determined

Back

scope

Front

the region of program code where it is legal to reference (use) an identifier

Back

right-justified

Front

placed as far to the right as possible within a fixed number of character positions

Back

programming language

Front

a set of rules, symbols, and special words used to construct a program

Back

pseudocode

Front

a mixture of English statements and C++-like control structures that can easily by translated into a programming language

Back

side effect

Front

any effect of one function on another that is not part of the explicitly defined interface between them

Back

reference type

Front

a simple data type consisting of an unbounded set of values, each of which is the address of a variable of a given type. The only operation defined on a reference variable is initialization, after which every appearance of the variable is implicitly dereferenced

Back

recursive definition

Front

a definition in which something is defined in terms of a smaller version of itself

Back

recursion

Front

the situation in which a subprogram calls itself

Back

regression testing

Front

reexecution of program tests after modifications have been made in order to ensure that the program still works correctly

Back

recursive call

Front

a subprogram call in which the subprogram being called is the same as the one making the call

Back

scratch file

Front

internal file

Back

reserved word

Front

a word that has special meaning in a programming language; it cannot be used as an identifier

Back

problem-solving phase

Front

the first set of steps in programming a computer: analyzing the problem; developing an algorithm; testing the algorithm for accuracy

Back

range of values

Front

the interval within which values must fall, specified in terms of the largest and smallest allowable values

Back

selection control structure

Front

a form of program structure allowing the computer to select one among possible actions to perform based on given circumstances; also called a branching control structure

Back

representational error

Front

arithmetic error caused when the precision of the true result of arithmetic operations is greater than the precision of the machine

Back

record (struct) data type

Front

a composite data type with a fixed number of components called fields (members); the operations are whole record assignment and selection of individual fields by name

Back

random probing

Front

resolving a hash collision by generating pseudorandom hash values in successive applications of the rehash function

Back

procedural abstraction

Front

the separation of the logical properties of an action from its implementation

Back

self-documenting code

Front

a program containing meaningful identifiers as well as judiciously used clarifying comments

Back

root

Front

the top node of a tree structure; a node with no parent

Back

shallow copy

Front

an operation that copies one class object to another without copying any pointed-to data

Back

sequence

Front

a structure in which statements are executed one after another

Back

semantics

Front

the set of rules that gives the meaning of instruction written in a programming language

Back

result

Front

function result

Back

programming

Front

planning, scheduling, or performing a task or an event; see also computer programming

Back

significant digits

Front

those digits from the first nonzero digit on the left to the last nonzero digit on the right (plus any zero digits that are exact)

Back

relative matching

Front

positional matching

Back

radix

Front

the number of possibilities for each position; the digits in a number system

Back

scope rules

Front

the rules that determine where in a program a given identifier may be accessed, given the point at which the identifier is declared

Back

simulation

Front

a problem solution that has been arrived at through the application of an algorithm designed to model the behavior of physical systems, materials, or processes

Back

run-time stack

Front

a data structure that keeps track of activation records during the execution of a program

Back

semihierarchical implementation

Front

a modular solution implemented by functions in a manner that preserves the hierarchical design, except that a function used by multiple modules is implemented once, outside of the hierarchy, and called in each place it is needed

Back

return

Front

the point at which the computer comes back from executing a function

Back

queue

Front

a data structure in which elements are added to the rear and removed from the front; a "first in, first out" (FIFO) structure

Back

relational operators

Front

operators that state that a relationship exists between two values; in C++, symbols that cause the computer to perform operations to verify whether the indicated relationship exists

Back

robust

Front

a descriptive term for a program that can recover from erroneous inputs and other errors and keep running

Back

responsibility algorithms

Front

the stage in an object-oriented design in which algorithms are written for each of the responsibilities outlined on the CRC cards

Back

program validation

Front

the process of determining the degree to which software fulfills its intended purpose

Back

refinement

Front

in top-down design, the expansion of a module specification to form a new module that solves a major step in the computer solution of a problem

Back

robustness

Front

the ability of a program to recover following an error; the ability of a program to continue to operate within its environment

Back

secondary storage device

Front

auxiliary storage device

Back

self

Front

the instance object (class) used in the invocation of a method

Back

quadratic probing

Front

resolving a hash collision by using the rehashing formula (Hash- Value ? I 2) % array-size, where I is the number of times that the rehash function has been applied

Back

recursive case

Front

general case

Back

real number

Front

real number

Back

sentinel

Front

a special data value used in certain event-controlled loops as a signal that the loop should be exited

Back

Section 8

(50 cards)

temporary file

Front

a file that exists only during the execution of a program

Back

sorting

Front

arranging the components of a list in order (for instance, words in alphabetical order, numbers in ascending or descending order)

Back

stack frame

Front

activation record

Back

tail recursion

Front

a recursive algorithm in which no statements are executed after the return from the recursive call

Back

source program

Front

a program written in a high-level programming language

Back

string

Front

a collection of characters that is interpreted as a single data item; in C++, a null-terminated sequence of characters stored in a char array

Back

software life cycle

Front

the phases in the life of a large software project including requirements analysis, specification, design, implementation, testing, and maintenance

Back

team programming

Front

the use of two or more programmers to design a program that would take one programmer too long to complete

Back

syntax

Front

the formal rules governing how valid instructions (constructs) are written in a programming language

Back

unary operator

Front

an operator that has just one operand

Back

stepwise design

Front

top-down design

Back

trailer node

Front

a placeholder node at the end of a list; used to simplify list processing

Back

size (of an array)

Front

the physical space reserved for an array

Back

software engineering

Front

the application of traditional engineering methodologies and techniques to the development of software

Back

stepwise refinement

Front

top-down design

Back

style

Front

the individual manner in which computer programmers translate algorithms into a programming language

Back

standardized

Front

made uniform; most high-level languages are standardized, as official descriptions of them exist

Back

static variable

Front

a variable for which memory remains allocated throughout the execution of the entire program

Back

test plan implementation

Front

using the test cases specified in a test plan to verify that a program outputs the predicted results

Back

text file

Front

a file in which each component is a character; each numeric digit is represented by its code in the collating sequence

Back

traverse a list

Front

to access the components of a list one at a time from the beginning of the list to the end

Back

transfer function

Front

conversion function

Back

type coercion

Front

an automatic conversion of a value of one type to a value of another type

Back

underflow

Front

the condition that arises when the value of a calculation is too small to be represented

Back

software

Front

computer programs; the set of all programs available on a computer

Back

transformer

Front

an operation that builds a new value of an ADT, given one or more previous values of the type

Back

testing

Front

checking a program's output by comparing it to hand-calculated results; running a program with data sets designed to discover any errors

Back

test plan

Front

a document that specifies how a program is to be tested

Back

testing the state of a stream

Front

the act of using a C++ stream variable in a logical expression as if it were a Boolean variable; the result is true if the last I/O operation on that stream succeeded, and false otherwise

Back

test driver

Front

driver

Back

system software

Front

a set of programs—including the compiler, the operating system, and the editor—that improves the efficiency and convenience of the computer's processing

Back

undirected graph

Front

a graph in which the edges have no direction

Back

two-dimensional array

Front

a collection of components, all of the same type, structured in two dimensions; each component is accessed by a pair of indexes that represent the component's position within each dimension

Back

type definition

Front

the association of a type identifier with the definition of a new data type

Back

stack underflow

Front

the condition resulting from trying to pop an empty stack

Back

termination condition

Front

the condition that causes a loop to be exited

Back

stack overflow

Front

the condition resulting from trying to push an element onto a full stack

Back

template

Front

a C++ language construct that allows the compiler to generate multiple versions of a class type or a function by allowing parameterized types

Back

top-down design

Front

a technique for developing a program in which the problem is divided into more easily handled subproblems, the solutions of which create a solution to the overall problem; also called stepwise refinement and modular programming

Back

software piracy

Front

the unauthorized copying of software for either personal use or use by others

Back

stable sort

Front

a sorting algorithm that preserves the order of duplicates

Back

stack

Front

an abstract data type in which elements are added and removed from only one end; a "last in, first out" (LIFO) structure

Back

static binding

Front

the compile-time determination of which function to call for a particular objec

Back

stub

Front

a dummy function that assists in testing part of a program; it has the same function that would actually be called by the part of the program being tested, but is usually much simpler

Back

type cast

Front

conversion function

Back

subprogram

Front

function

Back

unit testing

Front

testing a module or function by itself

Back

switch expression

Front

the expression in a switch statement whose value determines which case label is selected; it cannot be a floating point expression

Back

supercomputer

Front

the most powerful class of computers

Back

unstructured data type

Front

a collection consisting of components that are not organized with respect to one another

Back

Section 9

(14 cards)

weighted graph

Front

a graph in which each edge carries a value

Back

workstation

Front

a minicomputer or powerful microcomputer designed to be used primarily by one person at a time

Back

value parameter

Front

a formal parameter that receives a copy of the contents of the corresponding actual parameter

Back

visible

Front

accessible; a term used in describing a scope of access

Back

work

Front

a measure of the effort expended by the computer in performing a computation

Back

void function (procedure)

Front

a function that does not return a function value to its caller and is invoked as a separate statement

Back

virtual function

Front

a function in which each invocation cannot be matched with the proper code until run time

Back

virus

Front

a computer program that replicates itself, often with the goal of spreading to other computers without authorization, possibly with the intent of doing harm

Back

value-returning function

Front

a function that returns a single value to its caller and is invoked from within an expression

Back

walk-through

Front

a verification method in which a team performs a manual simulation of the program or design

Back

user name

Front

the name by which a computer recognizes the user, and which must be entered to log on to a machine

Back

vertex

Front

a node in a graph

Back

word

Front

a group of 16, 32, or 64 bits; a group of bits processed by the arithmetic-logic unit in a single instruction

Back

variable

Front

a location in memory, referenced by an identifier, in which a data value that can be changed is stored

Back