TEXES 8-12 CS 241 Vocabulary 2018

Algorithm

procedure or formula for solving a problem and finding an exact example, as opposed to a heuristic

algorithm analysis

A general process that determines the amount of resources (such as time and storage) necessary to execute any particular algorithm, most commonly using Big O notation, such as O(N) or O(N^2)

Arithmetic operator

+ for plus, - for minus, * for multiplication, / for division, and % for modulus

Assignment operator

The operator used in a programming language that gives a value to a variable or constant

associative law

The law in mathematics and Boolean algebra that allows regrouping of parentheses to achieve the same result, such as (A + B) + C = A + (B + C)

Big O notation

A notation system used to classify algorithms (see algorithm analysis). The primary notation levels are: O(1), O(log N), O(N), O(N log N), and O(N^2)

commutative law

This is the Law that says you can swap numbers around and still get the same answer when you add or multiply. It also works with AND, OR, and XOR logic operators

complexity

In computing, complexity is defined in terms of the number of steps it takes to perform an algorithm in relation to the amount of data involved, or in terms of how much memory is required during the processing of the data. It is generally measured by the Order of Magnitude system, often called Big O.

constant run time

An algorithm is said to be constant time (also written as O(1) time) the process does not depend on the size of the input, such as accessing any value of a contiguous array, a process that only involves one step, regardless of the size of the array.

decimal

There are two common meanings for this word. One describes a real number that has a whole part and a fractional part, like 3.14.

decrement

A computer operation that decreases the value of a variable by 1, such as x--

distributive law

In mathematics, the distributive law takes an expression like 5(x + 7) and distributes the outside term across the two inside terms, producing 5x + 35. The same law applies in Boolean logic, with AND distributing over OR, but logic also allows OR to be distributed over AND.

expression

A set of operands and operations that produce a mathematics based or logic based result. Contenation, or joining of strings, is also considered an expression.

float

A data type in programming that contains a floating point value, more commonly referred to as a decimal value, like 1.5 or 3.14

floating point value

A decimal value, such as 1.5 or 3.14.

Huffman encoding

A type of compression algorithm used in programming.

increment

A computer operation that increases the value of a variable by 1, such as x++

infix

The type of expression notation where a binary operator is in between the two operands, requiring the use of parenthese to indicate operations outside the normal operator precedence, such as needing a subtraction operation to occur before a multiplication. See prefix and postfix.

integer

A whole number value, positive or negative

integer division

A division process that results in a whole number answer, discarding or truncating any fractional remainder.

integer modulus

A division process that results in a whole number answer representing the remainder of the division process, discarding the actual answer.

linear run time

Linear runtime is a level of algorithm complexity which requires the number of steps directly proportional to the size of the data structure in order to process, such as outputting all of the elements of an array, or performing a linear search on an array of values.

logarithmic run time

Logarithmic run time is a level of complexity which requires the number of steps roughly equivalent to the log value (usually base 2) of the size of the data set. For example, for a set of 1000 values, the log base 2 value of 100 is about 10, which means it would take roughly 10 steps for an algorithm to perform its task on 1000 items in a data structure. The most common log based algorithm is the binary search.

number bases

Mathematical systems used to express values using a certain number of symbols, such as base ten that uses the digits 0-9, base 2 using only 0 and 1, base 8 using 0-7, and base 16 using 0-9 and A-F.

operator

A symbol used in mathematical and logical expressions, such as the plus (+) or division (/) sign.

order of magnitude

In the analysis process for algorithms, the order of magnitude of an algorithm is roughly the number of steps, or amount of memory it takes in order for the algorithm to execute, most often expressed using the Big O notation system, using O(1), O(N), and O(N2) as the primary levels of complexity.

Order of Operation

The order of precedence of all of the operators in a computational system, such as mathematics (PEMDAS) or logic (NAXO)

postfix

Often called "reverse Polish notation", this is an expression system where by operators follow the operands, and is one used by some engineering calculators, such as some made by Hewlett Packard and often used in calculator competitions, noted for their ease and speed of use. An example of a postfix expressions is 3 4 5
+, which is equivalent to 3 + 4
5, the infix version of the expression.

precision limits

This term refers to the limits to which numerical values can be stored in computer memory. For integers, the limits are the range of values that can be stored. For floating point values, the limits are the degree to which a very large or very small value can be accurately stored and expressed, beyond which precision errors begin to occur.

prefix

Often called "Polish notation", this is an expression system where by operators precede the operands. An example of a prefix expressions is + 3
4 5, which is equivalent to 3 + 4
5, the infix version of the expression.

quadratic run time

A level of complexity of an algorithm that is characterized by a nested loop process, taking roughly N2 steps to complete, so for an array size of 10 items, it would take roughly 100 steps to complete the process..

Short

An integer data type in some programming languages that uses half as much memory storage as an int. In Java, a short uses 16 bits of storage.

shortcut operators

Operators that combine the operation and assignment process into one operation, such as +=, -=, *= or /=.

Ternary operators

The ?: operator in some languages is a shortcut way of doing an if else situation, with the combined advantage of immediately assigning or outputting the result. For example, to say if(x<5) num = 6; else num = 7;, you could say num = x<5?6:7;

unary

An operator in mathematics or in logic which works on only one operand, such as the negative, positive, or complement operators

Is-a" relationship

The concept of inheritance in OOP, where one class is derived from another class. For instance, a Student class is derived from a Person class, therefore a Student "is a" Person.

Abstraction

In object-oriented programming, abstraction, or "information hiding" is a term associated with encapsulation, one of three central principles (along with polymorphism and inheritance). Through the process of abstraction, a programmer hides all but the relevant data about an object in order to reduce complexity and increase efficiency.

Absorption law

In Boolean Algebra, the identity where a "smaller" term that also exists in "larger" terms "absorbs" the larger terms

Access modifier

Access modifiers (or access specifiers) are keywords in object-oriented languages that set the accessibility of classes, methods, and other members. The two most common are private and public, where private limits access only to members of the class, and public grants open access.

Accessor method

Method in a Java class that allows and controls access to private data of objects

actual parameter

Value or variable used as a parameter in a method call.

black box

A device, system or object in computing which can be viewed in terms of its inputs and outputs, without requiring any knowledge of its internal workings

call (method, procedure, function)

A programming statement used to execute a previously defined method, function, or procedure, often sending outside information into the process using parameters

code

