CS Vocabulary List

Every field of study has a vocabulary to define and describe objects and actions specific to that field. Computer science (CS) is no different. Because CS is among the newest of the sciences, it has borrowed much of its vocabulary from the others, as well as non-scientific English, giving common terms new meanings. Without a working knowledge of these terms, it is not possible to learn or communicate effectively in CS.

This page includes the vocabulary you need to learn not only for this course, but for your future CS work. The terms are taken (with some changes) from Python Programming: An introduction to computer science (Zelle, J. M.(2004), Wilsonville, OR: Franklin, Beedle & Associates) and How to Think Like a Computer Scientist: Learning with Python (Downey A., Elkner J., and Meyers,C. (2002), Wellesley, MA: Green Tea Press).

For more complete computer-related dictionaries, see FOLDOC or Webopedia.

A-B | C-D | E-F | G-H | I-J | K-L | M-N | O-P | Q-R | S-T | U-V | W-Z

accessor method
A method that returns the value of one or more of an object's instance variable(s), but does not modify the object. These are usually given the prefix get.See names.py
accumulator pattern
A common programming pattern in which a final answer is built a piece at a time in a loop. See names.py for example of accumulating character values, and lh.py for accumulating numeric values
A variable that is used to hold the result in the accumulator pattern. See lh.py
A set of instructions for solving a problem or a class of problems by a mechanical, unintelligent process.
The situation in which two or more identifiers refer to exactly the same object. If the object is mutable, then changes made through one identifier will be seen by the others.
A system in which values are represented by continuously variable signals. Compare to digital.
In the context of the software development lifecycle, this refers to the process of studying a problem and figuring out what a computer program might do to solve it. 2) Studying a problem or algorithm mathematically to determine some of its properties, such as time efficiency.
A binary Boolean operator that returns true when both of its operands are true. In C/C++ and Java, this operator is written as &&. Its truth table is:
p q p and q
False False False
False True False
True False False
True True True
application programmer's interface (API)
A specification or documentation of the functionality provided by a library module. A programmer needs to understand the API to be able to use a module. In the Python IDLE, load the module you want and then display its API with the help function:

   >>> import random
   >>> help(random)
argument (actual parameter)
A value that is passed to a function or method when it is called. This value is assigned to the corresponding parameter in the function. See example lunitidal.py
A homogeneous sequence type.
American Standard Code for Information Interchange. A standard for encoding text where each character is represented by a number 0-127 (7 binary bits). See an ASCII table here.
A statement that assigns a value to a variable. Assignment is always from right to left, so the syntax is different from mathematics:

   x = 3;       /* variable x assigned integer value 3 */
   3 = x;       /* invalid! Left-hand side must be a variable */
assignment operator
The binary operator = is used for assignment. The right-hand operator (an expression) is evaluated and the result assigned to the left-hand operator (a variable). Often pronounced "gets."
associative type
A unordered compound data type that locates a value via a key rather than by its relative position in an ordered sequence.
The instance variables and methods of an object.
A mode of processing in which input and output is done through files rather than interactively.
base case
A branch of the conditional statement in a recursive function that does not result in a recursive call. See recurse.py
1) Base two numbering system in which the only digits are 0 and 1. 2) An operator that requires two operands (e.g., + or *). 3) Any situation or system involving a choice or condition between two alternatives (yes-no, on-off, up-down, true-false).
Short for binary digit. The fundamental unit of digital data, often represented using the symbols 0 and 1.
In Python, a group of consecutive statements with the same indentation; in C/C++ and Java, any group of consecutive statements enclosed in braces.
The block in a compound statement that follows a header.
Boolean Algebra (Boolean logic)
The rules that govern simplification and rewriting of Boolean expressions.
Boolean expression (logical expression)
A truth statement. A Boolean expression evaluates to either true or false.
Boolean operators (logical operators)
Connectives for constructing Boolean expressions. In Python, and, or, and not.
break statement
A statement that causes the flow of execution to exit a loop. Implemented in Python, C/C++ and Java with the keyword break. See lh.py or eggs.py
An error in a program. See debugging.
A grouping of 8 bits. Bytes are the smallest addressable unit of memory or external storage. Each byte can represent 256 distinct patterns of bits.
byte code
An intermediate form of computer language. High-level languages are sometimes compiled into byte code which is then translated to machine language by software (often called a runtime engine) at execution time. In Python, files with a pyc extension are byte code. Java byte code files have the extension class

