Glossary

A few terms which would be good to know. Students: add to the list, including quick definitions? Have you learned a cool term which you would not mind being asked about?

abstraction: An example is data hiding.

algorithm: A halting set of instructions

allocate: To request a set of memory space

asymptote, asymptotic:

base (vs. recursive) case:

binary search: Dividing the problem area in half with each iteration. Examples include finding an element in a sorted list and disabling half of a browser's extensions at a time to see which one is causing a problem.

bit: a single on/off switch's worth of information; a basic unit of information theory

BNF:

byte: 8 bits.

canonical form: Eg. of all the possible ways to represent a tic-tac-toe game state, the one with the smallest number.

complex: "Braided" (in its original sense). Unnecessary coupling. Code should not be such. See [|Rich Hickey's talk]

composition

conversion factor: a form of the number 1, such that multiplying by it does not change the value. Eg. 10miles/16km. Conversion factors are themselves unitless.

correctness

data accessability

data hiding: Hiding implementation details from calling code

digraph: very common contraction of "directed graph" aka "nodes and arrows". Digraphs are ubiquitous in computing. Eg. Trees are specialized digraphs, as are linked lists. Pointers and references almost always create digraphs.

digraph: A group of two characters that represent one character that may not be included on a keyboard or character set. Example in C: Preprocessor will convert '??=' to '#' or '??/' to '\'. Also known as a trigraph, where three characters (instead of two) represent one character (examples are of C trigraphs)

drill-in: v.

FIFO: First In, First Out. Queue.

FILO: A stack is FILO: Doh!

FSM:

function: A callable unit of code that is given an input and possible returns an output while possibly having side effects.

functional programming: As opposed to imperative programming, functional programming treats commands as mathematical evaluations and avoids messy issues of state. This helps to free a program of often difficult to find bugs, and lends its self to parallel computing. And [subjectively] elegant execution.

GIGO: Garbage in...

hash table

impure function: As opposed to pure functions. A function relying on or creating side effects. This often leads to bugs involving state machines (see functional programming). Despite the name, these are sometimes just what the doctor ordered.

initialize

inner-loop

KISS: KEEP IT SIMPLE STUPID

lazy evaluation: Evaluating information only as needed. Sometimes you'll NEVER need it. Think of the time you'll save.

legacy system

link: A pointer to an element. External links point outside the containing data structure. Internal links point inwards. External and Internal are relative e.g. a link may be internal to a web site but external to a web page at the same time.

list

LIFO: Last In, First Out

maintenance: in reference to a house, it means keeping things the same. In reference to software, it means making changes.

matrix

minimal

NP-complete: Non-deterministic polynomial; basically, each time you want to check an answer, you must do the same amount of work.

object: data structure + all accessor procedures.

object-oriented programming

One-to-one correspondence: not only the fundamental notion of counting. 1-1 correspondence gives a way to convert a tic-tac-toe state into a small integer and vice-versa.

parallel arrays, parallel structures:

parallel process: Performing multiple algorithms simultaneously (MIMD) or perform the same program on multiple data (SIMD)

parameter

privacy:

protection

pure function

queue: Simple LIFO data structure

relative (efficiency, risk, cost, etc.): stating a value as a fraction of a "standard" value. The word "specific" is sometimes used as a synonym. "Specific gravity"=density relative to that of water. Eg.: Morse 11317 units Lex 12963 units. Relative to Morse =1.145 (because 12963/11317 = 1.145)

recursion: see recusion (a definition which references itself). A function which invokes itself.

side effect: Go to dentist for teeth cleaning... they also shine shoes, cut hair, and put you in a fancy suit. Confused?

__**signature**__: the pattern of a function. Two functions with the same signature take the same number of the same kind of arguments, and return the same kind of answer.

simple: "one twist" (originally) and one twist is the same as being untwisted. Decoupled. See [|Rich Hickey's talk]

spanning tree

specific gravity: density "relative" to water's density. Substances with S.G. < 1 float.

stack: Simple FILO data structure.

sterile abscess

Stream (the data structure):

structure: Combination of elements in a logical manner.

syntax highlighting

tree

tuple: A 2-tuple is an ordered pair. Threeple? (ref: Victor Borge)

vector: a structure with a magnitude and direction. Eg. **F**orce, as in **F** = m **A**. Strong precedent from physics.

word (of computer memory)

wrapper