A term that refers to the source code, or set of instructions found in a computer program.

Code block

A code block is a section of code in a computer program which is grouped together. Blocks consist of one or more declarations and statements

Command-line argument

A command-line argument or parameter is an item of information provided to a program when it is started from a command line. In Java, any command-line argument provided at execution is automatically received the String [] args array indicated in the main method parameter list.

comments

Single lines or blocks of lines intended for documentation inside a program that describe a section of code and is not "seen" by the compiler

composition

In object-oriented programming, this is the process of combining simpler data types into more complex data types. For example in defining a Car class, it would might mad up of a BodyType class, an Engine class, and a TransmissionType class, among many other possible items.

Concatenation

The process of joining two strings of characters into a larger string of characters, an operation often indicate by the plus (+) sign.

Constants

A memory location in programming that is unchangeable during the execution of the program once it has been given a value, unlike a variable which can be changed.

Declaration

A declaration specifies properties of an identifier of a function, procedure, method, variable, constant, or class, but can also be used for other entities such as enumerations and type definitions.

default

For variables in a class, a default value is one which is automatically assigned, like zero for numeric variables, null for objects, false for boolean. It is also a command in a switch case statement that serves as the option at the end of the statement which is executed when none of the other cases matched.

Default constructor

This is the constructor either supplied by the compiler where all instance variables received default values, or one defined explicitly in the class that receives no parameters and assigns beginning values for each instance variable.

documentation

The process of including comments inside of a program that are non-executable, but help explain a section of code to help someone trying to learn about the program more quickly understand what it does.

Dynamic Method Dispatch

Dynamic dispatch is the process of selecting which implementation of a polymorphic operation (method or function) to call at run time.

Encapsulation

One of the three primary aspects of object oriented programming that incorporates related data items and methods into a class definition, including instance variables, constructors, accessor and modifer methods.

Escape sequences

A special character sequence included in a string that indicates a special event, such as a line feed (\n) or tab(\t), or even producing a special control characters like the \ or " character, normally used for other functions.

executable code

The code that is a result of the compile process translated from source code.

formal parameter

This is the parameter that is listed in a method header that receives a value from a method or procedure call, and is only in scope during the execution of the method.

formatted

An output statement is considered "formatted" when special commands or expressions are used to control the output, such as escaped sequences, or the use of format specifiers in a printf type statement, such as System.out.printf("%s %4.2f\n","Hello",3.14);

function

A function in programming is most often a procedure or method that performs a calculation and returns a value of some sort.

functional programming

Functional programming, as opposed to imperative programming, is a pure functional approach to problem solving. Functional programming is a form of declarative programming. Languages that fit this description include Scheme, Haskell, LISP, Racket, and F#.

global variable

A variable in a program that is declared outside the scope of any method and is visible by every method or process within the class.

Hierarchy

In programming, hierarchy indicates the levels and structure of abstraction that indicate the overall structure of a program or class design, with different levels indicating various processes or interfaces are known, but the implementation may be hidden.

Immutable

In programming, an object is immutable when its current value cannot be changed or altered in its current memory location. A String object in Java is immutable, but a primitive value is not, and can be changed in its current memory location.

imperative programming

Imperative programming, as opposed to functional programming, is a paradigm in programming that is often referrred to as procedural, where a developer writes code that describes in exacting detail the steps that the computer must take to accomplish the goal. Most of the mainstream programming languages, such as C++, Java, and Python, are considered imperative languages.

information hiding

The process of encapsulation and abstraction in object oriented programming that provides a programming interface to a process, but does not reveal the actual workings of the process. For example, how the systems of a car work is not necessary to know about to simply drive the car. You just need to know how to work the driving mechanisms, such as the pedals the steering column functions.

inheritance

One of the three pillars of object oriented programming that allows for classes to be defined based on previously defined and developed classes, inheriting all of the characteristics of the inherited class, and then expanding on those features.

Initialization

The process of assigning a beginning value to a variable or constant in a computer program.

late binding

Late binding, or dynamic binding, is a computer programming mechanism in which the method being called upon an object is looked up by name at runtime

Literals

Literals are values in programming statements that are explicitly stated, such as number values or character based values, as opposed to variables. For example, in the output statement, System.out.println("Hello");, the string "Hello" is a literal. However, if that value is assigned to a String called word, and then output, such as System.out.println(word);, then the output statement contains a variable, not a literal.

local variable

A variable that can be seen only within the confines of its block of code, such as in a method or in a loop, as opposed to a global variable.

meaningful identifiers

Names used in programming for classes, methods, variables, and constants that help describe the general purpose and function associated with that item.

Method

A process in Java that can be either a procedure (void method) that performs an action of some sort, or a function (return method) that returns a calculated value.

method library

A collection of predefined methods that can be used to build up a program.

modifier

A method (also called a mutator) that belongs to an object that allows public access to the private data of that object to make changes to that data, most often starting with the prefix "set...", like setName, or setSize.

module

Each of a set of standardized parts, independent units, or previously defined functions that can be used to construct a more complex program.

Mutator method

See modifier method

Overloading methods

The polymorphic feature of object oriented programming where constructors and methods are named the same but operate on different input parameters in order to perform the same task.

Overriding methods

The polymorphic feature of object oriented programming where methods inherited from parent classes, such as the toString method from the Object class, are redefined and customized to better fit the purpose of the current class.

parallel processing

A mode of computer operation in which a process is split into parts that execute simultaneously on different processors attached to the same computer.

parameter

A variable located inside the parentheses of a method call or method header.

parameter passing

The process in the source code of a program whereby data is passed from one section of the program to another, using method calls that send actual parameters and method definitions that receive the passed data using formal parameters.

pointer

In programming, a pointer is a type of variable which refers to, or contains the memory address of, an object located elsewhere in memory, as opposed to a primitive variable which actually contains the value directly.

Polymorphism

This term literally means in Greek, "many forms", and is key element of object oriented programming, where methods can be overloaded or overridden as needed and desired.

postcondition

Part of the documentation process in programming, this is often listed in describing the end result expected from a method or function in the program.

precondition

Part of the documentation process in programming, this is often listed in describing the expected state prior to the execution of a method or function in the program, in order for that method to properly execute. For example, the precondition for a binary search is the list provided is in natural ascending order.

procedure

A programming module that performs a task of some sort, like outputting the contents of a data structure, or performing a sort on an array.