The process of transferring control to a function and possibly some values as arguments that will be assigned to the function's parameters. The implicit assumption is that control will eventually return to the point of execution just after the function call.
central processing unit (CPU)
The "brain" of the computer where numeric and logical operations are carried out.
chained conditional
A program structure that uses a sequence of conditional statements to chose from among more than two alternatives; see the example program tomato.py
1) Traditionally, any symbol that can be represented in one byte, as in the ASCII character set; 2) More generally, the fundamental unit of any written natural language
A user-defined compound type. A class can also be though of as a template for the objects that are instances of it. See names.py for a class definition.
class attribute
A variable that is defined inside a class definition by outside any method. Class attributes are accessible from any method defined in the class and are shared by all instances of the class. See names.py for example.
In object-oriented programming, any portion of program code that uses the services of of an object by invoking its methods. See names.py for example of a client that is in the same file as the class whose services it is using.
To create a new object that has the same value as an existing object. Copying a reference to an object creates an alias by doesn't clone the object.
Any part of a computer program, usually in high-level language.
The process of turning an algorithm into a computer program.
Information in a program that is meant for other programmers and has no effect on the execution of the program.
To keep some code from being translated and executed without having to delete it by turning it into a comment . This is done with scaffolding and debugging code that might be needed again when the program is modified.
A complex program that translates a program written in a high-level language into the machine language that can be executed by a particular computer. A compiler translates the entire program at one time, saving it for later execution.
1) The ability to combine simple expressions and statements into compound expressions and statements in order to represent complex computations concisely; 2) using objects as instance variables of other objects
compound data type
A data type in which the values are made up of components, or elements, that are themselves (more elementary) values.
compound statement
A statement that consists of a header and a body; in Python, the header ends with a colon (:) and the body is indented relative to the header; in C/C++ and Java, a compound statement is any sequence of statements enclosed in braces, indented by convention
computer (computer system)
A machine that stores and manipulates data under the control of a changeable program.
computer science (CS)
The study of what can be computed. See Wikipedia article here.
To join two operands end-to-end. See names.py for an example.
A Boolean expression, usually used in decision and loop structures.
conditional execution
A decision structure that consists of only one branch, which is executed if the condition associated with the if is true. See the example program getA.py
conditional statement
A statement that controls the flow of execution depending on some condition.
The generic name for the main interactive input and output devices of a computer system. On a typical personal computer, the term console refers to the keyboard (input) and monitor (output).
A literal or a qualified variable that is given an initial value that cannot be changed during program execution. Python does not allow a variable to qualified as a constant, but C/C++ does, using the keyword const. Java does the same thing with final.
continue statement
A statement that causes the current iteration of a loop to end. The flow of execution goes to the top of the loop, evaluates the condition, and proceeds accordingly. Implemented in Python, C/C++ and Java with the keyword continue.
A method that creates (instantiates) a new object. In a Python class, it is the __init__ method. Some languages like C++ and Java allow a class to have multiple constructors to give the client flexibility in how objects are instantiated. See names.py.
control codes (escape character)
Special characters that do not print, but are used to control communication or position the cursor or printhead. In ASCII, control codes are assigned numbers 0-31.
control structure
Programming language statement that controls the execution of other statements; in structured programming languages, the three basic control structures are sequence (the default), selection (a decision structure), and repetition (a loop structure).
coordinate transformation
In graphical programming, the mathematical operation of changing a point or set of points from one coordinate system to a related one.
counted loop
A loop control structure written to iterate a specific number of times. Also called a counter-controlled loop or definite loop.
A variable, usually an integer type, used to count something. It is initialized to zero and then incremented.
A branch of computer science; the study of techniques for encoding information to keep it secure.
An invisible or blinking marker that keeps track of where the next character will be displayed on the console.
The values that a computer program manipulates.
data bus
The electronic circuit that connects RAM and CPU. Most modern computers are designed with 32-bit or 64-bit wide data buses. The width of the bus determines the amount of data that can be transferred in one machine cycle.
data structure
An organization of data arranged to facilitate its processing. Data structures can be sequence types like an array or list, or associative types like a dictionary or set.
data type
A set of values, often referred to as just type. Two basic types in most programming languages are integer and floating point types. The type of an item determines what values it can have and what operations it supports. Strongly-typed languages (C/C++ and Java) require variables to be declared to be of a specific type, which cannot be changed. Python allows variables to be reused to hold different types.
The process of finding and removing any of the three kinds of programming errors: syntax errors, semantic errors, and runtime errors.
decision structure (selection structure)
A control structure that allows different parts of a program to execute depending on the exact situation. Usually, decisions are controlled by Boolean expressions. In Python, C/C++ and Java, decision structures begin with the reserved word if.
decision table
A visual device to precisely and compactly present complicated logic. For example:
Total Purchased at least $5000? Y Y N N N N
Total Purchased at least $1000 but less than $5000 ? N N Y Y N N
Is account current ? Y N Y N Y N
Discount = 10% X          
Discount = 5%     X      
Discount = 2%         X  
Discount = 0%   X   X   X
In C/C++ and Java, a statement that defines a variable identifier and its type. In Python a variable's type is determined by the type of value assigned to it.
To decrease the value of a variable by one, or by a constant value.
A value to be used or an action to be taken when no other is specified.
definite loop
See counted loop.
A character used to separate tokens in a line so they can be parsed.
The process of developing a system that can solve some problem. Also the product of that process.
Describes a system or program whose future state or outcome can be exactly predicted; contrast with probabilistic.
development plan
A process for designing and writing a program. See:
    o prototype development
    o incremental development
    o pattern matching
    o top-down design
