accessor method: A method that accesses an object without changing it.
ACK: Acknowledgement message; the message sent from B to A when B correctly receives a packet.
actual parameter: The value supplied for a formal parameter in a method call.
address: A unique integer identifier associated with a memory cell.
algorithm: A well-ordered set of unambiguous, effectively computable instructions that, when executed, produces a result and halts in a finite amount of time.
API: Application Programming Interface; a code library for building programs.
argument: An actual parameter in a method call, or one of the values combined by a mathematical or logical operator.
Arithmetic/Logic Unit (ALU): The subsystem in the Von Neumann architecture that performs mathematical and logical operations.
ARQ Algorithm: Automatic repeat request algorithm; the basis for data link protocols in which A waits for an ACK from B and resends the message if it does not receive one.
ASCII: American Standard Code for Information Interchange; an 8-bit standard for representing text.
assembly language: A low-level programming language that uses op code mnemonics instead of machine language instructions.
binary: A base-2 numbering system.
bit: Binary digits; the two digits 0 and 1.
boolean: A type with two possible values, true and false.
boolean expression: An expression that evaluates to either true or false.
boolean operator: An operator applied to boolean values, such as AND, OR, and NOT.
byte: 8 bits.
bytecode: Low-level code found in class files created by a compiler.
cache memory: A small, high-speed memory unit where the items most likely to be needed are kept.
cast: Converting a value from one type to another.
Church-Turing Thesis: If there exists an algorithm for solving a symbolic manipulation problem, then there exists a Turing machine for solving that problem.
class: A programmer-defined data type.
compiler: A piece of system software that translates a high-level programming language into machine language.
computability: That which can be done by symbol manipulation algorithms.
computer network: Computers connected together for the purpose of exchanging resources and information.
computer science: The study of algorithms, including their formal and mathematical properties, their hardware realizations, their linguistic realizations, and their applications.
computing agent: An abstract concept representing any object capable of understanding and executing instructions.
constructor: A method that initializes a new object.
control unit: The subsystem in the Von Neumann architecture that fetches, decodes, and executes instructions from memory by issuing commands to the ALU, memory, and I/O controllers.
DASD: Direct access storage device; a type of mass storage device in which every unit of information has a unique address but the time needed to access it depends on its physical location and the current state of the device. Examples: hard disks, floppy disks, CDs, DVDs.
DNS: Domain Name System; the Internet application that converts from a host name to an IP address.
ethernet: The most widely used broadband link.
encapsulation: The hiding of the details of how a task is implemented.
explicit parameter: A parameter of a method other than the object on which it is invoked; the parameter(s) inside the parentheses.
flops: Floating-point operations per second; a measure of a computer's processing speed.
formal parameter: A variable in a method definition.
gigabyte: 2^30 bytes; approximately 1 billion bytes.
Halting Problem: Given any collection of Turing machine instructions together with any input, decide whether the Turing machine will halt.
HTTP: Hypertext transfer protocol; the most common format for information contained in Web pages.
I/0 buffer: Memory in the I/O controller.
I/O controller: A device whose responsibility is to handle the details of input/output and compensate for speed differences between I/O devices and the rest of the computer.
IDE: Integrated development environment; a programming environment that includes an editor, compiler, and debugger.
implicit parameter: The object on which a method is invoked.
interface (in Java): A type with no instance variables, only abstract methods and constants.
inheritance (in Java): The "is a" relationship between a more general superclass and a more specialized subclass.
initialize: Creating a variable and setting it to a value.
instance: A specific object whose type is a certain class.
instance variable: A variable defined in a class for which each object of that class has its own value.
instantiation: Construction of an object.
Internet Protocol: IP, the network layer in the Internet.
instruction register: A register in the control unit that holds a copy of the instruction to be executed.
instruction set: The set of all operations that can be executed by a processor.
kilobyte: 2^10 = 1024 bytes.
LAN: Local area network; a network that connects hardware devices such as computers, printers, and storage devices that are all in close proximity.
local variable: A variable whose scope is a block, i.e. one that lives inside a set of curly braces.
logic gate: An electronic device that takes a set of binary inputs and produces a binary output.
loop: A sequence of instructions that is executed repeatedly.
MAC: Medium access control; the protocols in the data link layer that determine how to proceed when multiple nodes want to send messages on a shared line at the same time.
machine language: Instructions that can be decoded and executed by the control unit.
mass storage: Devices that store information in a nonvolatile format.
megabyte: 2^20 bytes; approximately 1 million bytes.
memory: The functional unit of a computer that stores and retrieves the instructions and the data being executed.
Memory Address Register (MAR): The register that holds the address of the cell to be fetched or stored.
Memory Data Register (MDR): The register that holds the data value being fetched or stored.
method: A sequence of statements that had a name, may have formal parameters, and may return a value.
mutator method: A method that changes the state of an object.
object: An instance of a class.
object reference: A value that denotes the location of an object in memory, i.e. a variable whose type is a class.
object-oriented programming: Programming by designing objects, their properties, and their relationships.
op code: A code in machine language.
operating system: The piece of system software that waits for requests and activates other programs to service these requests.
overloading a method: Giving more than one meaning to a method name.
overriding a method: Redefining a method in a subclass.
parameter: A piece of information that is specified when a method is called.
parameter passing: Specifying expressions for the actual parameter values when calling a method.
portability: A property of high-level programming languages that means they are not machine specific.
primitive data type: boolean, char, or one of the 6 number types, byte, short, int, long, float, and double.
protocol: A mutually agreed upon set of rules, conventions, and agreements for the orderly exchange of information.
protocol stack: The hierarchy of separate, independent layers of protocols that govern the operation of the Internet.
pseudocode: English language constructs that resemble programming languages and are used to represent algorithms.
Random Access Memory: A memory unit with uniquely addressable cells that are the minimum unit of access and can all be reached in an equal amount of time.
register: The components of memory used to implements the fetch and store operations.
SASD: Sequential access storage device; a storage device that does not require all units of data be identifiable by unique addresses. Instead, it searches for data sequentially.
scope: The part of a program in which a variable is defined.
software: The stored programs used by a computer.
static variable: A variable defined in a class that has only one value for the whole class, which can be accessed and changed by any method of that class.
static method: A method with no implicit parameter.
stored program concept: You can store programs in the same way as you store data.
syntax: Rules that define how to form instructions in a particular programming language.
terabyte: 2^40 bytes; approximately 1 trillion bytes.
time complexity: A function relating the input size to the number of steps required to complete an algorithm.
transistor: A solid-state device that switches between an ON state and an OFF state electronically.
TCP: Transport Control Protocol; the primary transport protocol on the Internet, which creates an error-free link between any two nodes in a network.
truth table: A table showing all the possible inputs to a boolean expression and the corresponding outputs.
Turing machine: A model of a computing agent consisting of an infinitely long tape divided into cells, a finite alphabet, a finite set of states, and a set of instructions.
Von Neumann architecture: The theoretical model of a computer system that nearly all modern computers are organized by, based on three main concepts: Four major subsystems (memory, input/output, ALU, and control unit), the stored program concept, and sequential execution of instructions.
white space: Space, tab, and newline characters.
WAN: Wide are network; a network that connects devices that are not in close proximity.