pseudorandom

A pseudorandom process is a process that appears to be random but is not truly random.

random number generator

A random number generator (RNG) is a computational or physical device designed to generate a sequence of numbers or symbols that lack any pattern

random seed

A random seed (or seed state, or just seed) is a number (or vector) used to initialize a pseudorandom number generator.

Scope

The scope of an identifier is the region of a program source within which it represents a certain thing.

sequential processing

The basic control structure in programming where commands are executed one after another, in the order in which they are listed.

shift operators

Bitwise operators in programming which shift the binary bits of a value either to the left or to the right.

source code

A text listing of commands in a high level programming language to be compiled, interpreted or assembled into an executable computer program.

Static method

Static methods belong to all objects in a class and can be called independent of an object instance.

Static modifier

The reserved word in programming that indicates that a method or variable is a class method or variable, independent of any object instance.

Static variable

A variable in a class definition that is independent of any object of the class, but that can be used by all of the objects.

string

A row of characters combined together to make a word, sentence, or other text based value.

String methods

Methods that belong to the String class that act on the string, such as length(), substring(), indexOf(), charAt(), etc.

switch statements (case, switch, and default)

A conditional control structure in programming that functions as a multi-step if else statement, where several cases are stated and examined during execution to seek a match, and then a command is executed when a match is found.

tree topology

A tree is a widely used abstract data type (ADT) or data structureimplementing this ADT that simulates a hierarchical tree structure, with a root value and subtrees of children with a parent node, represented as a set of linked nodes.

Type casting

The process of temporarily forcing a variable of one type of data to behave like another one.

variable

A memory location in programming that is changeable during the execution of the program, unlike a constant which cannot be changed.

Array

A collection of similar data items in a program, such as an array of integers

Array of arrays

A collection of similar arrays in a program, such as an array and array of integers

index value

A value indicating the position of an element inside an array data structure

pass by reference

When a parameter is passed by reference, the memory location originally referred to by the actual parameter is passed to the formal parameter, such that any changes made to the object by the formal parameter also affect the original actual parameter.

pass by value

When a parameter is passed by value, any changes made to the formal parameter do NOT affect the actual parameter.

swap

The process in sort routines of exchanging two values in an array, using a temporary variable, taking three steps to execute.

Two-dimensional array

An array of values characterized by rows and columns, arranged in a grid format.

Child class

A class in object oriented programming that inherits the characteristics of a parent class.

children

The term used in trees to indicate a node that extends from another node, such as left child and right child in a binary tree

Class

The definition of an object in OOP, describing the type of data owned by the object, as well as methods that act on that data.

Class method

A process in a class definition that acts on the data that belongs to that class

Class variable

A variable that belongs to the class, and is not specific to any particular object, indicated by the word "static", of which only a single copy exists, regardless of how many instances of the class exist

construct

The process of instantiating (bringing into existence) an object based on a class definition.

Constructor

A method in a class definition whose sole responsibility is to construct a new object. Classes can have many versions of constructors, a key feature of polymorphism.

Driver class

In a programming project, this is the class that contains the method where program execution begins, such as the main method in Java.

Instantiate

In object oriented programming, this is the process of bringing into existence an object defined by a class, in Java initiated by the term "new", which calls a constructor appropriate for that object.

Nested class

A nested class is a member of its enclosing class. Non-static nested classes (inner classes) have access to other members of the enclosing class, even if they are declared private.

object

A programming entity that encapsulates data and related methods.

Object class

The name of the Java class that is the "mother" of all objects. All other Java class automatically inherit the Object class as the top-level parent class in the hierarchy. This class provides basic methods such as the toString, hashCode, and equals methods.

object code

A low-level language easily understood and executed by the computer, the result of a translation process using a compiler or interpreter.

object oriented

Object-oriented programming (OOP) is a programming language model organized around objects rather than "actions" and data rather than logic.

Parent class

The parent class is the super class in a class hierarchy inheritance system. In Java, the Object class is the ultimate parent class.

Scanner

A class in Java that facilitates input from the keyboard or files.

String object

An object in programming that references a String

Subclass

A class whose definition inherits the characteristics of another class, called the parent class or super class.

Superclass

The class whose characteristics are inherited by another class that inherits it, called the sub class

aggregate data types

Any type of data that can be referenced as a single entity, and yet consists of more than one piece of data, like strings, arrays, classes, and other complex structures

casting

A process in computer programming where the data type of a variable is temporarily transformed into a different data type, such as casting a decimal value as an integer

character (char)

A data type in programming that contains a symbol, letter, or digit, like 'A', 'b', '5', or '#'

data type

A classification identifying one of various types of data, such as real, integer or Boolean, that determines the possible values for that type

Lexicographical order

The natural order in which words are alphabetized.

linear data structure

A programming data structure that occupies contiguous memory, such as an array of values.

non-linear data structure

A data structure that does not occupy contiguous memory, such as a linked list, graph, or tree.

Primitive data types

These are data types in programming that literally contain the values in memory, as opposed to objects which contain memory locations of the objects to which they refer.

Single-dimensional array

See Linear data structure

decision diamond

This is the shape used in flowcharts that indicates a decision made in a program where an input situation is presented and the result is either true or false.

flowchart

A visual organizer system in programming used to indicate the flow of a program, using procedure blocks, decision diamonds and arrows.

incremental design

A program design methodology that allows the system developer to define the system software in convenient stages.

modular programming

Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.

procedure box

A symbol used in flowcharting that represents a process or event that occurs within the flow of the program.

spiral design

The spiral model is a risk-driven process model generator for software projects. Based on the unique risk patterns of a given project, the spiral model guides a team to adopt elements of one or more process models, such as incremental, waterfall, or evolutionary prototyping.

syntax diagram

A diagram system, sometimes referred to as railroad diagrams, which is a way to represent a context-free grammar.

waterfall design

The waterfall model is a sequential design process, used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of conception, initiation, analysis, design, construction, testing, production/implementation and maintenance.

Binary search

The process of searching through an ordered set of data using the "divide and conquer" technique, which guarantees a final result in O(log N) time

binary tree

A data structure that consists of nodes, with one root node at the base of the tree, and two nodes (left child and right child) extending from the root, and from each child node.

breadth first search

An algorithm for traversing or searching a tree or graph data structures. It typically starts at the tree root and explores the neighbor nodes first, before moving to the next level neighbors

brute force search