An associative type that is a collection of unordered key-value pairs that maps keys to values.
A system in which values are represented by discrete symbols. In digital computer systems, values are represented by patterns of binary data arranged in bytes. Compare to analog.
A named collection of files, usually maintained by the operating system. Also called a folder.
A string that appears in a function definition to document the function's interface.
dot notation
1) The syntax for calling a function in another module, specifying the module name followed by a dot (period) and the function name; 2) The syntax for invoking an object's method, specifying the object name followed by a dot and the method name (see names.py for an example).

One of the values in a compound data type.
empty string
An object that has the data type string, but does not contain any characters. In Python, C/C++ and Java, the literal empty string is written as a set of quotes with no characters between them: ""
1) To divide a large complex program into components (like functions) and isolate the components from each other (by using local variables, for example.); 2) To hide the details of a process inside an object.
To represent one set of values using another set of values by constructing a mapping between them.
The process of encoding information to keep it private.
end-of-file loop
A programming pattern used to read a file line-by-line.
Literally, "end-of-file". 1) An actual character encoded at the end of a file or keyed by the user to indicate the end of input; 2) The return value of a function indicating there is no more input to process from the specified source.
escape sequence
A way to write a control code as a literal, usually beginning with the backslash (\), followed by a printable character used to designate a nonprintable character, such as \n for newline (ASCII 10).
To simplify an expression by performing the operation specified in order to yield a single value
In GUI programming, an outside action such as a mouse click that causes something to happen in a program. Also used to describe the object that is created to encapsulate the information about the event.
A style of programming in which the program waits for events to happen and responds accordingly.
A runtime error. Exceptions happen when an event occurs that has no code to handle it, like a division by zero, or an attempt to open a file for input that does not exist. Also called signals in C.
exception handler
Code that is provided to be called when an exception occurs, rather than having the program crash. See the example program eggs2.py. Also called signal processing in C.
Object code that is ready to be loaded into memory and executed.
execute (execution)
To run a program or segment of a program; that is, to actually have a computer perform the machine code instructions into which the program has been translated.
A combination of one or more literals and variables joined by operators that represents a single value; the part of a program that produces data.
external storage
Any memory associated with a computer system that is not directly accessible in a machine cycle. External storage is typically implemented with hard drives, floppy drives, network drives, CDs or DVD drives and similar components. External storage is slower to access than main memory, but retains its contents without power (is non-volatile.
fetch-execute cycle (machine cycle)
The process a computer carries out to execute a machine code program; each cycle consists for four generic steps: 1) fetch the next instruction from RAM into the CPU; 2) decode the instruction; 3) execute the instruction; 4) store the result
A named entity, usually stored on a hard drive or other external storage that contains a stream of bytes.
A variable used to reflect the status of a binary condition. Also called a switch.
floating point
A data type for representing numbers with fractional values. Floating point types usually have larger ranges than can be represented by integer types, but are only approximations with a specified number of significant digits.
flow of execution
The order in which statements are executed during a program run; also called flow of control
A graphical depiction of the flow of execution in a program or algorithm.
format string
A string that begins with the % symbol and contains a sequence of printable characters and format specifiers that determine how values output should look. See the example lunitadal.py
fruitful function
A function that yields a return value. See lunitadal.py
A named sequence of statements that performs some useful operation. Functions may or may not take parameters and may or may not produce a result (return value).
function definition
A set of statements that creates a new function, specifying is name, parameters, and the statements it executes when called.

garbage collection
A process carried out by dynamic programming languages (e.g., Python, Lisp, Java), in which memory locations that contain values that are no longer in use are freed up so that they can store new values.
generalize (generalization)
To replace something unnecessarily specific (like a constant value) with something appropriately general (like a variable or parameter). Generalization makes code more versatile, more likely to be reused, and sometimes even easier to write.
The visual representation of values or objects using pixels.
graphical user interface (GUI)
Describes a class of programs whose interaction with the user involves heavy use of graphical components such as windows, menus, and buttons. Compare to text-based interface.
graphics window
A window on screen where graphics can be drawn.
1) To prevent a runtime error from terminating a program by "catching" it in an exception handler; 2) A reference to an object.
The physical components of a computer system.
The line of code that precedes the body of a compound statement, usually in function definitions or decision or loop structures.
Hello, world!
The ubiquitous first computing program. See examples:
    o hello.py
    o hello.c
    o Hello.java
Capable of containing more than a single data type at one time. Python lists, for example.
high-level language
A programming language like Python, Java, or C/C++ that is designed to be easy for humans to read and write.
1) A list of integers in which each element counts the number of times something occurs; 2) A bar-graph like graphical depiction of the above.
Capable of holding values of only a single types, such as arrays.

See Integrated Development Environment.
The name given to a program entity (variable, function, class, instance). Identifiers must follow the syntax rules for the programming language being used, and should comply with common programming conventions for that language, too. For example, in C, by syntax rules identifiers for variables must be 1-32 characters in length, consisting only of upper-and lower case alphabetic characters, digits, and the underscore symbol. By convention, identifiers for variables start in lowercase.
if statement
The way a decision structure is implemented in Python, C/C++, and Java.
import statement
A Java or Python statement that makes an external library module available for use within a program; in C and C++ the preprocessor directive #include is used for this purpose.
immutable type
A compound data type whose elements cannot be modified. Assignments to elements of immutable types cause an error.
To increase the value of a variable by one; more generally, to increase the value of a variable by a constant value.
incremental development
A program development plan intended to reduce debugging by adding and testing only a small amount of code at a time.
indefinite loop
A loop for which the number of iterations required is not necessarily known at the time the loop begins to execute, as opposed to a counted loop.
An integer expression used to select a member of a sequence type, such as a single character from a string.
Selecting a single item from a sequence type based on its relative position in the sequence. Usually used by specifying the sequence name and the index in square brackets: some_sequence[ x ], where x can be any integer expression.
infinite loop
A loop that does not terminate. See lh.py or eggs.py for deliberate use of an infinite loop.
infinite recursion
A function that calls itself recursively without ever reaching the base case. Eventually, an infinite recursion causes a runtime error.
Defining a new class as a specialized extension of another class.
To explicitly assign a value to a variable such as counters, accumulators, or flags before they are used in a computation or tested in a condition.
initialization method
See constructor.
Input, Process, Output (IPO)
A common programming pattern. The program prompts for input, processes it, and outputs a response.
A particular object of some class; a member of a set.
instance variable
A variable declared inside an object. Instance variables are accessible to all methods defined in the class from which the object was instantiated. Values of instance variables are often initialized by a constructor method of the class.
To create an instance (a new object) of some class by invoking its constructor; analogous to a variable declaration.
A data type for representing numbers with no fractional component. It uses a fixed number of bits (commonly 32) to represent an exact whole number. Different programming languages may allow different size integer types, which may be signed (non-negative and negative) or unsigned (magnitude only).
integer division
An operation that divides one integer by another and yields an integer result. Integer division yields only the whole number of times that the numerator is divisible by the denominator and discards any remainder (i.e., truncates the result).  See the example program eggs.py.
integer expression
An expression that evaluates to an integer value.
Integrated Development Environment (IDE)
A program for software developers that combines the functions of a text editor, interpreter/compiler and run-time facility to simplify coding and debugging. Examples include IDLE (for Python programming), Dev-C++ (for C/C++), and JCreator, jGrasp, and Net Beans (for Java).
iteration (iterate)
See loop.
interactive mode:
A way to use an interpreter (like Python) by typing a statement at a prompt, which will be immediately translated and executed.
1) The boundary between a system and its environment; 2) The specific syntax needed to call a function or invoke a method, including the name and descriptions of the arguments and return values
A computer program that simulates the behavior of a computer than understands a high-level language. It translates the lines of source code one-by-one and carries out the operations.
A problem too difficult to be solved in practice, usually because it would take too long.
A code that causes the computer to perform a specific operation, such as add two values or compare one value to another. Different computers are designed with different instruction sets, so a machine language program that works on one computer may not work on another.
To call a method.
To do multiple times. Each execution of a loop body is called an iteration.