A very general problem-solving technique that consists of systematically checking all possible solutions or values. The breadth first search and depth first search are two examples of brute force searching.

Bubble Sort

A simple (and relatively slow) sorting algorithm that repeatedly loops through a list of values, comparing adjacent values and swapping them if they are in the wrong order.

complete graph

A complete graph is a simple undirected graph in which every pair of distinct vertices is connected by a unique edge, in other words every vertex is directly connected to every other vertex in the graph.

complete tree

A complete tree (not to be confused with a full tree) is one in which there are no missing nodes when looking at each level of the tree. The lowest level of tree may not be completely full, but may not have any missing nodes. All other levels are full.

connected graph

Not to be confused with a complete graph, a connected graph is one where there exists a simple path from any vertex in the graph to any other vertex in the graph, even it takes several "hops" to get there.

data structure

A way of organizing data in a computer so that it can be used efficiently, such as an array, linked list, stack, queue, or binary tree.

depth

In a tree data structure, the depth of the tree is most commoly expressed as the number of steps from the root of the tree to the farthest outlying node in the tree. Height is also used to mean the same thing.

depth first search

In searching a tree structure, this brute force search process explores one complete branch of a tree all the way to the end of the branch before proceeding to another branch, as opposed to breadth first search.

directed graph

This is a graph where an edge has a direction associated with it, for example, a plane flight that takes off in one location and arrives in another. The return flight would be considered a separate edge.

edge

The connection in a graph between two vertices.

external node

A potential node in a tree, where currently either the left or right child pointer of a node is pointing to null, but potentially could reference another node. See internal node.

external path length

In tree processing, this is the sum of all the lengths from the root to the external nodes in a tree.

full tree

A tree in which every level of the tree is completely full, with no missing nodes, not to be confused with a complete tree.

graph

A data structure in programming (not to be confused with a geometry style graph of a line or a parabola) which consists of a set of vertices (nodes) and edges (connections)

height

See depth.

heuristic search

Heuristic search is an AI search technique that employs heuristic for its moves. Heuristic is a rule of thumb that probably leads to a solution.

heuristic solution

In a general sense, the term heuristic is used for any process that is often effective, but is not guaranteed to work in every case, as opposed to an algorithm, which is guaranteed to work in all cases.

insertion sort

A type of sort that uses a nested loop process to systematically find the best place in the current array for an unsorted item.

internal node

A existing node in a tree, either the root or any one of the children in the tree. See external node.

internal path length

In tree processing, this is the sum of all the lengths from the root to the external nodes in a tree.

leaf

A leaf is a node in a tree data structure that has no children, and is at the end of a branch in a tree.

linear search

A loop based search process using an array of values that starts looking at the first of the list and continues towards the end of the list until the target is found, or until the end of the array is reached.

linked list

A linear data structure, much like an array, that consists of nodes, where each node contains data as well as a link to the next node, but that does not use contiguous memory.

Merge Sort

Merge sort is a recursive algorithm that continually splits a list in half, until each half is either empty or one item, at which point the two halves are merged together in natural order, back up the division process until the entire list has been sorted.

node

In a linked list, tree, or similar graph-based structure, a node is an object linked to other objects, representing some entity in that data structure.

parent node

The parent node in tree structure is a node, including the root, which has one or more child nodes connected to it.

quick sort

Quicksort (sometimes called partition-exchange sort) is an efficient sorting algorithm, serving as a systematic method for placing the elements of an array in order

Selection Sort

A sorting routine that uses a nested loop process to systematically select the best value among the unsorted elements of the array for the next position in the array, starting with position zero all the way to the end.

Sequential search

See Linear search

sort

An algorithm used to arrange elements of an array into natural order, such as numeric or alphabetical.

Traverse

A process of visiting all of the elements in a data structure in a certain order, such as an array, graph, or tree.

undirected graph

A graph that contains edges between vertices with no specific direction associated with any edge.

AI

Artificial Intelligence - intelligence exhibited by machines or software

ALU

Arithmetic Logic Unit - digital electronic circuit that performs arithmetic and bitwise logical operations on integer binary numbers. It is a fundamental building block of the central processing unit (CPU) found in many computers.

Big-Endian

Endian"ness is the ordering or sequencing of bytes of a word of digital data in computer memory storage or during transmission. Words may be represented in big-endian or little-endian manner. Big-endian systems store the most-significant byte of a word at the smallest memory address and the least significant byte at the largest

binary file

A computer file that is NOT a text file, which contains various types of information the computer understands, such as images, sounds, compressed versions of other files, or metadata for particular types of documents

cache

A small area of fast memory located on the mother board of a computer,used by the central processing unit

concurrency

In computer science, this is a property of systems in which several processes are executing at the same time, often associated with multi-processor systems.

CPU

Central Processing Unit - the main integrated circuit on the motherboard of a computer that is responsible for processing commands and data.

ENIAC

Electronic Numerical Integrator And Computer, the first electronic general-purpose computer, designed and developed in 1946 at the University of Pennsylvania primarily used to calculate artillery firing tables for the United States Army's Ballistic Research Laboratory,but also included a study of the feasibility of the hydrogen bomb

flash drive

A secondary storage device that plugs into the USB port of a computer.

floppy drive

An old style secondary memory storage technology that indicates either 3.5 inch or the even older 5.25 inch disks that were indeed "floppy" or flexible.

Garbage collection

The process of recycling memory previously allocated to methods or objects. See finalizer.

hard drive

The primary device in a computer that is used for secondary storage, such as the operating system and various application programs needed by the computer to function.

hardware

The physical devices in a computer system, such as the main unit, monitor, keyboard, printer, etc.

Harvard Mark I

The IBM Automatic Sequence Controlled Calculator (ASCC), called Mark I by Harvard University's staff, was a general purpose electro-mechanical computer that was used in the war effort during the last part of World War II.

input device

A computer hardware device used to enter data into a program or an application, such as a keyboard, mouse, or secondary storage device, such as a hard drive, floppy drive, or flash drive.

integrated circuit

Another name for a chip, an integrated circuit(IC) is a small electronic device made out of a semiconductor material. The main CPU for a computing device is an integrated circuit

interface

In programming, this is an abstract class with prefined methods, but with no implementations. The most commonly used interface in programming is the Mouse interface, which consists of all the various Mouse clicking and dragging functions, which can be implemented in various ways by the programmer.