1) In encryption, a special value that must be known to either encode or decode a message. 2) In the context of data collections, a way to look up a value in an associative data type, like a dictionary, where values are associated with keys for future access.
key-value pair
One of the items in a dictionary.
Having to do with string ordering. Lexicographic order is like alphabetical order, but based on the underlying numeric codes that represent the string's characters.
An external collection of useful functions or classes that can be imported and used in a program. For example, the Python math and string modules, the C Standard Library, or the C++ Standard Template Library (STL).
A program that combines one or more files containing object code  into a single file containing executable code. The linker resolves external references among the files, such as function calls. The output of a linker is a machine-code program ready to be loaded into memory and executed.
1) Generally, a sequence data structure that is kept in some order; 2) A Python data type for representing sequential collections. Lists are heterogeneous and can grow and shrink as needed. Items are accessed through subscripting.
A way of writing a specific value in a programming language, also called a constant. For example, 3 is an int literal and "Hello" is a string literal.
local variable
A variable defined inside a function. It may only be referred to within the function definition. See scope.
long int
1) Generally, an integer larger than can be held in the natural word size of a computer, often four bytes; 2) A Python data type that can represent indefinitely large (or small) integers.
loop (repetition structure)
A control structure for executing a part of a program multiple times.
loop and a half
A loop structure that has an exit somewhere in the midst of the loop body. In Python this is accomplished via a while True: ... break combination. (see lh.py)
loop index (loop variable)
A variable that is used to control a loop. In the statement: for i in range(n), i is being used as a loop index. See the sample program recurse.py
low-level language
A programming language that is designed to be easy for a computer to execute; also called machine language or assembly language.

machine code (object code)
A program in machine language.
machine language
The low-level (binary) instructions that a given CPU can execute.
An identifier that is replaced by specified sequence of text when encountered in a program. The macro may include one or more commands and parameters that can be replaced by arguments. See the example program macro.c
main memory (RAM)
The place where all data and program instructions that the CPU is currently working on reside. Also known as random access memory (RAM). Organized into addressable bytes, RAM can be accessed in a single machine cycle. RAM is faster to access than external storage, but requires power to retain its contents (is volatile).
manipulator method
A method that computes new data. Compare with accessor method and mutator method. See names.py for an example.
A general association between keys and values. Python dictionaries implement a mapping.
A notation used to describe the syntax of a computer language.
A function defined inside a class. Objects of that class are manipulated by invoking their methods.
mixed-type expression
An expression involving more than one data type. Usually used in the context of combing integer and floating point types in numeric computations.
Generally, any relatively independent part of a program. In Python, the term is also used to mean a file containing code that can be imported and executed.
module hierarchy chart
A diagram showing the functional structure of a program. A line between two modules shows that the one above uses the one below to accomplish its task.
modulus operator
An operator, denoted with a percent sign (%), that works on integers and yields the remainder when one number is divided by another; for example: 17 % 5 yields 2. Also see the example program eggs.py
mutable type
A compound data type whose elements can be assigned new values.
mutator method
A method that changes the state of an object (i.e., one that modifies one or more of the instance variables). These are usually given the prefix set. See names.py
natural language
A language that has evolved over time to allow for general communication, without specific direction.
The process of placing one control structure inside of another. Loops and decisions may be arbitrarily nested.
A control code that marks the division between lines in a file or a multiline string. (ASCII 10, written in code as '\n'.)
Logical negation; a unary Boolean operator that reverses the truth value of a Boolean expression. In C/C++ and Java, it is implemented with the symbol !. Its truth table is:
p not p
False True
True False