ISA, Instruction Set Architecture

The part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O.

memory address

In computing, memory address is a data concept used at various levels by software and hardware to access the computer's primary storage memory. Memory addresses are fixed-length sequences of digits conventionally displayed and manipulated as unsigned integers.

microprocessor

A microprocessor, sometimes called a logic chip, is a computer processor on a microchip. The microprocessor contains all, or most of, the central processing unit (CPU) functions and is the "engine" that goes into motion when you turn your computer on.

monitor

A display device for a computing system, such as a screen or projector.

Moore's law

The observation made in 1965 by Gordon Moore, co-founder of Intel, that the number of transistors per square inch on integrated circuits had doubled every year since the integrated circuit was invented, and that this trend would continue for the foreseeable future.

multicore processor

A type of computer architecture where a single physical processor contains the core logic of two or more processors.

multitasking

The simultaneous execution of more than one program or task by a single computer processor.

operating system

An operating system (OS) is software that manages computer hardware and software resources and provides common services for computer programs.

OS

See Operating System

output device

A device used in computing to display or store information, such as a monitor, printer, or secondary storage device, like a flash drive.

peripheral device

A computing device that is connected to the main unit, such as a monitor, keyboard or mouse.

primary storage

Primary storage, also known as main storage or memory, is the area in a computer in which data is stored for quick access by the computer's processor. The terms random access memory (RAM) and memory are often as synonyms for primary or main storage.

printer

A peripheral device in a computer system responsible for producing a printed output.

RAM

Random Access Memory - the type of primary memory that is used by a computer in which to run programs and perform system operations.

ROM

Read Only Memory - memory that is hard-wired and used for system functions, very difficult if not impossible to change.

secondary storage

Storage other than primary storage (RAM), such as a hard drive, floppy drive, or flash drive.

sequential file

A text file where information is stored in consecutive order, as opposed to a random-access file.

software

The programs and other operating information used by a computer.

transistor

A semiconductor device used to amplify and switch electronic signals and electrical power

Turing test

The Turing test is a test of a machine's ability to exhibit intelligent behavior equivalent to, or indistinguishable from, that of a human.

universal serial bus

An industry standard connection system developed in the mid-1990s that defines the cables, connectors and communications protocols used in a bus for connection, communication, and power supply between computers and electronic devices.

virtual memory

Memory that exists in secondary storage that is used in conjunction with primary memory (RAM) to help with program execution.

Von Neumann architecture

The Von Neumann architecture is a computer architecture commonly used in most computers, based on that described in 1945 by the mathematician and physicist John von Neumann, consisting of RAM connected to a CPU and ALU (Arithmetic Logic Unit), with input and output processes.

.com

Top level domain for commercial websites

.edu

Top level domain for educational organizations

.gov

Top level domain for government websites

.mil

Top level domain for military websites

.net

Top level domain for smaller websites

.org

Top level domain for non-porofit websites

.us

Top level domain for US based websites

ARPANET

The original name for the Internet when it was developed by the US Department of Defense

back door

A hidden method for bypassing normal computer authentication systems, primarily used to gain unauthorized access to a computer system

bandwidth

The rate of data transfer, bit rate or throughput, measured in bits per second (bit/s), most often expressed in megabits per second. A typical WAN connection from a home or business can range anywhere from 5 Mbps to 25 Mbps. Within a LAN, speeds can exceed 1000 Mbps, or 1 Gbps

BMP

The file name extension for the Bitmap image file format

bot

Derived from the word "robot", bots (also called zombies) automate tasks and provide information or services that would otherwise be conducted by a human being

browser

A software application used to explore web pages on the World Wide Web

bus topology

A network topology in which nodes are connected in a daisy chain

client

The software on a client node or machine that accesses a remote service on another server computer

DSL

Digital subscriber line is way to accelerate access over a phone line that requires a DSL line

EULA

End-User license agreement, requires agreement of user to terms of service

FAQ

The abbreviation for Frequently Asked Questions, a common feature on websites providing answers to such questions.

firewall

A virtual wall in protection software that prevents certain types of network traffic from entering a network, usually by the use of port numbers, an OSI level 4 feature.

FTP

File Transfer Protocol, the protocol used to transfer files across networks.

GIF