1) A program entity that has some data (called instance variables or data members) and a set of operations (called methods or member functions) to manipulate that data; the basis of object-oriented programming; 2) A thing to which a variable can refer.
object code
The output of the compiler after it translates a high-level language program.
Design or programming that focuses on constructing classes that model the real world, and includes the characteristics of polymorphism and inheritance.
The process of associating a file in secondary memory with a variable in a program through which the file can be manipulated.
One of the values an operator acts on.
A special symbol that represents a simple computation like addition, multiplication, or string concatenation used to combine expressions into more complex expressions.
operator overloading
Extending built-in operators (+, -, *, etc.) so that they work with user-defined types.
A binary Boolean operator that returns true when either or both operands are true. In C/C++ and Java, it is implemented with the symbol ||. It's truth table is:
p q p or q
False False False
False True True
True False True
True True True
A numerical result that is too large to be represented in a numerical format; depending on the implementation, may or may not cause a runtime error.
1) To replace a default. Examples include replacing a default parameter with a particular argument, or replacing a default method by providing a new method with the same name. 2) When a subclass changes the behavior of an inherited method.
An identifier used inside a function to refer to the value passed as an argument; parameters are declared in the function header. See lunitadal.py
To examine a program and analyze the syntactic structure so that it can be interpreted or compiled.
pass by value
A parameter passing technique in which a copies of arguments are passed to a function or method when it is called, so the function or method can manipulate these values without affecting variables in the calling function.
pass by reference
A parameter passing technique used in some computer languages (like C and C++) that allows the address of a variable to be used as an argument, so the called function can directly modify data local to the calling function.
A sequence of directory names that specifies the exact location of a file.
pattern matching
A program development plan that involves identifying a familiar computation pattern (like IPO) and copying the solution to a similar problem with minor modification.
Short for "picture element." A single dot on a graphical display. See resolution.
Literally, "many forms." In object-oriented programming, the ability for a particular line of code to be implemented by different methods depending on the data type of the object involved.
The ability to run a program unmodified on various different systems.
post-test loop
A loop construct where the loop condition is not tested until after the loop body has been executed, thereby ensuring that the loop body is executed at least once. Implemented in C/C++ and Java with the keyword do.
A requirement that should be satisfied by a function before it ends; see precondition.
The order in which expressions involving multiple operators and operands are evaluated. Referred to collectively as rules of precedence. Here is the operator precedence for Python, C, and Java
A requirement that should be satisfied by the caller of a function; see postcondition.
pre-test loop
A loop construct where the loop condition is tested before executing the body of the loop; if the condition is false when the loop is encountered the first time, the body of the loop is not executed at all. Implemented in Python, C/C++ and Java with the keyword while.
priming read
In a sentinel loop, a read before the loop condition is tested.
Describes a system whose future state cannot be exactly predicted, although the probabilities of different possible states are known. These systems can be simulated by programs using pseudorandom techniques. Contrast with deterministic.
The specification of an unknown value or set of unknown values, usually with the intent of developing an algorithm that can generate the required value(s), thereby solving the problem.
problem solving
The process of formulating a problem, finding an algorithmic solution, and then expressing that solution.
A set of instructions that specifies a computation.
The process of creating a computer program to solve some problem.
programming environment
A computer program that provides facilities to make programming easier. IDLE (in the standard Python distribution) is an example of a simple programming environment. Others are JCreator and NetBeans for Java, and Dev-C++ for C/C++. Also often referred to as Integrated Programming Environments (IDEs).
programming language
A notation for writing computer programs. Usually used to refer to high-level languages such as Python, Java, and C++.
A visual cue that tells the user to input data.
1) A preliminary, usually simplified, model of a system. 2) The interface of a function or method that specifies its name, parameter(s), and return value; also called a signature.
prototype development
A way of developing programs starting with a prototype and gradually testing and improving it. Also called spiral design. See also incremental development.
Writing down algorithms using precise natural language, instead of a computer language.
Sequences of numbers generated by computer algorithms and used to simulate random events.
pure function
A function that does not modify any of the objects it receives as parameters, nor perform any input or output. Most pure functions are fruitful.

A term used to describe computer input. A program is said to read information from the keyboard or file.
A collection of information about a single individual or object, often represented as a line in a file with delimiter-separated fields.
The process of calling the function that is currently executing; a recursive function is one written to call itself. See recurse.py
An identifier that represents the address of an object, allowing these objects to be manipulated indirectly (i.e. through it's address rather than its name). Also called pointers in C or handles.
relational operator (comparison operator)
One of the operators that compares two values and returns true or false. In Python (and C/C++ and Java) the relational operators are: >, <, >=, <=, ==, and !=.
reserved word (keyword)
An token that is part of the built-in syntax of a programming language.
The number of pixels on a graphics screen or window. Usually expressed as horizontal by vertical (e.g., 640x480 or 800x600).
return value
The result of a function or method. If a function call is used as an expression, the return value is the value of the expression. Functions or methods that have no return value should not be used in expressions.
Short for red, green, blue monitor, a monitor that requires separate signals for each of the three colors. Also, a color that is specified by its red, green, and blue components, each on a scale 0-255.
runtime error
An error that does not occur until the program has started to execute but that prevents the program from running; also called an exception, or, informally, a crash or abend.

Code that is used during program development but is not part of the final version and is either removed or commented-out.
A program stored in a file. Usually, one that will be executed with an interpreter.
script mode
A way of using an interpreter (like Python) to read and execute statements in a script stored in a file
That region of a program from which an identifier can be referenced. For example, a variable declared inside a function or method is said to have local scope, while one declared inside a class but outside its methods has class scope.
The value used to start generation of a pseudorandom sequence.
What a statement or program means, as opposed to its syntax.
semantic error
An error in a program that makes it do something other than what the programmer intended; also called a logic error
A special value used to signal the end of a series of inputs, usually from the keyboard.
sentinel loop
A type of indefinite loop that continues until a special value a sentinel is encountered. See example program sentinel.py
sequence type
A compound data type that is arranged in some linear order, whose elements can be accessed by indexing. Often shortened to just sequence. Examples are strings and arrays.
significant digits (significant figures)
The number of digits that are accurate in a floating point type. In C/C++ for example, most implementations guarantee a floating point type double to have 15 significant decimal digits (that is, the 15 left-most digits, not counting leading zeros, are accurate).
A program designed to abstractly mimic some real-world process, usually employing pseudorandom numbers.
simultaneous assignment
In Python, a statement that allows multiple variable to be assigned in a single step. For example, x,y = y,x swaps the value of two variables; not valid in C/C++ or Java.
Extracting a subsequence of a string, list, or other sequence type.
Computer programs.
source code
The (human-readable) text of a program in a high-level language.
stack diagram
A graphical representation of a stack of functions, their variables, and the values to which they refer.
state diagram
A graphical representation of a set of variables and the values to which they refer.
A section of code that represents a complete command or action; in an interpreted language like Python, a piece of code that can be interpreted and executed; in C, C++, and Java, statements are terminated with semicolons
A data type for representing a sequence of characters (text).
structured programming
A style of programming that uses only sequence, decision, and loop structures to control the flow of execution. Also called goto-less programming.
A sequence of contiguous characters inside a string. See slicing.
A class which is being inherited from.
symbolic constant
An identifier that is replaced in a program, by specific text before it is translated. See the example program macro.c
The form (grammar and punctuation) of a programming language.
syntax error
An error in a program that makes it impossible to parse (and therefore impossible to interpret or compile).
A collection of interdependent components organized to perform a function that interacts with and is separated from its environment by a definable interface.
A control code that causes the cursor or printhead to move to the next tab stop on the current line. (ASCII  9, and written in code as '\t'.) See recurse.py
temporary variable
A variable used to store an intermediate value in a complex calculation.
Human-readable symbols (characters) and groupings of those symbols (words, paragraphs, etc.)
text file
A file in which the bytes represent printable characters organized into lines separated by newline characters.
text-based interface
Describes a class of programs whose interaction with the user is confined to text input and output. Compare to GUI.
One of the basic elements of the syntactic structure of a program, analogous to a word in a natural language.
top-down design
The process of building a system by starting with a very high-level algorithm that describes a solution in terms of subprograms. Each subprogram is then designed in turn. Also called step-wise refinement or functional decomposition.
A list of the functions that are executing, printed when a runtime error occurs.
To iterate through a sequence, performing a similar operation on each.
truth table
A table showing the value of a Boolean expression for all possible combinations of values of its subexpressions.
1) A Python sequence that acts like an immutable list; 2) In a relational database system, a record (row)
type conversion
An explicit statement that takes a value of one type and computes a corresponding value of another type; also called casting. See example program eggs.py
type coercion
A type conversion that happens automatically; for example, in a mixed expression of integers and floating-point values, the integers are "promoted" to floating-points before the expression is evaluated

An operator that acts on a single operand.
A 16-bit alternative to ASCII that encodes characters from all of the world's written languages. Unicode is designed to be ASCII compatible. Read lots more about it here.
unit testing
Trying out a component of a program independent of other pieces.
A number, string, or other user-defined item that can be stored in a variable or computed in an expression.
A space reserved in memory to hold a value, that can be referenced through an identifier. The value of a variable can be changed through assignment.
Von Newmann architecture
The basic hardware organization of the modern, stored-program computer, in which data and instructions are held in the same memory structure.


Any of the characters that move the cursor without displaying (or printing) visible characters, including tab and newline.
A user interface component in a GUI, like a dialog box or button.
1) The natural data size of a computer, usually measured in bits, and usually the same as the width of the data bus. 2) The smallest meaningful unit in a natural language.

The process of outputting information from computer memory. For example, data is said to be written to a file or to the console.

   Updated 22 August 2013