Graphics Interchange Format (better known by its acronym GIF is a bitmap image format that was introduced by CompuServe in 1987 and has since come into widespread usage on the World Wide Web due to its wide support and portability.

GUI

Graphical User Interface - A newere style of program interface (as opposed to command line) that features dialog boxes, clicking features such as buttons, boxes, and radial buttons, commonly seen in most modern programs.

host

A network host is a computer or other device connected to a computer network

HTML

Hyper Text Markup Language - the standard markup language used to create web pages. It is written in the form of HTML elements consisting of tags enclosed in angle brackets (like <html> ).

HTTP

Hypertext Transfer Protocol (HTTP) is an application protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web.

hub

A networking device that is the center of a star topology, where it is the center of the star and all devices connect to it, receiving network traffic from it.

Internet

The Internet is a global system of interconnected computer networks that use the standard Internet protocol suite (TCP/IP) to link several billion devices

ISDN

Integrated Service Digital Network is a rapid stable means of transmitting data over telephone lines. Does not require a modem but an ISDN terminal

IP address

A unique string of numbers, usually expressed in dotted decimal notation (such as 192.168.1.1), that identifies each computer using the Internet Protocol to communicate over a network.

JPEG

Short for Joint Photographic Experts Group, and pronounced jay-peg. JPEG is a lossy compression technique for color images. Common to photographs and websites. Used to create high resolution, printable images

LAN

Local Area Network - a section of network, local to a room, house, building, small campus, or even a metropolitan area (MAN), connected by some LAN protocol, most commonly Ethernet, either via wired connections, fiber, or wireless.

MAC address

A media access control address (MAC address) is a unique identifier assigned to network devices for communications on the physical network segment, similar to a social security number that belongs to a person.

MAN

Metropolitan Area Network - a LAN that spans the geograhic area occupied by a city or town, usually using fiber as a backbone.

MPEG

The Moving Picture Experts Group (MPEG) is a working group of authorities that was formed by ISO and IEC to set standards for audio and video compression and transmission. An mpeg file is typically one that contains a audio/video feature of some sort.

Modem

device that converts digital signals to analog signals to send over wires

network

A network is a group of two or more computer systems linked together. There are many types of computer networks, including LANs, MANs, and WANs. The ultimate network is the Internet.

.png

Portable network graphics: alternative to .gif for web pages

POP

This is an email protocol for storing emails, short for Post Office Protocol.

ring topology

A network topology where all devices are connected in a circular fashion.

RIP

Routing Information Protocol - one of the most used routing protocols used in network routing configurations.

router

A networking device that forwards data packets between computer networks

routing

The process of forwarding data packets between computer networks, performed by a router

scareware

A type of malware designed to trick victims into purchasing and downloading useless and potentially dangerous software. By using legitimate-looking notifications showing a large number of viruses or infected files, users are scared into purchasing software to fix the problems.

search engine

A software system that is designed to search for information on the World Wide Web

server

This term refers to either the software that is the server, or the hardware on which the server software is located.

SMTP

Simple Mail Transfer Protocol - an email protocol that enables the transfer of email messages across the network.

social engineering

A non-technical method of intrusion that relies on human interaction and often involves tricking people into breaking normal security procedures.

star topology

This is a common topology in networking where a central device, such as a switch or a hub, to which all of the network devices are connected.

TIFF

Tagged Image File Format - a computer file format for storing raster graphics images, popular among graphic artists, the publishing industry, and both amateur and professional photographers in general.

topology

Network topology is the arrangement of the various elements (links, nodes, etc.) of a computer network

URL

An acronym for Uniform Resource Locator and is a reference (an address) to a resource on the Internet. A URL has two main components: Protocol identifier: For the URL http://example.com , the protocol identifier is http . Resource name: For the URLhttp://example.com , the resource name is example.com .

WAN

Wide Area Network - a computer network in which the computers connected may be far apart, separated by distances spanning half a mile to thousands of miles.

WWW

World Wide Web - A system of Internet servers that support specially formatted documents. The documents are formatted in a markup language called HTML.

absolute reference

In spreadsheets, the use of the $ to indicate a static cell in a formula, like $A1, A$1, or $A$1

application

A software program that performs a particular task, such as word processing, spreadsheet, etc.

database

A collection of information that is organized so that it can easily be accessed, managed, and updated

execute

The run a program.

IDE

Integrated Development Environment - an application used in programming that combines the source code editing process, compiling and program execution process into one easy-to-use application. Common IDEs for programming include Eclipse, NetBeans, JCreator, and BlueJ.

linker

In computer science, a linker or link editor is a computer program that takes one or more object files generated by a compiler and combines them into a single executable file, library file, or another object file.

platform-independent

Platform independence means that the same program works on any platform (operating system) without needing any modification.

platform-specific

Platform specific means that the program only works on the specific platform (operating system) for which it was defined.

program

A computer program is a list of instructions that tell a computer what to do.

spreadsheet

An electronic document in which data is arranged in the rows and columns of a grid and can be manipulated and used in calculations.

system software

A set of files that contains the software that controls all of the functions of the computers, such as Windows, Linus, Unix, or Mac.

wordprocessing

The production, storage, and manipulation of text on a computer or word processor.

acceptable use

An acceptable use policy (AUP) is a document stipulating constraints and practices that a user must agree to for access to a corporate network or the Internet.

fair use

The doctrine that permits limited use of copyrighted material without acquiring permission from the rights holders

ASCII

The American Standard Code for Information Interchange, a system of characters used by computers as a standard for all the letters, digits, and various characters in a language, with values associated for each characters, such as 65 for 'A', 97 for 'a', and 48 for the digit '0'

assembler

A computer program which translates assembly language to an object file or machine language format

assembly language

A low-level programming language (difficult for humans, easy for machines) that uses mnemonic opcodes, such as mov, sto, and load, to interact directly with a computer's CPU and registers, used by expert programmers to produce highly efficient and fast programs

Backus Naur notation

A notation technique for context-free grammars, often used to describe the syntax of languages used in computing.

BASIC

Beginner's All-purpose Symbolic Instruction Code, a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use

binary

A word that is used to describe the base 2 number system, as well as a type of operator that performs a calculation on two operands, such as + or -

bit

The abbreviation for "binary digit", used to designate a single state of a computer value or signal, often notated as 0 or 1, false or true, off or on, low voltage or high voltage, etc.

byte

A unit of digital information that most commonly consists of 8 bits. In Java, a byte is an integer data type with a numerical range from -128 to 127.

bytecode

A universally portable software file compiled from source code that is then translated into machine language by a software interpreter. Java works this way, where a .java file is compiled into a .class file, which contains bytecode, and then is translated by whatever device executes that file.

C

A general, all-purpose programming language developed by Dennis Ritchie in the late 60s and early 70s at the AT&T Bell Labs, which became one of the most widely used programming languages of all time.

C++

A programming language also developed at AT&T Bell Labs in the late 70s by Bjarne Stroustrup, derived from C, with added object oriented features.

Camel case

The practice of writing compound words or phrases such that each word or abbreviation begins with a capital letter

COBOL

An acronym for common business-oriented language, a compiled English-like computer programming language designed for business use

compiler

A compiler is a computer program (or set of programs) that transforms source code written in a programming language (the source language) into another computer language (the target language, often having a binary form known as object code). The most common reason for converting a source code is to create an executable program.

compiling

The process of transforming source code from a high-level programming language into object code, most typically machine language or bytecode in Java.

continue

A reserved word in some languages (including Java) placed into an iterative structure, such as a loop, that interrupts the normal flow of the loop and jumps back to the next iteration, bypassing any statements listed afterwards.

Conventions

In programming, a convention is an agreed upon style of writing code by using indentation, capitalization practices, and use of meaningful identifier names to improve the readability of the code.

decimal

There are two common meanings for this word. The other is the general term for the base ten numbering system, as opposed to binary (base 2), octal (base 8) or hexadecimal (base 16)

double

A data type in some languages that is designed to contain floating-point numbers, generally using twice as much memory as a float data type. In Java, a double uses 64 bits of memory compared to a float that uses 32 bits.

dynamic binding

In the compile process, certain binding issues can happen "early", but some can only happen during the actual program execution, which are "late" binding. For example, the compiler can detect whether or not an assignment value for a primitive is valid, such as assigning proper values to double variable, but certain Object based assignments may not be, and can only be decided during run time, which is called dynamic or late binding.

early binding

See dynamic binding

extends

The term in Java used to indicate that a class will inherit another class, used in the class header, such as class Student extends Person.

final

The Java reserved word that indicates that a memory location or class definition is permanent once assigned.

Finalizers

The method in Java that belongs to all classes (originally the Object class) whose sole responsibility is garbage collection, specifically when an object is no longer referred to (pointed to) by any reference. The memory allocated to that object is returned to working memory for reuse.

FORTRAN

One of the original high level languages, short for Formula Translation, created by John Backus to make programming easier for math and science applications.

hexadecimal

The general terms used to indicate the base 16 numbering system, featuring the digits 0-9 and letters A-F

high level language

A programming language using words and commands easy for humans to understand and organize, but which must be translated into a low-level language like machine language or object code for the computer to understand and execute.

import statements

In Java, import statements bring into the compile process certain packages that contain tools and methods to be used in the program. For example, to perform file input the java.io and java.util packages must be imported into a program.

int

A data type in various languages (short for integer) which can contain an integer

interpreting

The translation process in some programming languages which executes a program one line at a time, instead of compiling the entire program into one executable file.

Java

Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented, and is designed to run on any platform through the use of the Java Virtual Machine (JVM)

Java API

The Java API (Application Programming Interface) is the documentation that describes the functions and characteristics of the Java programming packages.

Java class

A class in Java is the description or blueprint for a Java object, and typically contains instance variable declarations, constructors, and various methods that are necessary to use the object.

Java JRE vs. Java JDK

Java Runtime Environment. It is basically the Java Virtual Machine where your Java programs run on. It also includes browser plugins for Applet execution. JDK: It's the full featured Software Development Kit for Java, including JRE, and the compilers and tools (like JavaDoc, and Java Debugger) to create and compile programs.

Java packages

A Java package is a technique for organizing Java classes into namespaces, providing modular programming in Java

long

A data type in some programming languages that contains an integer value, but uses twice as much memory to store it, thus increasing the range limits of the values it can store. A long in Java uses 64 bits of memory storage, as opposed to an int that uses 32 bits.

low level language

A language easily understood and executed by a computer, like machine language, assembly, or bytecode

machine language

The language directly understood and executed by a computer, consisting of pure 0s and 1s.

new

The Java reserved word that instantiates an object, such as String name = new String ("John");

The value in a programming language that indicates "nothing", which is the default value that objects refer to when not referencing or pointing to an object.

octal

The term associated with the base 8 number system, which uses the digits 0-7 as symbols.

Pascal

...

Private access modifier

The term (private) used in Java that designates limited access to data or methods to only objects of that particular class.

programming language

A programming language is a formal constructed language designed to communicate instructions to a computer.

programming style

A term used to describe the effort a programmer should take to make source code easy to read and easy to understand. Good organization of the code and meaningful variable names help readability, and liberal use of comments can help the reader understand what the program does and why.

pseudocode

An informal high-level description of the operating principle of a computer program or other algorithm.

Public access modifier

The Java access modifier public means that all code can access the class, field, constructor or method, regardless of where the accessing code is located.

reserved word

A special word in a programming language that has a reserved meaning and cannot be used in any other way.

super

The reserved word in programming that designates a method or data item that belongs to the parent class, or super class.

syntax

The rules in a scripted language that control punctuation, spelling, and grammar, such as ending a statement with a semicolon, requiring matching braces or parenthese, and so on.

this Reference

In object oriented programming, the reserved word this indicates the current object, and is usually implied, but sometimes is necessary to state explicitly for purposes of clarity in the source code.

Unified Modeling Language (UML)

a general-purpose modeling language in the field of software engineering, which is designed to provide a standard way to visualize the design of a system.

Visual Basic

An event-driven programming language and integrated development environment (IDE) from Microsoft, first released in 1991, to be relatively easy to learn and use to create GUI based programs.

XML

Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format which is both human-readable and machine-readable.

conditional processing

The process of using if and if-else type statements in a program to make a decision based on a boolean (true/false) condition.

conditional statement

A statement in programming that makes a decision using if or if-else situations by evaluating a boolean condition.

conjuction

A logical expression resulting in true or false that combines two boolean expressions into one using the AND operation, which requires both expressions to be TRUE for an overall TRUE result.

contradiction

A concept in Boolean logic that means "opposite of", where if something is true, the contradiction of it is false, and vice versa.

DeMorgan's law

In Boolean logic, two laws named after Augustus De Morgan, a 19th-century British mathematician, state the result when and AND or OR expression is negated. For example, NOT(A and B) becomes NOT A or NOT B, and NOT(A or B) becomes NOT A and NOT B.

disjunction

In Boolean logic, this word is associated with the OR operator.

idempotent law

This is a property in logic denoting the fact that the state of an expression is unchanged in value when operated on by itself. For example, in logic, the expression "true AND true" is true. Likewise, so is "false and false", resulting in false.

identity law

In Boolean logic, the identity laws return the same value as the expression. For example, if A is a boolean expression, A or false is still A, as well as A and 1. This similar to mathematics where any value multiplied by 1 remains the same, and likewise any value added to zero remains the same.

involution law

The Boolean algebra law that is much like the double negative in mathematics, where the value of the expression NOT NOT true is simply true, and NOT NOT false is false.

negation

The logical process of reversing the true or false state of an expression, using the NOT operation, also called logical complement, opposite of, or contradiction

NOT

The operation in Boolean logic that indicates negation, or "opposite of

OR

The binary operation in Boolean logic that results in a true value if either or both operands are true.

tautology

This is a situation in logical expressions where the result of the expression is always true, regardless of the original inputs of the expression. In a truth table, the final column will show all true values.

truth table

A logic table in Boolean algebra that evaluates the parts of a logical expression and reaches a final conclusion for each of the original input values.

XOR (exclusively OR)

The binary Boolean operation that results in true if only one of the two operands is true, with the other being false.

adware

Any software package that automatically renders advertisements in order to generate revenue for its author

antivirus software

Computer software used to detect, remove, and prevent malicious software, such as viruses, Trojans, malware, worms, etc.

bomb

A virus carrying a built-in time delay so that the virus becomes active after a specific "incubation" time

bug

An error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected result, sometimes called a logic error.

Catch

The term used in a try/catch programming block used to "catch" and handle errors or exceptions as they occur during the execution of a program

Checked exceptions

A type of exception (execution error) that a compiler will check for during the compile process, such as the possibility of a file input error, where the code must explicitly indicate how this possible exception will be handled, either by using a "throws" statement, or by usint a "try catch" block.

debugging

A methodical process of finding and reducing bugs, defects, or errors in a computer program or a piece of electronic hardware

Error

A situation in a program that indicates a flaw in the source code, either syntax-based (punctuation or grammar), run-time (occurs during execution, such as file not found, or division by zero), or logic based where the program runs but does not produce the desired results.

Exception

An error in programming that is "thrown" when something bad happens in a program, usually during runtime. In Java, there is a whole family of Exceptions, like IndexOutOf BoundsException or FileNotFoundException. Generally there are two types: checked and unchecked, checked meaning they are checked during compile time, and unchecked when they are thrown during runtime.

Exception handling

The process in programming of handling exceptions. In Java, this is most often done by using a try catch block.

lexical error

An error in programming that is characterized by a misspelling of a word, or reserved words listed out of order.

Logic error

A logic error in programming is one where the program executes properly, but does not produce the desired and intended outcome.

malware

A general term for malicious software or code (called malcode) specifically designed to damage, disrupt, steal or inflict illegitimate action on data, hosts, or networks.

phishing

A tactic used by internet attackers using fake emails or websites, appearing to come from a known and trustworthy source, in an attempt to gather personal or financial information from the recipients.

robust

A process, system, organization, etc. able to withstand or overcome adverse conditions.

rootkit

A program (or set of programs) used to give unfettered administrative access to a machine. These programs attempt to hide the fact that a system's security has been compromised and usually provide a backdoor.

Runtime error

An error that occurs during the execution of a program.

spyware

Software that enables a user to obtain covert information about another's computer activities by secretly transmitting data from their hard drive.

Syntax error

An error associated with punctuation, spelling or grammar in a computer program.

troubleshooting

The process of debugging a program by detecting and correcting errors in syntax and logic

Trojan

Disguised as legitimate software, Trojans are a harmful piece of software that tricks users into loading and executing it on their systems. Unlike viruses and worms they do not reproduce by infecting files, nor do they self-replicate.

Try/catch block

An exception handling process in programming where possible error generating situations are smoothly handled during execution, with the situation is enclosed inside the try section, and one or more catches are built in to handle the possible errors that may occur. This is a key feature in making very large programs robust and error free.

Unchecked exceptions

represent defects in the program (bugs) - often invalid arguments passed to a non-private method.

virus

A type of malware that propagates by inserting a copy of itself into another program. Almost all viruses are attached to an executable file, which means they will not be active or be able to spread until a user runs or opens the host file or program. Viruses spread when the software or document they are attached to is transferred from one computer to another.

virus definitions

A data file used to update an antivirus program so it can recognize new viruses as they are discovered and documented

worm

Worms are similar to viruses in that they replicate functional copies of themselves, but are standalone software that do not require a host program to propagate. To spread, worms exploit a vulnerability on the target system or use social engineering to trick users into executing them.

zombie

In computer science, a zombie is a computer connected to the Internet that has been compromised by a hacker, computer virus or trojan horse and can be used to perform malicious tasks of one sort or another under remote direction. Botnets of zombie computers are often used to spread e-mail spam and launch denial-of-service attacks.

Base case

The terminating scenario or situation in recursive programming that does not use recursion to produce an answer

break

A programming term that ends the process in a control structure, such as a loop or switch case statement

circular queue

A data structure with a fixed memory size that rotates back to the front of the array as necessary in processing push and pop sequences of data

do while loop

This is a post test loop in programming where the action of the loop precedes the "check if true" expression, which decides whether or not the loop should continue. The primary difference between the post and pre test loop is that the post test loop will always execute at least once before termination, where the pretest loop does not.

for each loop

A special loop in Java that traverses from start to finish an array or Java collection data structure, such as an ArrayList or Linked List, just to name a couple.

for loop

A loop structure in various programming languages where the start, check, and step are designated in parentheses immediately after the for, such as for(int x = 1; x<10;x++)

if statements

Statements in programming that check to see if a Boolean expression is true, and executes a "then" statement if so, otherwise does nothing. These are often called "one-way" conditional statements.

If-else statements

Statements in programming that check to see if a Boolean expression is true, and executes a "then" statement if so, otherwise executes an "else" statement if the condition is false. These are often called "two-way" conditional statements.

iterative processing

The process in programming that uses loop based or recursive based control structures to repeat certain processes.

Linear recursion

A linear recursive function is a function that only makes a single recursive call to itself each time the function runs (as opposed to one that would call itself multiple times during its execution). The factorial function is a good example of linear recursion.

loop

A process in programming that repeats a process a certain number of times.

Nested for loop

A loop structure inside of another loop structure, as would be found in an insertion sort, bubble sort, or selection sort, or in the processing of a two dimensional array structure.

Non-linear recursion

A recursive process that includes multiple recursive calls inside of a method, such as tree traversal methods that first traverse one branch of the tree from that node, and then the other branch.

peek

A process used in stack and queue processing where a copy of the top or front value is acquired, without removing that item, as opposed to a pop function where the item is removed from the stack or queue.

pop

A process used in stack and queue processing where a copy of the top or front value is acquired, and then removed from the stack or queue.

push

A process used in stack and queue processing where a new value is inserted onto the top of the stack or into the back of the queue.

queue

A FIFO (first in first out) data structure, similar to a stack, but where the first element added to the queue will be the first one to be removed, and where a new element is added to the back of the queue, much like a waiting line.

recursion

Recursion in computer science is a method where the solution to a problem depends on solutions to smaller instances of the same problem

Recursive case

One of two situations in a recursive method, the other being the base case, where another method call is made, moving closer and closer to the base case, which terminates the recursive process and unstacks all previously called methods, until a final value is achieved.

repeat until loop

A type of loop in some languages that is a post test loop, similar in structure to a do while loop, but terminates when the check condition is true, unlike the do while which terminates when the check is false.

stack

In computer science, a stack or LIFO (last in, first out) is an abstract data type that serves as a collection of elements, with two principal operations: push, which adds an element to the collection, and pop, which removes the last element that was added.

switch statements (case, switch, and default)

A conditional control structure in programming that functions as a multi-step if else statement, where several cases are stated and examined during execution to seek a match, and then a command is executed when a match is found.

while loop

A pretest loop in programming that checks a boolean condition before performing the action of the loop, and continues iterating while the condition is true.