ftp://oak.grove.iup.edu/compsci/GLOSSARY.TXT;1 * - (1) a symbol for multiplication in programming languages. (2) a wildcard character that stands for 0 or more characters. (3) see Kleene star. .dia - the extension that lse assigns to a file of diagnostic messages it generates from a compile/review command. .lis - the default extension for a compilation listing in VMS (and other listing output from VMS system processes). If you enter a type or print command without an extension, .lis is the default extension. .map - the extension that VMS assigns to one of the optional files generated by the "link" command. See $ help link. Note that a batch "submit" task assumes that you want a .map file, while an interactive "@" execution of a .com file assumes that you do not want a .map file. 4GL - a popular acronym for "fourth generation language." A fourth generation language is a "very high level language" (VHLL) concept in which the programming language supports the first three of the following concepts directly, and often provides support for the fourth concept: (1) non-procedural programming (2) report writers (3) screen painters and data collection (4) relational database management A man a plan a canal Panama - an example of a palindrome (if spaces and upper/lower case are not considered). abend - "abnormal end of program" ABET - Accreditation Board for Engineering and Technology abeyance file - a file of transactions that are rejected by a batch validation program. Synonym: "suspense file". absence check - a data validation check which assures that data for a field is not entered in a transaction where that data is inappropriate. For example, a mail-order transaction may have included sales tax where it is not required by law. See Welburn & Price, page 380. absolute address - an explicit machine address, which is specified without the use of any intermediate reference. abstract data type (ADT) - a concept for a data object, together with operations that manipulate it and relations that test its properties. An ADT is specified without regard to how it is implemented in a particular programming language or computer system. The procedures and functions that are part of the ADT are called the "interface" to the ADT. The word "abstract" refers to the fact that details of the data structure and its operations are "encapsulated" or "hidden". (See also information hiding, encapsulation, class.) abstraction - the process of modeling something in general terms, using symbols for key features and leaving other features unspecified. access - see "file access" ACE/ODT - Advanced Computing Environment/Open Desktop Unix, the Unix system to which DEC hopes to migrate its Ultrix users. ACK - the acknowledge character (see acknowledge character) acknowledge character - (1) (ISO) a transmission control character transmitted by a station as an affirmative response to the station with which connection has been set up. (2) A transmission control character transmitted by a receiver as an affirmative response to a sender. An acknowledge character may also be used as an accuracy control character. (see negative acknowledge character) ACM - Association for Computing Machinery ACRF - The Advanced Computing Research Facility at Argonne Labs acronym - a word formed from a combination of initial letters from several words. For example, ACM for Association for Computing Machinery; bit for binary digit; and radar, for radio distancing and ranging. There are several conventions for using acronyms. An acronym is usually chosen to be mnemonic, that is, easy to remember. An acronym that is not pronounceable is spelled out when it is spoken. An acronym which is jargon is capitalized, while one which has become part of common language, such as radar, is printed in lowercase. Pronounceable names of programming languages are often not capitalized, such as Pascal, Fortran and Cobol. The first time that an acronym which is jargon is used in a printed document, the words that it is derived from are printed in full followed by the acronym in parentheses. For example, Association of Computing Machinery (ACM). activity ratio - The "file activity ratio" is the number of master file records affected by a batch of transactions divided by the number of records on the master file. For example, the IUP class schedule Fall 1994 may contain 4,000 records with a batch of changes in June that affect 600 records. actual argument - in Fortran jargon, the identifier or value that is passed from a program to a subprogram in the CALL statement or function expression. This term is synonymous with the term "argument" as it is used in other contexts. ad hoc - something that is done with only a particular goal in mind and without consideration for broader application or ramifications. This is not a CS term, but we do a lot of it. Ada - a higher-level programming language developed for the DoD in 1975-79 and published as ANSI/MIL-STD-1815A standard in 1983. Ada, the language, is named after Ada Lovelace, who is regarded as the first programmer. ADP - automated data processing ADT - abstract data type AFS - Andrew File System, a distributed file system which integrates the file storage resources present in a LAN or WAN. agenda - a list of topics to be addressed in a group activity. agent - a computer program that communicates with external programs exclusively via a predefined protocol. An agent is capable of responding to all messages defined by the protocol and it uses the protocol to invoke the services of other agents. (Storti, 1993) The concept of an agent is that of a computing system, software and/or hardware, that interacts with its environment to carry out a task without being told in programming-level detail how to do that task. For example, the SimAnt program creates many software "ants" that carry out tasks, such as feeding the queen or defending the colony. A commercially viable agent might be able to schedule a meeting or layout a page of a newspaper. AI - see Artificial Intelligence air-time fragmentation - the situation in meetings where the amount of speaking time available to each person at the meetings is, on the average, the length of the meeting divided by the number of people there. This severely limits the amount of active participation that is possible when more than a few people attempt to interact about something at a traditional face-to-face meeting. algorithm - a finite sequence of definite steps that can be carried out systematically to achieve a specific goal. More simply, a sequence of data manipulations that achieves a specific goal. algorithmic music - music that is based on algorithms which are defined as step-by-step procedures. The algorithms are often shown as block diagrams with lines interconnecting the various portions. Pieces of this nature are generally completely produced by a computer. (Jeff Senley, December 1991) aliasing - in computer graphics, imperfections in images which are caused by too small an image sample. For example, jagged edges, loss of detail and uneven light intensity in lines are aliasing problems. The term has its origin in signaling theory where too small a sampling frequency may result in one signal being an improper alias for another signal. The cures for aliasing (called anti-aliasing) are more resolution, "blurring" edges and intensity averaging (as in TV). alignment - in the jargon of cooperative work, the concept that each person in a work group affirms (i.e., supports) a stated purpose, vision, goal, or task. (see Miller, p. 130) allocate - assign a resource for use in a specific task. alpha testing - testing within the group producing the thing being tested, under the direction of engineering, quality assurance, and/or customer support. alphabetic - includes all characters of the alphabet, uppercase and lowercase. Cobol includes a space (blank). alphanumeric - includes all ASCII characters, that is, alphabetic, numeric, and special characters. ALU - arithmetic and logic unit; part of the CPU that performs calculations and compares. ambiguity - the situation where a statement or part of a statement may have two or more different meanings. For example, "user-friendly" could mean menus if it refers to occasional users or function keys for skilled users. analysis - breaking a whole into its parts to understand their function. See also "system analyst." "Synthesis" has an opposite meaning. analyst - in the context of computing terminology, consider this term equivalent to "system analyst". See system analyst. ANDF - Architecture-Neutral Distribution Format, an OSF mechanism for allowing software developers to distribute a single version of code that can be 'installed' on any hardware platform that has the ANDF installer. The advantage is that ANDF code is designed to be at least as difficult to reverse engineer as binary code and produce executable programs that are as about as efficient. Performance appears to be the major issue at this time. This is still a 'vaporware' product (i.e., not a finished product in October 1991), but an interesting idea. ANSI - American National Standards Institute. ANSI is responsible for standards in many areas. With regard to standards for programming languages, it generally follows the direction of CODASYL. ANSI format - the punched-card format for Cobol source code. Its principal features are leaving columns 1 through 6 empty for sequence numbers and columns 73 though 80 empty for program id. These things are unnecessary when source code is not in punched-cards, but old habits die hard . . . See also terminal format. anthropology - the study of humanity in relation to distribution, origin, classification, and relationship of races, physical character, environmental and social relations, and culture. Anthropology relates to computing when there is an interaction of anthropological concerns and the effect of information technology on people. (Webster's 7th) See also ethnology and anthropometrics. anthropometrics - a concern for human body measurements, especially with regard to the ergonomics of human-computer interaction. See also ergonomics. API - Application Programming Interface (a term from Unix/IEEE POSIX open system standards). APPEARE - an acronym suggested by William C. Miller in his book, "The Creative Edge", as a way to begin thinking about the creative process. The letters stand for: A = be AWARE of you complete current situation P = be PERSISTENT in your vision P = PERCEIVE all you alternatives E = ENTERTAIN guidance from your intuition A = assess and select among your ALTERNATIVES R = be REALISTIC in your actions E = EVALUATE your results APSE - ADA programming support environment. This concept emphasizes the integration of ADA concepts and standards with the entire SE life cycle. The use of ADA PDL (process definition language) as a design tool can be a powerful first step in the use of ADA, even for an application area for which no practical ADA compiler is available. archie - a system name for the archie archive collection. Archie may be accessed by telnet to archie.rutgers.edu and logging in as archie. Archie provides pointers to thousands of documents and programs available thru the Internet. Users may do a keyword search on the collection by using the "prog" command. A help file lists and describes commands. Once a user identifies a document that looks interesting, the document is obtained by FTP to the host listed in by Archie, then doing a "get" of the location/file. Note that users telnet to archie and FTP to get a file. argument - a value that is passed between a user and a procedure or between a calling procedure and a subprocedure. The value may be represented as an identifier (which represents an address) or a value (often a literal). A called procedure may use an argument as input or output or both, so care must be taken to assure that what a called program does with an argument is not inconsistent with what the calling procedure intends. For example, Fortran programmers occasionally send a literal value to a subroutine which tries to modify that value, resulting in errors. (see also parameter, dummy argument, actual argument) There are a variety of ways to array - a data structure used for storage of a collection of data items that are all of the same type. E.g., all the exam scores for a class. Parallel arrays have the nth occurrence in each relating to each other. E.g., a second array containing the names of people who took an exam parallel to the previous example. artifact - something produced by people (or other intelligent creatures). For example, the artifacts of a software development project may include code, design, test plan, whatever. This term is used in research studies to refer to something that is caused by the method, not the phenomenon under scrutiny. artificial intelligence - the ability of machines to perform functions that are normally associated with human intelligence, such as reasoning, learning, and self-improvement. The development of artificial intelligence is motivated by two fundamental concerns: a desire for more useful machines and a desire to understand human intelligence better. Cognition, perception and motor capabilities are frequently lumped under this banner, but they are really separate concerns. For example, artificial intelligence may be focused on computer science or psychological concerns; artificial vision may combine physiology, psychology and algorithms; and robotics is fundamentally an engineering problem, although it can make good use of the previous two kinds of research. (See strong AI, weak AI) ASAP - (1) as soon as possible. (2) Application-Specific Array Processors, a conference of the IEEE Computer Society. ASCII - American Standard Code for Information Interchange. The ASCII standard uses 7 bits to represent keyboard symbols of English and control characters. See the file ldisk$colib:[compsci.jac-txt]ascii.txt. See also collating sequence, EBCDIC. ASIS - American Society for Information Science assembler - a computer program which converts a program written in an assembly language into instructions for a specific computer system. See assembly language. assembly language - a programming language which may consist of declarations, labels for addresses, and statements which are in a one-to-one correspondence with instructions on a particular processor. Macro instructions are often included in an assembly language. An assembly language is generally thought of as a computer-dependent or computer-oriented language. asynchronous - not coordinated with respect to time. See "synchronous". ATM - (1) Automatic Teller Machine (2) Asynchronous Transfer Mode, a wide-area, packet-switching broadband technology for LANs. attention panel - Window interfaces utilize an "attention panel" to resolve something which requires immediate attention, like responding to an error. An attention window can cause an infinite loop if it simplifies notifies the user of an error condition without allowing the user to fix it (as in AVS). (see panel) attenuation - the fading (loss of magnitude) of a signal over distance between points. attribute - (1) a column in a table which stores relations of a data base. (2) (n) any property, quality, or characteristic that can be ascribed to a thing or a person. E.g., an type and source are attributes of a data field. (v) to consider something as belonging to, produced by, or resulting from something else. attributed grammar - a syntax-directed definition in which the functions in semantic rules cannot have side effects. attunement - in the jargon of cooperative work, the concept that each person in a group shares a common union, camaraderie, and feeling of personal support with every other member of the group. See Miller, p. 130. audit trail - a record of each operation on an object. For example, an audit trail might be a record of all actions taken on a bank balance or a sensitive file. automatic - (1) an action done by machinery without outside commands, or (2) an action done by an organism without conscious effort or voluntary control. availability - considered as a function of time, availability is the probability that the system is operational at a particular time. (Related terms: reliability, MTTF, MTTR, MTBF. Contrast the probability of gaining access, availability, with the probability of system survival for a given time period, reliability.) AVL tree - a binary tree in which the height of the right and left subtrees of each node differs by at most 1. The name AVL comes from the initials of two Russian mathematicians, G.M. Adelson-Velski and E.M. Landis. An AVL tree is a minimal height tree for a given number of nodes, which assures that the maximum search time for any node is minimal. However, the average search time (for uniformly distributed searches) is not minimal until a search tree is also "weight-balanced". Related terms: pivot node, rotation of the nodes of an AVL tree. AVS - Application Visualization System, software available on the DecStation 5000 network in Stright 219. awk - a Unix utility that is also a programming language. It is named after Aho, Weinberger, and Kernighan. Its greatest usefulness is in processing a single sequential file with a compact yet clear language. Its logo is an auk, a puffin-like seabird of the northern hemisphere. B+ tree - a B-tree with all the actual keys and data organized in the leaves as a linked-list called a "sequence set". A B+ tree is often used as a file index. b-tree - (Aho, Hopcroft, and Ullman, 1983) an m-ary search tree with the properties: (1) The root is either a leaf or has at least two children. (2) Each node, except for the root and the leaves, has between ceiling (m/2) and m children. (3) Each path from the root to a leaf has the same length. Note: a b-tree is an almost-balanced m-way search tree. Babbage, Charles - recognized as "The Father of Computing" for his early designs for automatic, programmable, numeric computing devices. His design for an "Analytic Engine" (1846) is the earliest documented design for what we now call a computer. bacterium - in hacker jargon, a stand-alone program that repeatedly replicates itself and takes over a system by its sheer numbers. bak - a filename extension that indicates a backup file. bandwidth - technically, the difference expressed in hertz between the two limiting frequencies of a communication band. Popular use of the term has concretized the meaning to the simultaneous signaling capacity of a communication band. For example, bandwidth may be expressed as the number of simultaneous voice, data, and video links through a single cable. banner - (1) a message printed on continuous paper in very large letters. (2) a message displayed to users when they log in to a particular project or onto a system. bannerware - freeware that is distributed primarily to promote another product. For example, its documentation may describe an additional program. (This term was originated by Public Brands Software.) baseline - the collection of items for a project which have been accepted for configuration management support. The contents of the baseline are tightly controlled to ensure integrity in the software product which is derived from it. BASIC - an acronym for Beginner's All-purpose Symbolic Instruction Code. BASIC was developed at Dartmouth College in the 1960's as a simple, easy-to-learn programming language. batch process - an off-line process that is scheduled by a computer's operating system to suit system load and available resources, rather than direct interaction with a computer user. A batch process is the opposite of an interactive process, which executes on-line at a user's command and allows direct interaction between a user and the computer as the process occurs. baud - transmission rate in bits per second. The IEEE standard definition states: a unit of signaling speed equal to the number of discrete conditions or signal events per second. bbs - a bulletin board system that is computer-based with communication links to other computers. At a minimum, the bbs host should allow remote connections and posting and reading bulletins by the users of the system. The BULLETIN system on the IUP vax requires a special privilege to add bulletins, which simplifies its management but limits its impact as part of the IUP community. See bulletin board and bulletin. benchmark - a point of reference from which measurements can be made. In computer jargon, this becomes a test designed to evaluate the performance of computer systems, programs, or devices. beta testing - product testing done at selected customer sites prior to general product release and support by creating organization. Engineering should remain closely involved with beta testing. The purpose of beta testing is to expose the product to a wide variety of uses and volume usage, and to expose bugs and deficient functionality. binary tree - a finite set of nodes which is either empty or consists of a root and two disjoint binary trees (called the left subtree and the right subtree). binding - making an abstraction more complete by associating it with specific properties. Examples include binding a specific memory location to a declaration that a variable of a certain type is needed. A second binding would be to establish a particular value for a variable. The type of the variable might also be considered a preliminary binding. Binding at compile time is "early" and "static" compared to binding at run-time which is "late" and "dynamic". Run-time provides the flexibility of generic data types for OOP, but it also provides run-time overhead and adds complexity. For this reason, early binding may be preferred when there is a choice. biometric device - a device which measures physical or behavioral characteristics of a user for the purpose of identifying the user to a system. Examples include fingerprint reader, retina scanner, voice verifier, signature dynamics, keystroke rhythm. (Galura, 1993) BIOS - Basic Input-Output System. This term goes back at least to the infancy of personal microcomputing. It was present in early Commodore Computers as the name for a chip and in CP/M and DOS operating systems. bird - _~~_ / ) ___( o ) \ ) > < /\_____. / \ / / ( \ / / ( < \ / ( \ > / \ \ |' \_ ____/ \ | V V \ | | | ` / | /T\ /T\ (Copied from help messages for the lark.x processor on Honeywell CP-6) bit - a binary digit; the smallest unit of computer data storage. bit-mapped display - a display that consists of specifications for individual bits rather than character strings. bitmap - a common term for a rectangular image that is stored offscreen. The term is technically incorrect because each pixel value may consist of many bits. The term pixel map is more correct, but the term bitmap is more popular. See pixel map and bit-mapped display. bitnet - an acronym for the "because it's time" network for electronic mail. Bitnet was initiated in 1981. Bye 1992, bitnet has been largely superseded by the Internet network. bitwise operator - an operator that operates on the bits contained in data values rather than the values that those bits represent. For example, a one's complement changes the sense of each individual bit (from off to on and vice versa). Other common bitwise operators are shift, and, or, and exclusive or. black box - a view of a program from the outside as a "black box" which responds to input. See also white box. blind copy - a second set of copies whose recipients are only known to other blind copy recipients. All copies of the message should show TO and CC lists in the headers. Copies to BC recipients should also show the BC list. (Mark Strawcutter, IUP Postmaster, October 20, 1991) block - (1) any group of contiguous characters in a document or display that may be processed as a unit. For example, a block of disk space in the IBM VSM system is 512 bytes. (2) see program block block if - a synonym for a "General IF Statement" (see general if). The emphasis in this term is on the ability of the language you are using to encapsulate a "block" of statements as the actions which are dependent on the conditions in the if statement. (see block-structured language) The Fortran IF statement and the Cobol 85 IF statement are considered to be block-if statements because they have an ENDIF statement which can mark the end of things which depend on a particular IF. block structured - see block-structured block-if - see block if block-structured language - a programming language which has the capability of encapsulating local declarations, control structures, and imperative statements in a manner which allows them to be treated as a single imperative statement. Fortran and Cobol are not block-structured languages; C and Pascal are block-structured languages. Bloom's taxonomy - a hierarchical list of cognitive skills developed for educators but widely applied wherever a little knowledge of educational psychology can be a big help in analyzing human cognitive skills and performance. blow up - see "bomb" Boehm's spiral model - an alternative to Royce's waterfall model of the software development. See IEEE Computer, May 1998. The essence of Boehm's spiral model is that as each stage in product development is completed, the next phase is planned and management decisions are made. The key element in each spiral is risk-based decision making. bomb - to fail suddenly, totally, and/ or disastrously. boot - the process of reading the operating system (in Unix, the kernel) into system memory and starting it. booting - the process of loading and running the operating system. bootstrapping - a figure of speech describing an ambitious person pulling herself up by her bootstraps. In computing, loading an operating system by running one instruction, which loads additional instructions, until the whole operating system is loaded. (Rob Leister, 1993) bot - short for "robot" in the argot of people who are addicted to on-line discussions on the Internet. See also IRC. bots - see bot bottom-up development - designing, coding and testing subprograms before you develop the programs that use them. bottom-up testing - testing a subprogram with a driver program before testing it with an application program that will use it as a subprogram. brainstorming - Brainstorming is a technique for generating ideas. Brainstorming is normally done in groups, but it can also be used for individual idea generation. The ground rules for brainstorming are designed to produce quantity, from which quality is later derived. > Each person must be able to contribute to the solution of the problem. > Record ideas publicly. > Suspend evaluation until the group agrees to end or suspend the brainstorming phase. > Encourage embellishment and building ideas, rather than evaluation. > Stretch for ideas, even wild ones. Problems with brainstorming include: > poor statement of problem (e.g., "How to bash registration at IUP" vs. "How to improve registration at IUP"). > poor recording of contributions. > idea killers (e.g., "We tried that before"). > reluctance to contribute ideas because of interpersonal factors (e.g., a contribution may sound dumb or be dumb but have good points; idea may conflict with ideas of boss). > may need to be combined with idea generation techniques (e.g., SCAMPER = substitute, combine, adapt, modify, put to other uses, eliminate, reverse rules or rearrange patterns. Miller, pp. 64-81). The effectiveness of brainstorming is derived from its openness to unconstrained associations to a problem that may are generated by human minds. Synergism is generated by triggering effects of the list as it develops, even when the technique is used by a single person. Brainstorming is also a low-budget, easily implemented technique. (Hence, it sometimes happens that a group uses it when another technique would be more appropriate.) breadth-first - working with each level of a hierarchically structured thing completely before proceeding to the next hierarchical level. This is equivalent to working with all the Roman-numeraled items in a document outline, then working with all the items labeled with uppercase letters, then integers, ... (see also depth-first) break - a special-purpose key or signal that is often used at IUP to establish multiple concurrent decserv activities. The trick is what key or combination of keys send the break signal from different keyboards at different times. You may need a simple break, a (from a DOS/Kermit system), a (from a Macintosh), or something else. bridge - a device that connects 2 LANs running the same network protocol. (see router). BSD - stands for Berkeley Software Distribution, which refers to one of the major versions of Unix. It is a product of the Computer Science Department of UC at Berkeley. bubble chart - a common term for a data flow diagram (DFD), a notation for specifying the functions of an information system. This notation is attributed to Constantine and DeMarco (1977). The DFD notation is not standardized, but it is simple and popular. The basic elements are "bubbles", circles used to represent functions, and arrows, used to represent data flows. bucket address - a virtual address for a chunk of storage that can contain multiple data records. bug - something in a program or computer system that may cause a run-time error. build - to create an executable version of a system, usually by some combination of compiles, links, and other system commands. See "install" and "make". bullet - a mark to denote items in a list (without indicating a particular sequence). In WordPerfect, bullets can be keyed "4,0". A 4,1 gives an open bullet. Other extended characters are documented in Stright 319. On a Macintosh, you may use or to get a bullet. bulletin - a vms utility that allows users to selectively display and file messages from different bulletin boards on a particular system. Note: JAC sets up the VMS projects he supervises with a one-line login.com to print a file called xxxbulletin.txt. This is similar to bulletin, with fewer features and less control. See also bbs and bulletin board. bulletin board - a metaphor for electronic bulletin board systems. Basically, a bulletin board in a public area allows public posting, browsing, and removal of postings. An electronic version is likely to limit removals access to certain postings at the option of the person who submits the posting. See also bbs and bulletin. bus - in the context of computer systems, any data transmission path. Devices connected to a bus can take data from the bus or place data on it. bye - a word that is often used as a command to terminate an application process or a login session. Similar command words: quit, exit, end, off, logout, sys?, whatever ... byte - (1) an amount of computer storage that contains enough bits to store a binary representation for a character of data and is related to the storage architecture of the host computer system. A byte is typically 8 bits, although the ASCII standard codes for characters require only 7 bits. Some systems, such as IUP's Honeywell CP-6 computer, have 9-bit bytes. (2) A popular computing magazine. C - C is a general-purpose programming language which was originally designed for writing the UNIX operating system and implemented at Bell Labs by Dennis Ritchie in 1972. The first ANSI standard was approved in December 1988. C++ - an object-oriented (OO) superset of the C programming language. Its name is taken from the C increment operator ++. It offers enhancements in information hiding, inheritance, polymorphism, and operator and function overloading. It is the most popular OO language. It is not regarded as being as good a language as Objective C (of NeXT fame) or newer versions of SmallTalk, both of which were designed as OO languages rather than enhancements. One of the difficulties of learning C++ is a tendency for C programmers to simply do everything in C, rather than designing and implementing programs in an OO paradigm. One of the major goals of C++ users is reusing objects, to the extent of sharing or purchasing objects. (Note: the AVS software in Stright 220 has done this very successfully thru a clearinghouse in North Carolina.) C3I (C cubed I) - used by the U.S. military for a command, control, communications and intelligence system. cache - in a processing unit, a high-speed buffer storage that is continually updated to contain recently accessed contents of main storage. Its purpose is to reduce memory access time. (IBM Vocabulary, 1981) CACM - Communications of the ACM, the principal journal of the ACM. CAD - Computer-Assisted Design calendar - a Digital software product that manages appointments and allows individual calendars to be coordinated to schedule group events. Help may be obtained by entering $ runoff ldir$docum:calendar.rno. Special privileges may be required to print this help. CAM - Computer-Assisted Manufacture caret - a ^ character (also referred to as a "circumflex") CASE - (1) computer-aided software engineering, e.g., by the use of a software product such as Excelerator or Teamwork. In its broadest sense, CASE is a generic term for the automated support of software development (see Sommerville, 4th Edition, p. 330). (2) in programming, a "case statement" is a decision structure that chooses one of a list of actions. In Pascal and C, there is a case / switch statement that chooses one of a list of actions depending on the value of a single variable. Cobol has a more powerful "EVALUATE" statement. Higher-level languages normally allow some form of an IF..ELSE IF..ELSE..END-IF implementation of a case statement. A case statement is also known as a multiple-alternative decision. See also "linear nested if". case-sensitive - software which interprets user input differently if it is in capital letters or "small" (lowercase) letters. Unix is case-sensitive; VMS and MS-DOS are not. cat - (1) a Unix utility that is the equivalent of a VMS "type". The term is derived from the word "concatenate," which is a weird thought, but that's Unix for you. (2) short for "catalog", the Apple-DOS equivalent of a "dir" command. CBIS - Computer-Based Information System. See Computer Information Systems. CCITT - the Consultative Committee of International Telephone and Telegraph. CCP - Certified Computer Programmer. See ICCP. cd - the "change directory" command on DOS and UNIX systems. VMS users may program their own version of a cd command (but the directory structure at IUP makes it tricky.) As one option, you could define cd :== "@ldisk$colib:[compsci.jac-com]cd type or print ldisk$colib:[compsci.jac-com]cd.com for details, but note that this is only one possible personal cd command on the VMS system at IUP. CD-ROM - compact disk, read-only memory. CDP - Certified Data Processor, an ICCP certification. See ICCP. CDR - (1) Critical Design Review (2) a builtin function in LISP Centris - A name for a model of Macintosh computers. (Dr. Cross has a Macintosh 650 in his office as of Spring 1994.) CEO - Chief Executive Officer CERN - European Center for Nuclear Research (in Switzerland), where the WWW started and still a popular starting point for exploring the WWW. CGA - Color Graphics Adapter card. This is the most primitive way of getting color capability on a microcomputer display. See EGA and VGA. CGM - Computer Graphics Metafile defines the way graphics images are stored in a device-independent fashion in peripheral storage devices for archiving and for transfer to other systems. channel - a programmable processor which connects a CPU and its main memory with I/O device controllers. The operating system of the device which uses the channel usually sends it a "channel program". See channel program, "selector channel" and "multiplexor channel". channel program - the instructions that are executed by a channel to access devices and control data pathways. (Loomis, p. 446) chaotic system - a dynamic system which exhibits large changes in the system at later times when small changes are made in its initial conditions. See also dynamic system. character constant - a value that is a string of one or more characters and is expressed as a literal expression, often within quotes, or an identifier for a value that is not allowed to vary within a program. Fortran statements enclose character constants in single quotes; Cobol encloses them in double quotes and calls them nonnumeric literal values. character string - a sequence of characters that is treated as a unit. In computing, a character string value is often enclosed within quotes. A length is usually associated with a character string value. A substring is any set of adjacent characters taken from a string. chat - see IRC chauffered style of EMS - only one person uses the EMS technology. For example, a typist could record brainstorming ideas in a word processor connected to displays visible to everyone at a meeting. VisionQuest supports group interaction but allows verbal exchanges among a group. VaxNotes, as it is designed to be used asynchronously, could be described as an interactive use of EMS with few or no other verbal exchanges. checksum - digits or bits summed according to arbitrary rules and used to verify the integrity of data. For example, a checksum operation may result in a 64-bit number being appended to a long message, so that a change in the message would cause the message and the checksum to no longer match and indicating an error. CHIEF - An acronym standing for Communications Handler and Information Exchange Facility. The CHIEF operates much like a telephone switchboard. Some CHIEF lines are connected as terminal lines, to the campus users or modems. Other CHIEF lines are connected as service lines, to communications handlers on the ethernet, known to users as DECSERV, LATSERV, TELSERV, and/or XYPLEX. Some service lines are connected to outdial modems. Service lines could also attach directly to the IUP computer systems, but this is not as cost-effective as using communications servers. Typically, when a user attaches to the CHIEF, they receive a prompt which says: "Which service would you like?" The user picks the communications server desired, or modem, etc. The CHIEF then creates a data connection between the user's terminal line and the communications server. Due to the scripts included with the KERMIT software, many users do not see this interaction. The scripts connect users directly to the computer system of their choice, without any manual interaction on the part of the user. << contributed by Don Rosenberger, 3/18/94 >> chip - an integrated circuit on a piece of semiconductor material Chronicle of Higher Education - http://chronicle.merit.edu chronological order - arranging data in the order it occurs (rather than by values of its fields). CICS - an IBM product for Customer Information Communication Systems. This software has been used since the early 1970s to provide full-screen I/O in a Cobol context and manage concurrency and reentrant code needs to facilitate the use of corporate information resources based on an IBM mainframe. circuit switching - a method of communication in which communicating devices use a dedicated end-to-end path that is held for the duration of the call. Most telephone voice connections are circuit-switched. CIS - see Computer Information Systems CISC - Complex Instruction Set Computer (typically around 300 instructions.) class - a set of closely related objects sharing similar attributes. A class description defines the properties and features that characterize the behavior of any object that is an instance of the class. A class is an abstraction that extends the concept of an abstract data type to include inheritance and polymorphism. Note that a class may be a possibly partial implementation of an ADT. (a template for an object) class library - a group of classes for similar tasks. Class libraries become a corporate resource that can be bought, sold, and traded. For example, class libraries exist for GUI manipulations and mathematical and CAD functions. cleanroom software engineering - a process for developing error-free software thru formal verification that each artifact of the development process meets its specification and statistical testing of the available executable software as each increment is submitted for testing. This process is described in Cobb & Mills, IEEE Computer, November 1990, pp. 44-54. clear box - a better term for "white box", but it is less commonly used. client/server model - a system in which application processing is shared between at least two linked computers thereby enabling the originating node (the client) and the node or nodes which are linked to it (servers) to accomplish something that no single node could do by itself. This is the basic model for distributed computing. Client/server applications include file-sharing, messaging (e.g., E-mail), and processing-intensive applications that distribute computing tasks among connected computers. closed lab - a lab in which students from a single class work on a single task with supervision. See also open lab. closed subroutine - (ISO standard) a subroutine of which one replica suffices for the subroutine to be linked by calling sequences for use at more than one place in a computer program. cluster - (1) a VMS term for the smallest allocatable number of blocks of disk storage. The default cluster size on public packs at the IUP ISCC is three. (2) an IBM term for a VSAM data set which includes a data component plus any control or index components for the data component. CM - (1) configuration management (see entry under configuration management). (2) Connection Machine, a parallel computer. CMM - Capability Maturity Model, an SEI term coined in 1987 and evolved since then. The most recent publication is the 1992 SEI Technical Review. CMOS - Complementary Metal-Oxide Semiconductor. CMOS is a technology for RAM. CMS - The VAX DEC/Code Management System is a library system for software development and maintenance. CMS stores source files in a library, keeps track of changes made to the files, and records user access to the files. (see vms help cms) CNRI - Corporation for National Research Initiative COBOL - Common Business-Oriented Language COCOMO - COnstructive COst Model, a Barry Boehm method for estimating software cost. It is an algorithmic model that starts with a base estimate and refines that estimate based on factors related to the application, the development environment, and the development team. See "Software Engineering Economics," by Barry Boehm, 1981. CODASYL - The Committee on Data Systems Languages. A non-profit "volunteer" committee that makes recommendations on standards for programming languages to ANSI. code - [noun]: a representation of data structures or executable procedures in a form that a computer can compile or interpret. Fred Brooks calls code "the accidents" of software engineering in his "Silver Bullet" article. [verb]: to write code. Arguably, coding and programming are the same. Programmers are a lot happier if you let them design, compile, and test. code generator - software that translates a program model into compilable code. cognitive dissonance - a theory that individuals who hold certain beliefs or who have made a certain decision avoid, reject, or fail to perceive things which contradict those beliefs or that decision. cohesion - a measure of the strength of relationships within a module of software. Parnas (CACM 1972) categorized and ranked different forms of cohesion in a form which is still useful today. See Sommerville, 4th Edition (1992). cold boot - starting (booting) a computer by turning it on. collaboration - to work jointly with others, especially in an intellectual endeavor. (Webster) Collaboration involves a group focus on a single concern. See also "cooperation", "coordination", and "CSCW". collaborative filtering - people collaborate on selecting documents from a document server by recording their reactions or annotating the document. (Cathy Lawrence, 1993) collate - to merge two or more data sets in an organized way. Often, the original data are arranged in sequence by the same attributes and the collating activity consists of merging them into a combined file which is in the same sequence. collating sequence - the ordering determined by a set of codes. For example, the ASCII collating sequence for character data includes putting blanks before numeric digits, followed by uppercase (capital) letters, then lowercase letters. The EBCDIC collating sequence places blanks before lowercase letters, then uppercase letters, then digits. See ASCII and EBCDIC. collision - the event that two records in a relative file have keys which hash to the same home address. collocated - working together in the same place, as opposed to geographically distributed work activities. colors - in DOS (or Kermit), screen colors may be set as follows. From: GROVE::WYJTGWA "CPT Donald E. Rosenberger" 26-OCT-1994 16:57:48.44 To: JACROSS Subj: Kermit colors Hi, John. I found my old notes on DOS colorization, so wanted to save you a little research time in Kermit...... As you know, the commands to use are: set term color foregnd ____ set term backgnd ___ set term color foregnd ____ backgnd ____ It seems that colors ONLY CHANGE when 30's are used for foreground, and 40's are used for background. The colors are: 30 or 40 :: black ------ 1 :: red 2 :: green 3 :: brown 4 :: blue 5 :: cyan 6 :: aqua (light blue) 7 :: white command - a message to a computer that directs the computer to perform an action. communication - a process which results in a sender signalling a receiver in such a way that the receiver is informed in a way that the sender intended. compiler - a program used to translate a computer program expressed in a problem-oriented language into a computer-oriented language. The input to a compiler is called source code and the output of a compiler is called an object-unit, together with an optional compile listing. An object-unit normally includes many calls to subprograms that must be linked with the object-unit before a program can be run. Fortran, Pascal, C, and Cobol are examples of common problem-oriented languages. complementation constant - the number to which a binary integer in its "true form" (X) and its complement (X') add up to (R). That is R = X + X'. In two's complement form, R is a power of two. In one's complement form, R is one less than a power of 2. See Loomis, Chapter 1. complete binary tree - a binary tree with leaves on at most two adjacent levels (Standish, 1980). compound statement - a group of more than one statement in a programming language, with some language structure which allows that group to be treated as a single statement according to the syntax of the language. For example, PASCAL has the BEGIN .. END construct, and COBOL85 has ENDverb constructs. computational science - scientific investigation through modeling and simulation of physical processes on computers. computer - (1) a machine that manipulates symbols and can be programmed. The advantages of computers are speed, timeliness, precision, the ability to perform complex procedures reliably, low cost per instruction, and the ability to store and retrieve large amounts of data. (2) the basic journal of the IEEE Computer Society. computer architecture - the attributes and behavior of a computer as seen by a machine language programmer. (Doug Rutledge, 1993) computer art - works created with the aid of computer-based tools and methods for the purpose of fulfilling an aesthetic need in the creator as well as in the public (I.V. Kerlow, BYTE, September, 1984). computer conference - a computer-mediated conference among people. For example, IUP VaxNotes and the LotusNotes software support computer conferencing. A computer conference is generally considered to be an "asynchronous, dispersed" interaction. See also EMS and teleconference. computer graphics - the computer-assisted creation, storage, manipulation, and display of graphic representations. Computer Information Systems - a popular title for an academic department that combines some of the features of Computer Science (CS), Management Information Systems (MIS), and Information Science (IS). The focus of a degree in CIS is on information systems that include computer technology as an essential element. See also system and information system. computer network - any arrangement which allows computers to communicate directly with each other. computer program - a representation in a computer programming language of an algorithm for manipulating symbols. computer programmer - a person who represents algorithms and data structures in computer-readable form. See also software engineer. computer programming language - a set of conventions for expressing algorithms in a form that can be executed by a computer, possibly after compilation or interpretation by suitable language processing programs. (See Ledgard and Marcotty, 1986, pp. 6-7.) computer science - the study of problems of data representation, communication and processing in automatic computing machinery. This encompasses the development and application of theoretical knowledge in three main areas: 1) data structures, algorithms, programming languages and the representation of knowledge 2) management science, especially in the areas of software engineering and computer system resource management 3) computer engineering, especially in the enhancement of the data storage, communication and processing capability of computing machinery. computer scientist - see computer science computer virus - a small and unwanted program that replicates and attaches itself to other programs in the system. The metaphor of a virus is appropriate because it is an unwanted infection that can spread to other systems that come in contact with an infected system. concatenate - join things together (without merging or rearranging the parts of those things). For example, "abc" concatenated with "xxx" is "abcxxx". concurrent - activities or events which occur at the same time condition name - in Cobol, a name for a condition. Condition names are coded with a level-88 sentence anywhere in the DATA DIVISION. conditional operator - a ternary operator in C which is the equivalent of a double-alternative if statement. For example, x > limit ? "OK" : "NOK" conditional statement - in Cobol, a statement which may "branch". In Cobol-85, all conditional statements may be terminated by END- scope terminator. For example, the IF and READ verbs begin conditional statements. A PERFORM ... UNTIL statement is conditional, while a PERFORM statement without an UNTIL clause is an imperative statement. See also "imperative statement". conference - in VAXnotes, a file of topics and replies managed by the NOTES software. Forms of VAXnotes conferences include meetings, public forums, notebooks, and bulletin boards. To get started in VAXnotes, enter the command "notes". Suggestion: open sample_conference and read a few entries by pressing returns. configuration management (CM) - identifying the configuration of a system at discrete points in time for the purpose of systematically controlling changes to that configuration throughout the system life cycle. Software configuration management (SCM) specifically refers to the management of things such as source code, test data, system files, and user documents throughout the software product life cycle. Tools that support configuration management include the Unix make utility, AT&T's Source Code Control System (SCCS), and DEC's Code Management System (CMS). connect - to reconnect a disconnected process: do a $ show user /full username do a $ connect vta5024: (or whatever the disconnected VTA is) If necessary, do a and maybe an EVE DO: refresh to get your screen back. (It works neat!) connectivity - how many people or networks nodes are connected in a particular situation. The concept is that having a computer means a lot of more if you are connected to interesting people and computing resources. constraint - in the context of software engineering, a system constraint is any limitation on a system or its development. For example, schedule (by Christmas), cost (free), system (PC with 286 processor and 1 Mbyte), staff (IUP students), ... (Yes, requirements are constraints, but the term is usually applied to things that defined during system development. Requirements may have more fuzziness and flexibility than constraints.) contention - the event that occurs when two or more processes are competing for the same system resource. This most commonly occurs when two or disk I/O requests are competing for disk access. context-dependent grammar - a grammar in which one or more of the productions has more than one symbol on the left-hand side. For example, the production assignment_statement --> {identifier} = {expression} defines the syntax of an assignment statement only to the point of assuming that identifier has been declared or implicit declaration and typing are part of the language, there are no irreconcilable type conflicts, identifier is not an INPUT-only parameter, and maybe other things. These things are often stated as "rules" for the production and the form of the grammar is treated as "context-free". However, the following production is context-dependent. {paragraph} within a specific Cobol Procedure Division --> {previously-referenced-paragraph-name}. {sentence}... context-free grammar - a notation for specifying the syntax of a language with the four components: 1. A set of tokens, known as terminal symbols. 2. A set of nonterminals. 3. A set of productions where each production consists of a nonterminal, called the left side of the production, an arrow, and a sequence of tokens and/or nonterminals, called the right side of the production. 4. A designation of one of the nonterminals as the start symbol. continue - (1) a dummy statement in Fortran and Cobol. (2) to continue a statement in: VMS ~ end a line with a dash and start the next line after column 1 Cobol ~ a bad idea, but start the next line with a dash. To continue a quote (alphanumeric literal), take the previous line as far as you can and restart the quote on the next line with a ". Fortran 77 ~ place a dash in column 6 and keep on going Unix and C ~ end the first line with a \ (which "quotes" the following return). control break - an event that happens when a sorted file is processed sequentially and the current record has a field in the sort key which is different from the previous record. For example, a file which contains records sorted by a Julian date could have a major control break on year and a minor control break on day. End of file (EOF) is often considered to be a final control break. control field - a data field that is used to group items in a report. control file - an output of a file maintenance activity containing data concerning the activity. For example, the number of records in the file before the run, the number of records added and deleted, and the number of records after the run. (See M&P, Chapter 1 or Glossary.) control flow - a computing term for the sequence of processing events in a serial algorithm (i.e., a procedure that does not include concurrent processes). Flowcharts and pseudocode are common tools for describing control flow. control footing - data for a control group in a control-break report that are printed after the details for the control group. control group - a group of records that have the same values for a control field in a control-break report. control heading - a heading in a control-group report that is printed before the details for the control group. control interval - an IBM term for a unit of disk storage that VSAM transfers between disk storage and virtual storage when an I-O request is made. This term is equivalent to the VMS meaning for the word "cluster". control total - a total for a control group. Final totals and counters are usually thought of as control totals. control-break report - a report which is in sequence by at least one control field and includes a control heading and/or control footing for the control groups. When a control-break report does not list data for individual records it may be referred to as a summary report. control-group - see control group controllability - a property of computer programs which describes the ability of a user to select inputs which will produce ANY specific outputs that are in the output domain of the program. A program which does not have this property has a more restricted output domain than what is specified in its interface. cooperation - an association of persons for common benefit which is marked by a willingness and ability to work together. (Webster) Cooperation may be distinguished from collaboration by a division of labor. See also "coordination", "collaboration", and "CSCW". coordination - a work pattern in which tasks are brought into common timing, action or movement. copy statement - a Cobol statement that "includes" Cobol code from a file which is separate from the source code prior to compilation. Other languages do a similar thing and call it an "include" statement. The code that is copied into a program is called a "copy book" in Cobol. The copy statement concept is different from a "macro" because macro code is compiled (or assembled) before it is inserted into a file. See ldisk$colib:[compsci.jac-txt]cobol-copy.txt for a handout. core - an obsolete term for main memory. COSMOS - The registration and student records access system on the administrative vax at IUP. To get COSMOS documentation, print/q=laser ldir$docum:adminb.doc (4/24/92) To get into COSMOS as a faculty member on an administrative system, simply enter COSMOS at the VMS prompt. Note that you will need a password. counterintuitve - a situation in which your intuition fails you. For example, computer people and users who like to speak rather than type think that "voice annotation" of word-processed documents is a feature that is likely to be very popular. Their intuition is misleading because voice annotation turns out to impractical in may situations. (See Grudin in CACM, January 1994) coupling - a measure of the interdependence of modules in a design structure; the amount of information shared between two modules. (De Marco, 1978) Strong coupling complicates a system since this makes modules harder to understand or modify by themselves. coverage testing - designing tests for a program so that every statement and every path through the program are tested. It should normally be possible to test every statement, unless there is unused code; it is often impractical or impossible to test every path. COW - an acronym for "Can Of Worms." The term has been applied to some really messy diagrams, especially in software engineering and system design. cp - the Unix command which invokes the copy utility. See "man cp" on a Unix system. CP/M - see CPM CPM - (1) Critical Path Method, or (2) Control Program for Microprocessors, a popular operating system for microprocessors in the late 1970's and early 1980's. CPU - central processing unit; controls and coordinates communication among a computer's components and interprets and executes instructions. cr - carriage return; an anachronism for the "Return" or "Enter" key on a keyboard. Note that there may be a difference between the meaning of an Enter key in a numeric keypad and a Return key which is part of an alpha group of keys. cracker - someone who attempts to penetrate the security of a computer system for malicious or criminal purposes. cross - /CROSS_REFERENCE is a compile option that controls whether the compiler creates a cross-reference listing as part of the listing file. A cross-reference listing is a report of what identifiers are declared in a program, what line they are declared on, what lines they are used on, and a * indicates where their value is changed. CS - Computer Science. See entries for Computer Science and computer scientist. CSAB - Computing Sciences Accreditation Board CSCW - Computer-Supported Cooperative Work; both a professional organization and an annual conference dedicated to CSCW. Groupware may be defined as software for CSCW. CSE - Computer Science Education CSP - Communicating Sequential Process (see Hoare, Communications of the ACM, Dec. 1978.) CSTB - Computer Science and Telecommunications Board, a unit of the National Research Council. The board conducts studies and hosts workshops in accordance with its charter to promote the health of computer science, computing technology, and telecommunications. cursor - a visible marker on a VDT that indicates where the user is pointing. In text editing, the cursor is often a blinking rectangle or underscore that indicates where the next typed character will be entered. cybernetic composition - process by which music is composed through the collaboration of a human and a machine (also called automated composition). (Jeff Senley, 1991) cybernetics - the science of control processes, wherever they occur, whether in nature or in artifacts. cyberphobia - fear or dislike of computers. Similar terms: computer anxiety, computer phobia, technophobia. Possible reasons for cyberphobia include: > a connection to math anxieties, > poor typing skill, > fear of being blocked in job markets, > fear of being left out or left behind, > intimidating gadgets, > forced changes in work activities, > dislike of being treated as data rather than a human being (depersonalization), > loss of privacy (as discussed in Arthur Miller's Sam Jack lecture 10/29/92), > nervousness about computer matching or other ways of computers being used for some sort of negative action against an individual, > fear of computer failure or computer error. cyberspace - the space of data, events, and actions within networks and digital media. For many people, this is dominated by Internet or other public computer networks. cycle - a "clock tick" in a CPU. The basic unit of time for measuring the speed of a process, but there are other factors: e.g., word size, bus width, average cycles per instruction. cycle stealing - occurs when a data channel and the CPU (or any other processor) attempt to access the same area of main memory simultaneously. Memory cannot be accessed this way, so time is "stolen" from the CPU cycle. cylinder - the set of all tracks on a magnetic disk (or disk pack) that are the same distance from the center of the disk. The tracks in a cylinder can all be accessed without repositioning a movable access mechanism. daemon - a process that runs in the background and performs a system function. For example, a printer daemon which controls a printer. DASD - Direct Access Storage Device data - physical representations of facts or concepts suitable for communication, interpretation, storage, or processing by minds or machines. Data must ultimately be viewed as signals which can be detected by human senses, although those signals may have to be enhanced before there are perceptible. data channel - a device that connects a processor and main storage with I/O control units. Direct memory access (DMA) allows data transfer to occur without the direct attention of the central processor. data dictionary - an automated central collection of descriptive information about data resources and their relationships. Data resources are typically described in terms of subjects, relationships, and attributes (e.g., as in the IBM DB/DC Data Dictionary software product). For example, the entry for "student_name" might describe it as a group data item composed of last name, first name, middle initial, with fixed or variable length and what the limits are, which programs access and/or change it, if an audit trail is kept of its uses, whatever. Note: an integrated toolset should require that all system identifiers be defined in the data dictionary. data engineering - designing a large system so that the data required by individual processes will be available, correct, consistent and in the proper form at the time it is needed and at an appropriate cost. (see engineering) data file - see file data flow diagram - a diagram which shows the flow of data in a system between procedures (or transformations) and the input and output of that system. Data flow is shown by labeled, directed flow lines; transformations are shown by circles, rectangles, or round-cornered rectangles; files are shown by special symbols; control (selection and iteration) are not normally shown. Gane-Sarson and DeMarco diagramming styles are 2 of the popular forms of data flow diagrams. Data flow diagrams are useful for abstracting the details of a transformation into lower-level diagrams. Lower-level details must have the same net input and output as the parent chart; this is called "balance". data independence - the property of being able to alter the form or content of stored data without affecting the ability of existing programs to process it correctly. data management - (1) the methods used to store and retrieve data. (Johnson and Cooper, p. 29) (2) applying traditional management concerns to a data resource: planning, organizing, directing, and controlling. Data management responsibility includes concern for backup, disaster planning and recovery, integrity, security, audit, usage records, and other things! (JAC, February 1993) data name - see data-name data security - protection of data from error, loss, and unauthorized access. The leading security risk is accidental error, but data managers must also concern themselves with power failures, disasters, disgruntled employees, hackers, and other criminals. Terms entered into this glossary from IEEE Spectrum, August 1992, include audit trail, bacterium, checksum, computer virus, digital signature, intruder, logic bomb, trigger condition, Trojan horse, and worm. data structure - (1) a grouping of related data items. (Koffman and Friedman) (2) logical relationships between records in a file. (Loomis) data type - a name for the values which a data item may assume. For example, some of the FORTRAN data types are INTEGER, REAL, LOGICAL, CHARACTER, and COMPLEX. For example, PASCAL allows structured data types, such as arrays and records, and ordinal types which may be limited-range or enumerated. data-name - an identifier for a data item in a computer program. database - a collection of logically related data that supports shared access by multiple users and applications. A database typically contains data about multiple types of entities and information about how the entities are logically related to each other. The data are integrated (not redundant) and there are multiple access paths. dataglove - an input device that is sensitive to finger, hand, and arm movements. In current virtual reality applications, a dataglove allows its user to manipulate objects in a virtual reality. DBA - Data Base Administrator dbf - a filename extension that dBASE III PLUS uses to indicate a database file. DBMS - Database Management System; software that manages a database. DCE - Distributed Computing Environment, an OSF standard. AFS has been implemented as a major component of DCE. DCL - Digital Control Language, the command language interface for the DEC VMS operating system. Note: the following is an example of how to continue a dcl command onto a second line: $dir !- is a dash or hyphen; _ is an underscore or zot. _$*.for !I did not type the dash because glossary confused it with ! a new term. DCS - see Distributed Computing System DDA - refers to a (symmetric) digital differential analyzer algorithm for vector generation. (May also refer to Direct Data Access. See DMA.) DDE - an acronym for Dynamic Data Exchange. An example of DDE might start with creating a chart from a spreadsheet, then including the chart in a word-processed document. If you would then change the spreadsheet data in a way that would change the chart, DDE would automatically update the word-processed document when it is displayed or printed. deadlock - in a computer system, the condition of an infinite wait loop. The following combination of events cause a deadlock: (1) two or more processes require exclusive use of the same resources (2) these resources are not preemptible (3) some resources are held by each process while waiting for use of others (4) there is a circular wait. (Contributed by Jessica Ng, May 1993) deadly embrace - a situation in which two or more processes are waiting for resources held by the others, and thus unavailable. This results in a stalemate situation which cannot be resolved without intervention, hence the term "deadly embrace". A frequently used but less colorful term for the same situation is "system deadlock". debug - a Digital software product for VMS that allows source-level execution of a program which is written in any of a variety of programming languages. DEC - Digital Equipment Corporation (proud vendors of VAX and #2 in hardware) decimal digit - one of the digits 0,1,2,3,4,5,6,7,8,9 decimal notation - numeric values represented in base 10 form using decimal digits and place value. decision table - a presentation in tabular form of conditions and actions, called rules; a table of all contingencies that are to be considered in the description of a problem, together with the actions that are to be taken. declare (an identifier) - in a programming language, an expression that communicates to the language processor attributes of an identifier, without necessarily allocating memory space or assigning a value. See define and binding. DECstation - a product line of Ultrix (Unix) workstations manufactured and marketed by DEC. See also VAXstation. default - the action a system will take when you do not choose an alternative. The default response that a system will assume in a dialog is often shown by enclosing it in brackets. For example, when you exit from a word processing session, you may notice the following question on your display: Do you want to save the latest version of mystuff.txt? [Yes] If you enter a return, the system will assume that you want to save a copy of mystuff.txt. default drive - in DOS, the drive which DOS will assume contains files that it looks for. On a standalone PC with a hard drive, the default drive is normally c:. On a networked PC, the default drive is often F:. (similar terms: current drive; logged drive) define (an identifier) - in a programming language, allocate space for an identifier. A value may also be assigned, but this is not necessary. Note: by common usage, the expression "define a variable" often means to declare a variable and simultaneously allocate memory for it. This is an appropriate mental model for what is done in Cobol 74/85 programs. delimiter symbol - a symbol that signals the beginning and/or end of a syntactic unit, such as a comma in a list or parentheses in a formula. delta - the changes that were made to an old version of a file to make a new version. The "TPU" files maintained by EVE are analagous to a delta. The idea is to save the changes, not the entire file. demographics - the statistical characteristics of a human population. demon - see daemon, a Unix term depth-first - the equivalent of doing a preorder traversal of the hierarchical structure of an object. In terms of a conventionally outlined document, this would amount to reading the document straight through. System builders often like to present their designs in breadth-first fashion, but audiences often prefer depth-first. In depth-first top-down testing, modules are tested one at a time using stubs in an inorder traversal of the hierarchical module structure. See also breadth-first. design - a statement of specific data, procedural, and architectural details which satisfy a requirement for a system. Requirements state WHAT services are needed and WHAT constraints there are on a solution; a design describes HOW a specific system will be constructed and HOW it will work. design technique - design is an art more than a science. A design technique is an attempt to *systematically* produce a design. "Structured design" (Yourdon and Constantite, 1979) is an example of a design technique. deskcheck - a procedure for checking an algorithm or program without running it on a computer. desktop publishing - the use of personal computing to prepare documents for publication. Desktop publishing combines word processing with page composition, graphics, multiple fonts and font sizes, color, and whatever else contributes to a professional publication. The basic components of a desktop publishing system are a personal computer, a word processing program, a page makeup program, and a laser printer. PageMaker is a popular desktop publishing program which is available on IUP Macintosh computers located in STR 107 and the ISCC in the basement of Stright Hall. detached process - a background process device independence - the ability to request I/O operations without regard for the characteristics of specific devices. DFD - Data Flow Diagram (see bubble chart) dialogue - focused interaction between two or more people, with a stated goal or outcome. In VisionQuest, the meaning of the term dialogue is similar to the conventional meaning of the term "meeting". digital signature - data that can be generated only by an agent that knows some secret and hence is evidence that only that agent must have generated that data. dir - in DOS and VMS, a command to list the identifiers for files contained in a directory. The DOS command allows options and switches; the VMS command allows options and qualifiers. The comparable Unix command is ls and the comparable AppleDos command is catalog. direct address - (ISO standard) an address that designates the storage location of an item of data that is to be treated as an operand. (Contrast with an indirect address) directory - (1) a list of the contents of a part of the secondary storage available to a computer, including at least the names of files. (2) (ISO) a table of identifiers and references to the corresponding items of data. (3) in DOS and VMS, a command to list files and their attributes. disconnect - see "connect" for help on reconnecting a disconnected session. discussion - in VAXnotes, a topic and all the replies to it. diskette - a plastic disk with a metallic coating which is used to record data and programs for computers. Data may be copied back and forth from a diskette to RAM by using a disk drive. Diskettes come in a variety of sizes, e.g., 8" (obsolete), 5.25" (floppy, single or double density), and 3.5". distributed computing languages - support computation by multiple autonomous processes that communicate by mess passing rather than shared variables and may be implemented by geographically separated networks of communicating processes. distributed computing system - a loosely coupled computing system that provides services to support the execution and interaction of its components. (IEEE Computer, August 1991, p. 18) dithering - in computer graphics, a process of combining adjacent pixels to give various visual effects of color and/or intensity. DMA - Direct Memory Access do loop - a Fortran counting loop, similar in style to a for loop in Basic or C. See for loop and for versus while loops. documentation - recorded data that can provide direction or understanding to its human users. Software documentation is a general term for all system related facts durably recorded in human usable form. This includes a variety of things that may generally be classed as system documentation or user documentation. The following items are typical: problem statements, feasibility studies, design statements, source code, maintenance support documentation, user tutorials and user reference materials. Documentation may be prepared as text, graphics, source code, or any non-printed media (e.g. interactive computing or videodisk). DoD - Department of Defense domain - the set of values for which something is defined. domain testability - the freedom of a program from input-output inconsistencies. A program which is domain testable has the ability to produce controllable output from specified inputs and the property that it produces observable output from distinct input. (see also controllability and observability) DOS - Disk Operating System. (1) The operating system for IBM-compatible microcomputers. MS-DOS refers to Microsoft DOS and credits Microsoft, who holds the copyright. PC-DOS refers to DOS for IBM "Personal Computers". (2) An operating system for IBM mainframes. DOV - Data Over Voice; a device which allows a single phone line to simultaneously carry data and voice signals. dowhile - the way that VAX Fortran 77 implements a while statement. download - to transfer a file from an interactive host to a computer system which is communicating with the host. downsizing - moving applications from a mainframe environment to workstations (and/or micros). DP - data processing. (see ADP and EDP) drag - a mouse action where you move the cursor to an object, press a button and hold it down, then move the mouse, causing the object to move. For example, many windows can be moved by dragging on their title bar. driver - a program which is written to test a subprogram in a bottom-up development strategy. dummy argument - in Fortran, a synonym for a formal parameter to a subprogram. A dummy argument is an identifier local to a subprogram for a value that is passed to the subprogram. dump - a display of the contents of a file or memory area. A dump is often organized to represent bits in hex or octal form, with accompanying ASCII interpretations of the printable characters. Dvorak keyboard standard - an arrangement of keys that allows faster typing than the conventional QWERTY layout, which was designed to slow down typists. dynabase - a "database" that *seamlessly* integrates *all* of the text and other computer media that an individual generates or accumulates over time. For example, this glossary integrates terms in computing for Prof. Cross and the IUP community, but it is not complete and it is more of a group application than a private system. See Communications of the ACM, March 1994, page 11 for a recent update on the concept. dynamic - something which happens at the time a program is run. For example, dynamic memory allocation and dynamic data structures. dynamic array - one which has its size defined when a program is run. dynamic system - a system which is a collection of parts which interact with each other and change each other over time. E-mail - electronic mail. Help for VMS e-mail may be printed by the command @ldir$docum:print_maildoc. (A special privilege is required.) Notes on e-mail: E-mail is intangible, immediate, asynchronous (uninterrupted and non-interrupting), and informal. E-mail, as commonly used, is also limited to text in white on black without even a decent type font. Because of this, avoid complex or emotion-laden messages. KISS (Keep it short and simple). "Emoticons" help a little with non-verbal symbols for feelings. Hopefully, current multimedia developments will increase the "bandwidth" of our e-mail messages, but short, simple messages are a fundamental part of our society. (Consider the recently adopted term "sound bites.") EAM - Electronic Accounting Machine EBCDIC - Extended Binary Coded Data Interchange Code, an IBM competitor for ASCII. These codes use 8 bits, as opposed to 7 bits for ASCII. They are principally used on IBM mainframes. Their collating sequence is different: lower case followed by upper case followed by numbers, which is more sensible but less accepted. See also collating sequence and ASCII. echo - in electronic data transmission, a repetition of a message from the receiving node to the transmitting node in order to verify the transmission. Echo checking is primarily used with character-oriented asynchronous transmission. A character is transmitted to the remote computer and simultaneously displayed on the terminal screen. edge-notched cards - used for sorting or selecting without machinery. EDI - Electronic Data Interchange, intercompany computer-to-computer transmission of business data. For example, a retail store inventory system may transmit orders to suppliers when programmed events occur. There were As a measure of the importance of this concept, 20,500 users of EDI registered with the EDI Yellow Pages International in August 1991 (CACM, November 1991, pp. 68-70). edit - to make changes to a file or command. The most common editing activities on a VMS computer like the IUP VAX would be done using EVE (EDIT/TPU) or command-line editing. On a microcomputer running DOS, a user would use a word processor, edlin, or the F3 key to make changes to the previous command to DOS. editor - software that supports changing computer files. E.g., eve (edit/tpu) and LSE. EDP - Electronic Data Processing EEC - European Economic Community efficiency - the extent to which resources are used economically. In computing, increased efficiency in the use of one resource, such as data storage, may come at the expense of decreased efficiency in the use of another resource, such as processing capacity. EFTS - Electronic Funds Transfer System EGA - Enhanced Graphics Adapter card. This method of getting color displays on a microcomputer monitor achieves 16-color output. The progression of capability is CGA, EGA, VGA, Super VGA. egoless programming - a term popularized by Weinberg in a 1971 book "The Psychology of Computer Programming." The basic idea is that programming cannot be a private affair. Programs must be written so that they can be read and they must be read by others. Weinberg's walkthrough procedures were followed by Fagan's inspection procedures and Harlan Mills' cleanroom procedures as ways of making code visible and public. The point of this procedures is quality assurance at each step in the development of software. electronic bulletin board system - see bbs and bulletin board. elementary item - in a Cobol data structure, an data item which is NOT described in the DATA DIVISION with an immediately following data item having a higher level-number. (Level-numbers higher than 49 do not apply to this situation.) Note that an elementary item is the lowest level of a data hierarchy. An elementary item may have a PICTURE clause, while a group item may not. See also group item. ELOC - executable lines of code EMF - electromagnetic field; see PEMF for facts related to CRT emission hazards. emoticon - a technical term for a "smiley". :) The term is derived from "an icon for an emotion." Personally, I prefer the more conventional term "smiley." EMS - Electronic Meeting Support. The term EMS is generally applied to information technology that supports a face-to-face meeting. See also groupware, computer conference and teleconference. encapsulation - the welding of code and data together into objects. The point of encapsulation is exactly that of data abstraction and information hiding. (Note: Ada packages permit a user to encapsulate logically related entities.) end - a word that is often used to signal the termination of an interactive process. Note: enter a blank line to terminate glossary. end user - see end-user end-user - a person who uses computing to do work other than develop software or systems; a person who can use computer technology to organize data, stimulate new ideas, solve problems, and communicate the results to others. end-user computing - applications in which the user is responsible for all aspects of processing: data entry, operations, and using the output. END= - a parameter in a Fortran READ statement which identifies the label of a statement to which control is transferred in the event the READ statement encounters an end-of-file condition. engineer - see engineering engineering - the professional production of useful artifacts by skilled application of scientific knowledge. Good engineering practice is characterized by predictable construction processes, testing, measurement, and reliable products which are fit for use. (see data engineering and software engineering) entropy - a measure of the energy unavailable for useful work in a system. entry-sequenced data set - an IBM term for a sequential file in VSAM. They use the acronym ESDS. See also Key-sequenced data set. EOF - end of file EOJ - end of job EOLN - end of line; in WordPerfect, either of the End keys is an EOLN key. eps - encapsulated postscript format ergonomics - the science of adapting systems to people, with the end result of increased productivity and acceptability. In computer systems, the goal is increased speed, fewer errors, greater satisfaction and less frustration, all leading to higher profits and lower operating costs. Four basic dimensions may be included in the meaning of this term: > physical comfort and motor activity requirements > perceptual factors > psychological factors > cognitive factors error trapping - the ability of a system to detect errors. esoteric - something that that would not be interesting to the general audience for which a document or other communciation is intended. ethernet - a 10 Mbs wiring standard for connecting intelligent computing devices in a LAN. ethnographics - in general, the systematic recording of human cultures. In CSCW, ethnology is the analysis of cultural effects of IT for group support and interaction. Ethnographers are concerned with human cultures that emerge as a result of IT, but the main concern is effective groupware (which is more likely with happy users). In general, the design of a CSCW system should consider existing social processes and not try to change them. ethnology - see ethnographics euphemism - a sugar-coated way of saying something that your audience will not like. For example --> MEANING OF 20 TOP TECHNICAL TERMS AND EXPRESSIONS ------------------------------------------------- 1. A NUMBER OF DIFFERENT APPROACHES ARE BEING TRIED: No one knows how to approach this problem. 2. CLOSE PROJECT COORDINATION: We know whom to blame if this project goes under. 3. EXTENSIVE REPORT BEING PREPARED ON A FRESH APPROACH: We just hired three know-it-alls fresh out of school. 4. MAJOR TECHNICAL BREAKTHROUGH: It works OK, but it looks very Hi-Tech. 5. CUSTOMER SATISIFACTION IS BELIEVED TO BE ASSURED: We are so far behind schedule that the customer will be grateful for anything he can get from us. 6. PRELIMINARY OPERATIONAL TESTS WERE INCONCLUSIVE: Prototype machine exploded when we threw the switch. 7. TEST RESULTS WERE EXTREMELY GRATIFYING: It works and we're not asking too many questions. 8. ENTIRE CONCEPT MUST BE ABANDONED: The only person who understood the thing has quit. 9. IT IS IN THE PROCESS: It is hopelessly bogged down in red tape obstructions. 10. WE WILL LOOK INTO IT: Forget it! We have enough problems already. 11. PLEASE NOTE AND INITIAL: Let's spread the responsibility for this. 12. GIVE US THE BENEFIT OF YOUR THINKING: We will listen to what you have to say, as long as it does not interfere with what we have already decided. 13. GIVE US YOUR INTERPRETATION: I can't wait to hear your foolish ideas. 14. LET'S DISCUSS: Come into my office, I'm lonely. 15. ALL NEW: Parts not interchangeable with old design. 16. RUGGED: Too heavy to lift. 17. LIGHTWEIGHT: Lighter than rugged. 18. YEARS OF DEVELOPMENT: One finally worked. 19. ENERGY SAVING: Achieved when power is turned off. 20. NO MAINTENANCE: Impossible to repair. EVE - an acronym for the Extensible Vax Editor. This DEC product is officially named the TPU editor, which stands for "Text Processing Utility". exit - a word that is often used in an interactive process to end the process. Note: the glossary process can be terminated by entering a blank line. expand - in LSE, a keystroke command which replaces a placeholder or token with more detailed syntax or help. The keystroke is either or , depending on the keyboard. expert system - a knowledge intensive computer application that solves problems normally requiring human expertise. It performs functions like asking relevant questions, applying expert knowledge and problem solving heuristics, and explaining its reasoning. expertise - special skill or knowledge representing mastery of a particular subject. For example, in computer programming, expertise includes behaviors which incorporate plans, patterns and goals (PPG?) common to experienced professionals. exponential growth - Growth is a function of time. Exponential growth involves the time variable as an exponent. For example, if the number of squirrels in the Oak Grove would double every year for ten years, we would wind up with 2^10 or 1,024 times as many squirrels in ten years as we have now. In contrast, if the number of squirrels in the Oak Grove increases by 2 every year, in ten years we would simply have 20 more squirrels than we have now. (This would be called "linear growth".) extend - a way to open a sequential file at its end and append records. See $ help cobol procedure open extend. extended binary tree - a binary tree in which empty subtrees are represented (e.g. by small square boxes, cf. Standish 1980). external path length - the sum of the path lengths from the root to each of the empty (external) nodes in an extended binary tree (Standish 1980). facsimile - a copy of a document or other image; see fax FASE - the Forum on Academic Software Engineering, an electronic series of exchanges sponsored by the Software Engineering Institute but currently managed by Keith Pierce at the University of Minnesota, Duluth. Email contributions to fase-submit@d.umn.edu or subscription request to fase-request@cs.texas.edu fault - see page fault fault tolerant computing (FTC) - the correct execution of a specific algorithm in the presence of defects. The effect of these effects can be overcome by redundancy, either temporal (repeated executions) or physical (replicated hardware or software). fax - a common term for facsimile transmission, which can be thought of as a copy machine with input at one end of a phone line and output at another phone. A fax machine costs less than $1,000 plus the cost of a phone line. Fax machines have been a major force for change in business, politics, and personal lives. They have demonstrated that technology changes the way we live when it is simple enough and inexpensive enough to affect the routine things individuals do in their everyday lives. fdl - File Definition Language (in VAX VMS). FDL files are definitions of VAX RMS files. (RMS is VAX Record Management Services. see VAX VMS help.) feasibility study - a study with the goal of defining a data processing problem, presenting alternative solutions, doing some cost/benefit analyses, recommending a course of action, and preparing a plan (and timetable) for designing and installing the system. femto - a prefix which means one trillionth or 10^(-12). FEP - see Front-End Processor. fi - if spelled backwards. This word is used in pseudocode and PDL to indicate the end of the scope of an if statement. Similar backward spellings are used for other basic pseudocode words, such as do/od. field - a data item consisting of one or more logically related characters; a specified area of a data record for a category of data (or the value of an attribute of the record). For example, in a student data record, "student id" would be a likely data field. FIFO - First In, First Out; a queue data structure. file - (ISO) a set of related records treated as a unit. For example, a set of invoices or a set of facts about a student. Types of files include master file, transaction file, inverted file, data file, program source code file, and others. Files normally have names or other identification. The content of a file is as varied as the uses of computers or the contents of a manila folder. file access - the method of accessing records in a file, normally sequential, random, or dynamic (a Cobol mixture of both). A file may be OPENed "EXTEND" in Cobol, but this is actually a form of dynamic access. When a file is OPENed EXTEND, it may have sequential organization and access. file organization - the structure of data stored in an external file; the provision for file access methods; and the physical allocation of records to a storage medium. Cobol recognizes sequential, relative, and indexed file organizations. Fortran, Pascal, C and Ada refer to a file with relative organization as a "direct file." Unix systems view everything on external media as a file and organize all files as a sequence of bytes. Cobol views data files as hierarchically organized in terms of records and fields, but programming can reconcile the two views. file server - a device which provides remote centralized storage of data to workstations connected to it via a communication network. Benefits include shared use of a storage device, shared use of files, user mobility, and automatic file backup and recovery (cf. Svobodova in Computing Surveys, December 1984). file size - the number of components in a file multiplied by the number of components (M&P); the number of bytes in a file, including bytes for data, indexes, and unused space. File size is measured in either bytes or whatever is used for the minimum unit of allocatable external storage, depending on the context. For example, file size on a VMS system is measured in blocks. See also blocks, granules, and sectors. finger - a Berkely Unix utility that displays data about users of a system. This has proven to be both a popular application and a security risk because of the way it is implemented. The IUP VMS systems have a version of finger, but it has been the source of system problems so its operational status is up and down. (See $ help finger on the IUP academic system.) fish - \ \\ \\ \\\ _\\\\__ \\\\ __-"" "-_ \\\\\________--" "\ \\\ / \ /// .___ | (O O) | ///// ""-_ | | //// "-_ \ \_____/ / /// //// ./ // /// "--______-" // \\ (Copied from help messages for the tuna.x processor on Honeywell CP-6.) fixed-head disk - a disk drive with separate heads for each track. This is very expensive, but it eliminates time delays for head movement. flag - in computing, a variable that indicates a system state condition. For example, a variable may be set to indicate that a sequential file is at end-of-file or a request for system services is waiting to be served. flaky - a non-technical term for equipment or a software system which is afflicted with non-repeatable anomalous behavior (i.e., non-repeatable bugs) flame - see flaming flaming - expressing an inappropriate amount of anger, especially during an electronic interchange. In a non face-to-face interaction, people sometimes say things that they would not say face-to-face. The standard advice for people who interact electronically is not to type when you have strong negative feelings about someone. Wait until your feelings calm down and talk with the person another way, preferrably face-to-face. flextime - an arrangement between an employer and an employee where the employee is responsible for working a certain number of hours, but these hours may be scheduled by the employee within certain limits. For example, an employee may be responsible for working 8 hours between 7:00 A.M. and 7:00 P.M., but the employee decides when to work those hours. The advantages of this arrangement include: > allowing the employee to schedule early or late hours, depending on which are his or her more productive hours > allowing parents and working couples to coordinate their schedules > avoiding and lessening traffic congestion in cities flit - the smallest part of a packet involved in routing, usually determined by the band width of a channel. FLOP - Floating Point Operations, a unit of processor speed, normally stated in Mflops/sec or Gflops/sec. flow control - see control flow flowchart - (ISO) A graphical representation for the definition, analysis, or method of solution of a problem, in which symbols are used to represent operations, data flow, equipment, etc. Synonymous with flow diagram. fog index - a measure of the length of sentences in words and the length of words in syllables. The fog index has been used as an indicator of the readability of a document, but it is not always a good indicator. It is often referred to as a Gunning Fog Index. It gained widespread use when word processing made its calculation a trivial matter. for loop - a loop control structure for counting loops, for example, the for statement in Basic, Pascal, and C. The DO loop of Fortran performs a similar function without using the keyword "FOR". Fortran and C allow the loop index to be a floating point (real) value. See for versus while loop; do loop. for versus while loop - a while loop may be used instead of a for (or DO) loop, but the for loop is often easier to write and read because the controls are all at the top of the loop. As a general rule, the need to initialize a variable before entering a loop or step the variable at the end of the loop indicate the likelihood that a for loop would be a better choice. fork - (1) a (Unix) operating system routine that creates a new process. "Fork" is a Unix term that is similar to the vms term "spawn". (2) a Unix command that creates a cloned process of its parent. format - the form of data. In word processing, format includes such things as page layout, line justification, and hyphenation. format statement - in any programming language, a statement that expresses the form of input or output. Fortran format statements consist of a list of "edit descriptors" enclosed in parentheses. See Koffman & Friedman, p. 208. Fortran - Formula Translator; the first HLL (1957), Fortran is used by scientists and engineers for mathematically-oriented problems and for supercomputing. The current ANSI standard for Fortran is ANSI 1977. A Fortran 90 standard has been agreed on, but compilers are not yet available. forward - in e-mail, to send a copy of a message to someone else. FoxPro - a DBMS product of Microsoft. It competes with dBase IV and Paradox. Microsoft claims that its strength is that it is very fast. As of 11/93 a 10-pack educational version sells for $799. fractal - a curve or higher-dimension geometric object which has "fractional dimension". A fractional dimension exists if the estimated measure of the object becomes arbitrarily large as the measuring stick becomes smaller and smaller. For example, the coastline of Britain increases as you measure it in smaller increments because of its irregularity. A more irregular object increases faster as the measure decreases and thus has a higher fractional dimension, up to the limit of the next dimension. Fractal objects are often self-similar, but they do not have to self-similar. The self-similarity consists of similar appearance at any degree of magnification. A fractal is an object that has a fractal dimension greater than its classical dimension (but not greater than the next higher dimension). fragmentation - the breaking up of the storage areas for a disk file into non-contiguous areas. This slows down and complicates disk access, but it frequently occurs due to attempts to reuse deleted areas of a disk. "Defragmentation" of a disk can improve its performance. Defragmentation has gotten to be a common utility for computing systems. frame buffer - an array which contains color and intensity values for all the pixels in a display. The terms bit map and refresh buffer refer to the same concept. Franz LISP - a dialect of LISP specifically devoted to the automation of musical composition. (Jeff Senley, 1991) free riding - in a meeting, a behavior and attitude that sits back and waits for others to accomplish the work of the group. See also "lurking," a similar term with greater positive connotations. freeware - a program in which the author still holds the copyright but allows the program to be used and distributed free of charge. frequency of use - in the context of file processing, how often a file is used. For example, the file of registration data for a semester is accessed much less frequently by mid-semester. See M&P, Chapter 1. friendly - see user friendly frm - a filename extension that dBASE III PLUS uses to indicate a report (format). front-end processor - a computer that acts as an intermediary between a mainframe computer and its users. A front-end processor typically is designed to relieve the mainframe of some of the processing required for transactions from interactive users. (see FEP) ftp - File Transport Protocol; a system which uses the TCP/IP protocol to allow file transfers between a local computer and a remote computer. If you use ftp at IUP, you should know how to "get" and "put" files. If you are asked to login, attempt to login as "login anonymous", then give your internet address as a password. Sample ftp hosts: ftp.uu.net (uunet in Falls Church, VA) plaza.aarnet.edu.au (Australia) ocf.berkeley.edu, then cd misc/fun/humor (did not work 4/16/93) FUD - Fear, Uncertainty, and Doubt. An acronym for what novices feel at times, e.g. when they are getting acquainted with the Internet. full binary tree - a binary tree in which each node either is a leaf or has exactly two nonempty descendants (Standish, 1980). function-oriented design - a method of designing a software system by representing it as a set of interacting units, each of which has a clearly defined function and data interface to other system units. functional programming - the construction of programs declaratively rather than imperatively. Functions are used as an underlying computational unit and compute by the evaluation of expressions which do not have side effects. fuzzy - something that is not clearly defined as either true or false. In "fuzzy logic", attributes of things are not true or false, but have probabilities of being one way or another. gantt - a scheduling tool for project managers. It consists of a chart of elapsed time, planned (scheduled) time and milestones relative to a baseline (or calendar). GANTT is essentially a time scheduling system. garb - a verb which is short for "garbage". The term means to turn a good file into garbage. For example, a noisy phone line can garb a good file. See also "munge". (These are serious terms.) garbage collection - any procedure for deallocating dynamically allocated storage when all references to it have been deleted. This can involve high overhead, but failure to do it in a program that makes extensive use of dynamically allocated storage can result in a program allocating itself so much memory that it either exceeds its limits for memory or degrades system performance (and maybe piles up a bill for pigging out on garbage memory). gatekeeper - (1) a person who is a local expert in something. For example, a person who monitors technological, social, political, market, and other emerging external trends and communicates them to people within an organization. See Miller, The Creative Edge, 1987 Addison Wesley, page 121. (2) a model for a system that includes a person or organization that controls access to the system. For example, the choice of what movies are shown in theaters has a lot more to do with mega-distributors than it does with local theaters or audiences. In the sense that movie distributors control what movies are shown by theater owners, they are "gatekeepers". A similar example is true of the cable industry. The point to computing people is that the Internet is absolutely not subject to this sort of control and we hope that it will never be. This is important as the "Information Infrastructure" concept develops. (JAC, 3/7/94) gateway - a computer network interface which allows messages to be exchanged between networks. General IF - an IF statement which allows single, double, or multiple alternatives. (see block IF) generator - A computer program that constructs other programs to perform a particular type of operation (e.g. a report program generator). gert - a technique for graphing the accomplishment of goals and graphical activities. (Graphic Evaluation and Review Technique) gif - a file extension which stands for graphic information file. With appropriate software, a .gif file can produce an image. giga - a prefix which means roughly one billion or 2^30. gigabyte - one billion bytes. An estimate of the data required to store the Encyclopedia Britannica is 3 gigabytes. GIGO - Garbage In Garbage Out GKS - graphics kernel standard, a standard for 2D graphics. glitch - some unforeseen and undesirable behavior in a computer program or system. globbing - in Unix, the process of expanding an ambiguous file reference. GNU - an integrated software system distributed by the "Free Software Foundation. Gnu's not Unix, but Gnu includes C, Emacs, MIT X Windows, Make, Diff, Grep, Tar, . . . The Free Software Foundation may be contacted at 675 Massachusetts Avenue; Cambridge, MA 02139; or e-mail gnu@prep.ai.mit.edu GPSS - General Purpose Systems Simulation. A problem-oriented language used to develop simulation systems. grade-check - a program written by Jim Wolfe and available to IUP students whose profs choose to give them access to their grades. To run it, enter $ run ldir$grader:grade-check and enter ? for help as needed. Note that many students have established the symbol gra for the above command. gradecheck - see grade-check. The programs are identical. grammar - a specification of the syntactic rules for combining words (the lexicon, or tokens, of a language) into well-formed expressions of that language. A production grammar uses statements, which are called productions or rewrite rules, to express a syntactically valid combination of terminal symbols, nonterminals (or metavariables), and metasymbols. The most important class of production grammars is that of context-free grammars, which are often written in Backus-Naur Form. The restriction on this class of grammars is that the left-hand side of every statement must be a single nonterminal symbol. Examples follow (ref. to Wulf, 1981). Production grammar 1. -> A C 2. -> B 3. A -> aa B 4. -> C -> cc 5. -> B -> B Notes: <> enclose nonterminals, A thru C are terminals, a thru b are metasymbols, and is the start symbol. This production grammar defines all strings of the form A+B+C+. Backus-Naur Form ::= | ::= 0|1|2|3|4|5|6|7|8|9 granule - the smallest allocatable block of disk storage. A granule is usually equivalent to the meaning of a "block" in VMS or a sector in MS-DOS. graphic programming - see "visual programming" graphics - Any form of visual representation. The concept of graphic arts includes painting, drawing, photography and printing. Our IUP Communications Media Department has a course CM 440 COMMUNICATIONS GRAPHICS which emphasizes the planning and production of "presentation" graphics and printing by exploring lettering, layout, color, mounting and laminating, copying, reproduction and photographic techniques and photographic media. grep - a Unix command that is an acronym for "get regular expression and print." The syntax of the grep is straightforward, but the breadth of its usefulness is remarkable. For beginners, the most difficult step is finding good help on how to formulate regular expressions in the Unix command-language interface. See Sobell's book, Appendix B for the best help I am aware of. If someone finds out how to get "man" help on regular expressions, please let me know how. grounding - in communication, a check to see that a message is getting through. For example, when you are giving someone else directions, you might ask the other person to repeat the directions back to you. group - a group of people consists of two or more people who interact for a common purpose. The purpose a group shares may be social or work. For example, 2 or more people who are waiting for a bus become a group when they share an umbrella or chat for social purposes. See also "group dynamics", "workgroup" and "team". group dynamics - how a group of people interact. In a workgroup, this includes task-oriented behaviors and group maintenance. group item - in a Cobol data hierarchy, a data item which is composed of one or more subordinate data items. Syntactically, this implies that it MUST be followed by a description of a data item with a higher level-number. (Level-numbers higher than 49 do not apply to this situation.) Note that a group item may have a VALUE clause but it may not have a PICTURE clause. See also elementary item. group maintenance - group activities that focus on supporting the productive functioning of the group rather than on directly accomplishing the purpose that the group is intended to accomplish. For example, introductions and assigning functions like recorder or club president are maintenance activities. group name - in Cobol, a name for a group item. See group item. groupthink - a situation where group loyalties may inhibit consideration of alternatives, especially when they conflict with group norms or decisions. In some cases, lack of "diversity" may cause a group to be blind to alternatives. The effect of group loyalties overriding open consideration of alternatives and blindness caused by lack of diversity are similar; group actions and decisions are not based on consideration of all viable alternatives. Victims of groupthink are often unaware of their problem. groupware - a computer-based system that supports a group of people and provides an interface to a shared environment. Examples of groupware include electronic mail, Internet and CompuServe, bulletin boards, DEC's Vaxnotes and ALL-IN-1, Lotus Notes, VisionQuest, ForComment for group authoring, group drawing, and IUP HANDIN. See also EMS, computer conference, and teleconference. grove - (1) The name chosen by IUP's Information Services and Communication Center (ISCC) for the vax cluster at IUP. (2) An experimental groupware system for group authoring. One of its key innovations is almost no concurrency constraints for editing a particular part of a document by multiple simultaneous users. See Ellis, et al, CACM, January 1991. GSS - Group Support System GUI - Graphical User Interface; how the user interacts with a workstation. hacker - The internet Companion (Addison Wesley, 1993) contains 8 meanings (p. 119). The following definitions capture the spirit of this term with its many nuances in meaning. (1) someone who uses computer technology (or plays golf) for the fun of it, not necessarily because they accomplish anything. (2) a person who enjoys and is good at programming. (3) occasionally, and "incorrectly", someone who attempts to penetrate or sabotage computer systems for the challenge rather than for criminal intent. "Cracker" is a better term for this meaning, especially if malicious or criminal intent is involved. hand trace - see deskcheck handin - a program which allows paperless submission, grading, and hand back of documents. This program was written by Jim Wolfe, IUP Computer Science faculty. It has been used at IUP since about 1983. hardware - tangible components of a computer system. For example, a keyboard, mouse, video display, or modem. A diskette is hardware, but the program and data on it are software. HDDS - Heterogeneous Distributed Database System (see IEEE Computer, December 1991) hdtv - high definition television header file for C - Header files for C on the academic vax are in sys$library:*.h On a Unix system, look for them in /usr/include/*.h heap - (1) a binary tree whose nodes contain keys arranged in descending order along every path from the root to a leaf. Various implementations of this sort of heap require "completeness," to the extent that only the bottom level can have vacancies, and all the leaves on the lowest level occur to the left. This definition is frequently used in association with the "heapsort" algorithm. (2) In some situations, the memory which is available for dynamic allocation to executing programs is called a heap. This meaning of the term is separate from definition (1). height of a tree - see tree height heterogeneous - a collection of things that are different in some way. For example, a Cobol record which contains different types of data and has multiple occurrences is said to implement a heterogeneous table. See homogeneous. heuristic - an exploratory method of problem solving in which there is knowledge of the problem domain. Heuristics are critically different from algorithms in their lack of certainty that a particular approach to a solution is optimal, or that it will even work. hexadecimal - base 16 notation (hex for 6 and decimal for 10) hidden file - a file whose identifier is not normally listed by a directory command for the directory where the file is located. hierarchy - a partial ordering similar to an organization chart. For example, think of Professors organized under Department Chairpersons, who are in turn organized under Deans. In Cobol, think of level-01s which contain level-05 data items which contain level-10 data items. The following diagram is a hierarchical structure chart for a program which will accept a name and age, then respond with a short message based on the age bracket of the response. Dialog about age | .................................................... | | | Input name and age Respond to age End Dialog HIGH-VALUE - a Cobol figurative constant that mean the highest collating value that can be represented in 8 bits; X'FF'. higher-level language - see HLL histogram - a special type of a bar graph in which the range of the independent variable is broken down into equal-sized intervals. hll - a higher-level language for programming than assembler language. This term refers to a programming language in which some statements are translated into multiple computer instructions. Examples include Cobol, Pascal, and Fortran. See vhll. hold field - a programming mechanism which involves setting up a program variable to remember a value from previous processing that may be needed later. For example, in checking the sequence of records, a programmer may code a hold field to record the value of the sequence key of a record to compare it against the next record. home - a cursor movement key that may cause the cursor to move to the left of the screen, the top left position in a document, or other places in combination with other keys. home address - the relative address which is computed by a hashing algorithm. It is called a home address because other record keys may hash to the same address, and some records may have to be stored somewhere else. homogeneous - a collection of things which are similar. For example a Fortran array is said to be homogeneous because every element in the array has the same data type. See heterogeneous. host computer - a computer system which runs programs which provide services in a computer network. Note: an Internet host is commonly thought of as a computer system which allows public telnet and ftp access. See also internet, telnet, and ftp. hpcc - High Performance Computing and Communications initiative (a $1.7 billion U.S. proposal as of 1991) HTML - HyperText Markup Language HTTP - HyperText Transport Protocol, a network protocol for retrieving hypertext using an extensible set of formats (allowing nicer-looking documents and multimedia). For a demo on a text-based display, try $lynx http://egret.ma.iup.edu human factors - human strengths and weaknesses as they affect human performance, especially in human-machine interaction. Computer science is fundamentally concerned with extending the capabilities and performance of computers, but human factors determine goals for computer science and are critical to system design decisions. IBM - International Business Machines (also, It's Better Manually, or Itty Bitty Machines) ICCP - the Institute for the Certification of Computer Professionals. This group promotes certification and has run the CDP, CCP, and other certification exams since the mid-1970s. icon - a graphic symbol on a video display representing a command and allowing interaction by pointing (e.g., a trash can for a deletion command). See GUI. IEEE - Institute for Electrical and Electronics Engineers. The IEEE has an Internet gopher that supports all of their publications and activities: $ ieee :== "telnet info.computer.org" ! login as guest if - the basic decision statement in programming languages. (see block if, general if, logical if) image processing - the analysis of scenes or reconstruction of 2D or 3D objects from their pictures. Subareas of image processing include image enhancement, pattern recognition, and computer vision. (Note that image processing emphasizes analysis, while computer graphics emphasizes synthesis.) imbricate - Wittlich, Schaffer and Babb define imbrication in Microcomputers and Music as a process by which consecutive overlapping patterns of a certain number of string characters are found. For example, musically speaking, take the phrase A B C D E F G A B C B A B C B A By using imbrication, you could find the occurrences of A B, B A, A B C, or any other multiple-note patterns. These answers would be 3, 2, and 3 respectively. The imbricated three-note patterns in the string above would be A B C, B C D, C D E, D E F, ... (submitted by Jeff Senley, December 1991) immediate address - (ISO standard) the contents of an address part that contains the value of an operand rather than an address. That is, an operand, or part of an operand, which contains a value rather than an address. imperative statement - in Cobol, a statement in the PROCEDURE DIVISION which is NOT a conditional statement. See also "conditional statement." implementation - the phase of software development when a program or system is coded, entered into a computer, compiled, and individual modules are tested. Related terms: program design; system test or integration testing; installation. implied DO loop - in ANSI 77 Fortran, a special form of a DO loop that can be inserted into an input or output list. For example, READ *, (scores(i), i=1, n) index - (1) in database management, a file of pointers to records which allows records to be accessed in a particular sequence. In contrast, a sorted version of the file stores copies of each record, rather than pointers to records. (2) the position of something in context. For example, the Fortran INDEX function returns the starting position of the first occurrence of a string as a substring in another string. index data type - (1) in Cobol, an index data type contains a byte-offset value. It is declared by naming an identifier in an INDEXED BY clause, or by a USAGE IS INDEX clause. (2) more generally, an index is the ordinal number of the position of a search target in whatever is being searched. For example, the index of "ro" in "John A. Cross" is 10. indexed address - an address that is modified by the content of an index register prior to or during the execution of a computer instruction. indirect address - (Fred Hansen) the operand address can be obtained from the absolute address provided for the instruction. Thus it is indirectly obtained. For example, JMP indirect through 6703 would first go to 6703 and obtain the address contained therein, then jump to this new address. information - (1) a natural phenomenon that happens when data are processed that "informs" the person, animal or machine that is doing that processing (or causing it to happen in the case of an end user.) (2) knowledge of value in decision making or problem-solving activity. information filter - a process that filters out irrelevant data and thus selects data from a knowledge resource according to a statement of what a user or problem context might find useful. A filter is positioned as a "third party" to the communication between a user and a resource (in other words, a client and a server). information hiding - to conceal unessential details of the implementation of an ADT (or object, or package) from its users. Essential properties cannot be hidden. (see also abstraction, encapsulation) information infrastructure - the basic data facilities, equipment, and installations needed for the functioning of a system or organization and informing of its members. In the case of national or global interest, the information infrastructure is the collection of data transmission, archiving, searching, and entry capabilities. The emphasis in infrastructure is often on the transmission of data, hopefully in a bidirectional, interactive mode. Hopefully, individual to individual, small group, broadcast, and individual search of archives will be supported. Current concerns are "focused" on multimedia, universal access, cost, common services, common conventions for communication, .. and making it clear just what it is we don't have that will really make a difference in our lives. information overload - when a person or computer-based system receives more data than it can process and loses some. (Actually, a more precise term would be "data overload".) information system - (1) simply stated, any system which enhances data processing activity. See also "system" and "computer information system". (2) in the jargon and style of information science, an IS is an augmentation of decision making, problem solving, or knowledge seeking activity. Computers are not necessarily a part of an information system which serves these needs. Data acquisition, transmission, and processing are likely to precede the utilization of the knowledge represented by the data, which then must be followed by a communication or transfer process to an event world to which the information system's acquisition system is sensitive. infrastructure - (1) an underlying base or foundation for an organization; (2) the basic facilities, equipment, and installations needed for the functioning of a system or organization. (PC Computing, January 1992, p. 65) inheritance - the ability to derive a new class from an existing one; a relationship between classes in an object-oriented context. Single inheritance allows one class to acquire the structure of other classes in a strict hierarchy from a single parent. Multiple inheritance allows a class to acquire the structure of other classes in a lattice with multiple parents. The point of inheritance is to define an object and then use it to build a hierarchy of descendant objects, with each descendant inheriting access to all its ancestors' code and data. input - data that is accessed by a computer as part of its data processing activity. install - to take whatever actions are necessary to allow a software application to be used on a particular computer system. This often involves copying executable files and possibly data files, picking a logical hard drive for the application, choosing options, and dealing with licensing constraints. See also "build" and "make". instance - a specific object in a class. instantiation - (1) the creation of an object which is a new instance of a class or a new specific class from a generic class. (2) to represent by a concrete example. integer - a counting number (a whole number). An integer may be either positive, negative, or zero. E.g., . . . -3, -2, -1, 0, 1, 2, 3, . . . Decimal fractions are NOT integers: 3.25, 4.10. In computer representations, a 32-bit integer may hold up to the positive value 2^31 -1, which is about 2 billion. (Note: 2^31 -1 is a large prime number.) integral expression - an expression that evaluates to an integer result integrated toolset - a set of tools for software development that have consistent terminology and allow the work of different phases to be based on prior work for this project. For example, a design should satisfy specifications, which in turn should meet requirements. A "repository" for the "artifacts" of a software development which includes a data dictionary is a basic element of an integrated toolset. See also repository, artifacts, data dictionary, and configuration management. There are varied types of integration. For exampled, an integrated interface design reduces learning. Microsoft apps have an advantage because of their similar interface. e.g., Word and Excel. See also OLE and DDE. integrity - (1) the extent to which modification of software by unauthorized persons can be controlled. (Pressman, third edition) (2) the extent to which errors in computer-based information systems are controlled. (Human error is a greater threat to the integrity of a system than malicious modification of data.) (3) consider data integrity, program integrity, system integrity, and network integrity in the context of data security. intelprise - an intellectual enterprise; a term coined by Shumpei Kumon, from Japan, as part of his proposition that the post-industrial social phase will be based on knowledge and wisdom. (See the keynote address in the proceedings of the 1992 CSCW Conference or JAC notes.) interactive computer graphics - human-computer interaction which includes visual displays other than alphanumeric characters. Foley and Van Dam (1982) define interactive computer graphics to be the use of computer graphics in which a user dynamically controls the picture content, format,size, colors, or selected object on a display surface by means of interactive devices such as a keyboard, mouse, joystick, or graphics tablet. Icon-based menus and pointing devices are a mid-level type of interactive computer graphics, and CAD is an example of a high level type of interactive computer graphics. interactive process - a process which executes on-line at a user's command and allows direct interaction between a user and the computer as the process occurs. (see batch process) interface - a shared boundary. See "user interface". internal path length of a tree - the sum of the path lengths of all its nodes. The root is defined to have path length 1 (Standish, 1980 defines the root as having level 1 and pathlength 0). Internal path length is synonymous with the term path length of a tree. (ref. Wirth, Algorithms + Data Structure = Programs, 1976) Note: Standish (1980) defines internal path length of a binary tree as the sum of the lengths of the paths from the root to each of the nodes. This would result in a different answer than the Wirth definition. (An internal node is defined to be a non-leaf node.) internal representation - the representation of values in computer computer memory. For example, integer values are often stored as twos-complement, full-word binary values. See ASCII, EBCDIC, real, integer, data type. Internet - a widely used and rapidly expanding "information infrastructure" that allows users of connected systems to exchange messages and access the resources of other connected systems. Users may communicate thru electronic mail, transfer files thru "ftp", or login to remote computers thru "telnet". Begun by the NSF in 1985, its connections, transactions, and users have practically doubled every six months since 1987. The Internet is an amazing global force! Best reference: The Whole Internet, by Ed Krol. O'Reilly & Associates, Inc. 1993. interrecord dependence - in a sequential file process, the condition that how the process responds to the current record depends on other records. For example, in a control-break algorithm, additional actions are required when the current record is in a different control group than the previous record. interrupt - a signal to an operating system that an external event has occurred, such as the completion of a disk I/O operation. intruder - an unauthorized user who gains access to a computer system to examine data and use the system for his or her own purposes. intrusion - in virtual reality, the restrictions placed on a user's senses by the virtual environment. (Chuck Merlino, 1993) inverted file - intuitively, a file whose ordering has been reversed. Practically, it is a file which contains entity identifiers associated with values of attributes of an item, i.e. alternate indexing. IP - Internet Protocol IRC - an Internet Relay Chat. See ldisk$colib:[compsci.jac-irc]handout.txt IRM - Information Resource Management IS - Information Science ISAM - both a data organization and management method for an indexed file and the concept of allowing access to a file to be either random by an index key or sequention (i.e., dynamic, in Cobol terms). ISAM normally refers to IBM's way of managing keyed data which they eventually replaced with their VSAM approach to the same concerns. ISCC - the Information Services and Communication Center at IUP. ISDN - Integrated Services Digital Network (or, in semi-jest, "I Still Don't Need It"). Basic Rate ISDN are not available everywhere in 1994, but they provide two Kbps digital channels over one circuit. This is attractive for data and videoconferencing and other low-end multimedia applications. ISDN Primary Rate services have been around longer and provide 23 64Kbps digital channels, mainly used for voice at large corporations. ISO - International Standards Organization IT - Information Technology iteration - repeating a process iup - Indiana University of Pennsylvania (Note: this version of glossary is designed for computing terms. If you want to just mess around with the software, enter i for a list of the first 20 terms that begin with the letter i.) iup handin - see handin jac - My initials! (John A. Cross) I often prefix a filename with my initials to distinguish it from other people's files and group my filenames in one place in directory listings. For example, I make my gradebook files available as JAC101 or JAC499 rather than CO101 or LS499 because other profs teach other sections. jargon - the specialized vocabulary and idioms of those in the same work, as in computing: a somewhat derogatory term, implying unintelligibility. (from Webster's New Universal Dictionary) JCL - job control language. This acronym once referred to IBM mainframe job control language in all its various generations and versions, but it has evolved to mean the command language interface to an operating system. JCTF - Joint Curriculum Task Force of the ACM and IEEE job control - a function of an operating system that prepares each job or job step to be run. job sharing - two or more employees sharing the responsibilities and salary for one job. JSD - Jackson System Development; a life-cycle methodology that incorporates a style and focus that is somewhere between a function-oriented approach and an object-oriented approach to system design. Julia set - a close relative of the Mandelbrot set. The Mandelbrot set is derived by iterating z' = z^2 + c, where the initial z is (0,0) and c takes on different values. The Julia set uses different z's as starting points and generates a different Julia set for every value of c. A suggested place to start viewing Julia sets is with J(-0.7448185 + 0.1050935i) (see Hill, p. 172). justify - text may be arranged on lines which have even margins on both left and right sides by inserting additional space between words (and letters if the technology supports it). Full justification has even margins on both sides; Center justified text has no additional spacing inserted between words or letters, but all lines are centered between the margins; left-justified text has no spaces inserted and has what is called a "ragged-right margin". k-ary tree - see n-ary tree Kermit - software for data communications and the communications protocol which it supports. Kermit is popular at IUP and elsewhere because it is free, because it works, and because it has become widely adopted. (in VMS, see also $ help kermit) key - (a) the identifying field of a record. (b) the field whose value is used to place a collection of records into a sorted ordering. key field - a logical component of a data record that identifies it or determines its sequence during sequential access of the records in the file. See also "key." key window - the window where keystrokes will be applied; the currently selected window, often highlighted by being brighter than other windows, but not always the top window. key-sequenced data set - an IBM term for an indexed file. Records in each control interval (data block) are stored in ascending sequence by the primary key for the file. See also entry-sequenced data set. keyboarding - skill in entering data through a keyboard. keyword - a word in a programming language that must be used to make a particular syntactic expression work. In terms of Cobol metalanguage, an underlined uppercase word. kilo - a prefix which means one thousand or 2^10 (1024), depending on context. The metric system uses prefixes to indicate powers of ten, while computing terms for quantities of memory use kilo, mega, nano, and tera to indicate powers of 2 that are roughly equivalent to the corresponding powers of ten. kiosk - a small, light structure with open sides used as a newsstand, bulletin board, or other open information booth. (An example: there is a "kiosk" between Stright and Uhler Halls.) Kleene star (*) - the use of an asterisk to denote zero or more occurrences of the preceding symbol. A closely related notation is the use of a plus sign (+) to denote the occurrence of 1 or more occurrences of the preceding symbol. For example (cf. "regular expression"): ab* = {a, ab, abb, abbb, ...} aa* = a+ = {a, aa, aaa, aaaa, ...} (a)+b = {ab, aab, aaab, ...} Note that the +-notation can be confused with the alternation symbol: a + b = {a, b}. Context and typography must be used to distinguish the two symbols. KLOC - a thousand lines of code kludge - a quick-fix or patchwork assembly that gets something to work. LAN - Local Area Network. A LAN features high bandwidth, low latency, and limited distance. (Eelwu Jeong, 1993) Examples: Ethernet, Token-ring, STARlan. language-sensitive editor - a text editor which is sensitive to the syntax of a language. The concept applies most commonly to a programming language, but other instances are posible, such as a text editor which is sensitive to the syntax constraints of a program design language. (See LSE) laptop computer - a battery-powered, portable computer that is small enough and light enough to be carried about like a briefcase. A true laptop should be practical to carry to a meeting, on a plane, or to a data collection site. It should also have provisions for transferring data to and from other computers, typically via phone lines and removable disks. large file - a file for which the design decisions related to it make a significant difference for processing and access time and storage space. laser - an acronym for light amplification by stimulated emission of radiation; a technology that benefits computing because tightly focused laser light enables applications in optical data storage and transmission. latency - how long it takes something to happen. The latency due to rotational delay on a disk drive averages to be the time for half a rotation, which is about 8.3 milliseconds at 3600 rpm. launch - a Macintosh term for starting an application. Launching may include setting up a partition and loading some things into RAM. (To do it, just double-click on the icon or name.) library - (1) in the context of computer systems, a set of data collections stored in a way that makes use of any member collection convenient and efficient. (2) to access the IUP library, you have three options. Note that all the options require VT100 emulation, which means you must do something to reset your terminal/device before you can reliably switch to using VMS. >> From Kermit 3.12, MS-Kermit> library >> From chief, Which service would you like? library login: library >> From VMS, set terminal/device=VT100 telnet opac.lib.iup.edu login: library (3) to access libraries on the Internet, start with $ netutil libs life cycle - a metaphor for the phases that a software system goes through from its inception until it is discarded or replaced. There are several models for the software life cycle. Typical phases are called system analysis, system design, implementation, testing, installation, use and maintenance. LIFO - Last In First Out; a stack data structure. line - a line segment extended infinitely forward and backward. line segment - the sum of all the points that lie on a path between two points. linear nested if - a case decision structure which is implemented by an if..else if..elseif..endif form of an if statement. See also "CASE" in this glossary and examples from Dr. Cross. Note that a linear nested if statement requires multiple endif statements in many languages, which makes a case statement a more practical way to implement a case decision. linked list - a representation of a list in which each item in the list includes a pointer to the next item in the list (or nil/NULL). list-directed I/O - I/O which occurs for a list of variables and is formatted according to compiler defaults rather than explicit programmer specifications. In Fortran, list-directed I/O statements use an asterisk (*) as a format. On input, values may be separated by one or more spaces or a single comma. Character values must be enclosed in apostrophes (single quotes ''). On output, numeric values are surrounded by spaces and character values are just strung together. LOC - lines of code local networks - communication networks that provide interconnection of varied data communicating devices within a small geographic area. The acronym LAN refers to a Local Area Network. local variable - a variable that is known only in the block of code in which it is contained. log - (1) a record of a system's activity. For example, a record of transactions against a database. (2) an abbreviation for "logout", the command to terminate a session of interactive computer use in vms. logic bomb - a software sabotage technique which consists of a program which is executed when a particular set of events happens, like a particular date or a particular user uses the software. (see "trigger") logical if - in Fortran, a one-line IF statement with exactly one statement and no false alternative. For example: IF (a .EQ. 1) PRINT *, 'a is equal to 1' login.com - a VMS identifier for a file of commands that are automatically executed at login time. At IUP, separate login.com files may be placed in the user's disk$member and disk$user directories. Additional login.com files may be installed by the project supervisor and the system programmers in the ISCC. logo - a graphic symbol for an organization or other object. For example, the letters IUP arranged in a copyrighted graphic form is the official IUP logo. lookup - to search for something in a data structure. For example, to find something in a database. loose coupling - relatively little coupling between a program module and the environment in which it is used; a desirable attribute of a program module. See coupling. LOW-VALUE - a figurative constant in Cobol that means the lowest collating value that can be represented in an eight-bit byte; X'00'. lse - Language Sensitive Editor, a DEC VMS product. See $help lse. Note that lse is one of a class of text editors for programming that facilitate the entry of correct syntax and the correction of syntax errors. Vax lse is both multi-language and extensible to user-defined language syntaxes. lurking - watching events in electronic discourse without participating, often to get the tone and acceptable behaviors of an electronic group. lynx - a client program that provides a user-friendly ASCII interface to WAIS servers. The program is maintained and distributed by the University of Kansas. Try $ lynx http://egret.ma.iup.edu M&P - the text used for CO 315 in Fall 1994. Miller, Nancy E., and Petersen, Charles G. "File Structures with Ada." 1990. Benjamin/Cummings Publishing Company, Inc. m-ary tree - see n-ary tree m-way search tree - a search tree in which each node has out-degree <= m, each node is composed of a set of pointers and key values, and the key values are arranged in a specific manner that facilitates searches thru the pointer structures. A binary search tree is a special case of an m-way search tree. (Loomis) machine cycle - the minimum unit of time that something happens in a CPU. In many cases, an integer add instruction consumes one machine cycle. "Clock cycle" is a similar term. See also MHertz. macro - (1) (ISO) an instruction in a source language that is to be replaced by a defined sequence of instructions in the same source language. The macro instruction may also specify values for parameters in the instructions that are to replace it. Examples of this kind of macro can be found in word processors, spreadsheets, and the C programming language. (2) In assembler programming, an assembler language statement that causes the assembler to process a predefined set of statements called a macro definition. The statements normally produced from the macro definition replace the macro instruction in the program. mainframe - a relatively large computer; a computer that provides multiple memory and processing services to multiple users. maintainability - a combined measure of understandability, modifiability and verifiability. maintenance (of software) - see software maintenance make - a Unix utility that builds and rebuilds an executable version of an application system with a minimum of compilation and linking. See "man make" on a Unix system or any Unix text. man - the Unix command for help. The command is short for "manual". management - the planning organizing, controlling, directing and staffing of an activity. Mandelbrot set - a set of points in the complex plane such that the sequence of numbers formed by squaring the previous number and adding a constant does not diverge. The images of Mandelbrot sets are self-similar at any level of magnification and are an exceptionally rich source of color images and mathematical diversion. map - to establish a set of values having a defined correspondence with the quantities or values of another set. (ISO) In graphics, a map is a set of values for the pixels in an image. Another example is a linkage editor map. martini - a geographic name server run by the University of Michigan. To set up a VMS symbol for it: $ martini == "telnet martini.eecs.umich.edu/port=3000" Use Martini for facts you migth expect in an almanac or encyclopedia. To get started, give the command HELP. massively parallel - term used to describe a computing system that is capable of applying 1,000 or more processing elements to a single job. math functions - to link math functions on Ultrix systems, cc demo.c -lm MBO - Management By Objectives meeting - in VAXnotes, a meeting is one form of a conference. (See conference.) In VisionQuest, a meeting is called a dialogue. (See dialogue.) meg - a million bytes of data storage. See also mega and bytes. mega - a prefix which means one million (10^6) or 2^20. (see kilo) MegaHertz - see MHertz megaprogramming - a technology for large-scale programming using modules. It is a form of programming which encompasses largeness, persistence, diversity, and large capital investment. See CACM, 1993. (Shamim, 1993) memory - the ISO standard describes memory as "a deprecated term for main storage". Related terms include transient vs. permanent memory, main (primary) memory vs. auxiliary (secondary) memory; virtual memory; mass storage; optical memory vs. magnetic memory; RAM and ROM; PROM and EPROM. menu - (1) a list from which you can choose an option, e.g., in a restaurant you place an order from a menu, while on a computer you click on or otherwise indicate your choice. (2) a campus data service run by the ISCC for the IUP community. The "menu" program provides access to campus data ranging from an event calendar and data center hours to student records and scheduling data. For example, to look up the current configuration of the vax cluster, select Academic Applications, Faculty Guide to IUP Computing, Mainframe Systems and Services. message - a request for an object to carry out the actions in one of the operations of its class. metacharacter - a character which means something other than itself in a particular context. For example, a wildcard character in an ambiguous file reference is a metacharacter. In Unix and C, you may "quote" a metacharacter to obtain its literal value of its metavalue, depending on context. metafile - a file which is used for long-term storage of a computer graphic image. method - an operation on a class that returns an object. A method is analogous to a procedure or function in a procedural context. A method is code bound to an object. The code provides an interface for messages requesting an operation and a means to perform the requested operation. (also known as a demon) methodology - any set of rational principles for the SYSTEMATIC design of an artifact. (CJS, in CO319, 10/8/86) metric - see software metrics MFlops - Millions of floating point operations per second. MHertz - millions of cycles per second for a CPU. All other things being equal, a 33 MHertz 486 will run faster than a 25 MHertz 486. However, there are many factors which may influence the speed of a system. MHz - see MHertz MICR - Magnetic Ink Character Recognition, the standard and hardware technology for symbols which are printed in magnetically sensitized ink. Banks use MICR to read account/bank/document id's printed on checks, deposit slips, and other documents. (Chow, 1993) micro - a prefix which means one millionth or 10^(-6). microcomputer support - Stright G1; 357-7870 microprocessor - a chip which contains the ALU and the control unit for a microcomputer. Microsoft technical support - ftp.microsoft.com middleware - technology that shields applications from underlying network protocols and operating systems. For example, "middleware" may allow users to access multiple databases without knowing the intricacies of each. More generally, middleware makes connections between client and server in a distributed computing environment possible. The term is part buzzword and part hype, but with current emphasis on things like client-server, distributed computing, and open systems, it is a necessity. (See Information Week, November 1, 1993, p. 62) MIDI - an acronym for Musical Instrument Digital Interface, the default standard in the music industry for digital instrument communication. It was created with the purpose of solving ever-increasing musical equipment compatibility problems. Implications of MIDI usage include simultaneous linkage of several digital instruments and/or a computer and creation of a "tapeless" recording/ sequencing facility. (Jeff Senley, 1991) milli - a prefix which means one thousandth or 10^(-3). MIMD - Multiple Instruction and Multiple Data-stream capability for parallel processing in a computer architecture. The Cray X-MP computer is actually a MIMD/SIMD hybrid because it allows more than one of its processors to work on different parts of a problem using a shared memory (MIMD) while each processor has the capability of vectorized computations (SIMD). minicomputer - a "midrange" computer, somewhere between a personal microcomputer and a mainframe in cost, speed, and data storage capacity. A minicomputer might be dedicated to a single mutliuser task, like registration, or used to manage the communications of a network, like the Vax front-end processors (FEPs). MIPS - (1) Millions of instructions per second; often derived by dividing MHertz rating by cycles per instruction. (2) Mips Computer Systems, a computer vendor. (3) A trade journal. MISD - Multiple Instruction and Single Data-stream capability for parallel processing in a computer architecture. model - a scaled down version of something that can be used to represent it or demonstrate interesting behaviors. See system model. modem - a MOdulator/DEModulator device that converts digital signals to analog and vice versa, thereby making it possible to transmit computer signals over telephone lines. modularization - breaking a complex task into smaller tasks. The quality of modularization decisions is reflected in the criteria of "strong binding and loose coupling." A strongly bound module is cohesive; a loosely coupled module shares little data with other modules. (see cohesion and coupling) module - a separately compilable file of source code. Note that COPY and INCLUDE files are discrete parts of the code for a system, but they are not separately compilable. The difficulty of developing, understanding, and modifying the code for a system is dependent the number of modules, their size, their interfaces, and their internal cohesiveness. In general, either having too many modules or having modules that are too long can cause difficulty. more - the Unix utility to display an ascii file one screen at a type, pausing until a space is entered. This is the rough equivalent of a VMS type/page command, which pauses until a is entered. motherboard - in bus architecture, a copper printed circuit trace board with circuit traces in approximately parallel lines and connectors for modules (printed-circuit cards, or daughterboards) located at convenient intervals. A printed circuit trace may be viewed as a group of wires with their insulation stripped off, laid in a pattern on a board, and permanently set in place. The important feature of a motherboard is that daughter boards can easily be inserted or removed. A motherboard is also known as a backplane. mount - to inform the operating system that a file system is present and thus make it available to users. This is a Unix term. mouse - a hand-held input device which is connected to a computer system by a wire "tail". As an input device, a mouse has the advantage of allowing the user to look at whatever it is he or she is manipulating. A mouse is limited by the need for a surface to move it on. A pen is more appropriate for drawing. MS-DOS - Microsoft Disk Operating System MTBF - Mean Time Between Failures MTTD - Mean Time To Detect (a fault in a computing process), also known as error latency. MTTF - Mean Time To Failure MTTR - Mean Time To Repair (or Recover). multicomputer - a processor network in which each CPU has its own private memory. Coordination is accomplished by message passing. See multiprocessor. (Merlino, 1993) Multics - a multiuser, time-shared operating system developed in the 60's by AT&T, GE and others. It was too large to ever be popular, but the experience gained from it is reflected in other operating systems. multimedia - the integration of more than one medium in a communication or information system. For example, the integration of sound output with a GUI is a common example of a low-level multimedia application. Including voice and video input and storage capabilities is a little more sophisticated at this time. multiple-level control break algorithm - an algorithm to process records sequentially, allowing for a hierarchical structure of interrecord dependence. For example, an IUP class registration report may list enrollment counts by course within department within college. These are multiple, hierarchically structured control breaks. multiplexor channel - a channel which can manage data flow between main memory and multiple devices simultaneously. See "channel" and "selector channel". MULTIPLY - a Cobol verb. See $ help cobol procedure multiply multiprocessor - a processor network in which the processors have a shared memory. See multicomputer. (Merlino, 1993) munge - to make a mess of a good file, or on a display, or on a listing, or other media. See also "garb". n-ary tree - a finite set of nodes which is either empty or consists of a root and at most n disjoint n-ary trees (called subtrees). NAK - see negative acknowledge character nano - a prefix which means one billionth or 10^(-9). Grace Hopper frequently pointed out that light travels a little less than a foot in one nanosecond and passed out lengths of wire cut to the exact distance at her public appearances. (see note attached to kilo) NAPLPS - North American Presentation-Level Protocol Syntax, a standard for the transmission of text and graphics to videotext and teletext terminals. NASA - National Aeronautics and Space Administration NCGA - National Computer Graphics Association ndx - a filename extension that dBASE III PLUS uses for an index file. negative acknowledge character - (ISO) A transmission control character transmitted by a station as a negative response to the station with which the connection has been set up. A negative acknowledgment in binary synchronous communication indicates that an error was encountered in the previous transmission and that the receiving terminal is ready to accept another transmission. nested IF - an IF statement which contains another IF statement in either its true or false alternative. net - for all practical purposes in 1993, "the net" is the Internet and all systems which can send mail via the Internet. This slightly loose definition includes CompuServe and other commercial systems which allow E-mail links to the Internet. Who know what the NII "Information Infrastructure" will add to the net in 1994? NetMail - a program used to communicate from a local mail system to nodes on wide-area communication networks. A typical syntax for using netmail is to address an e-mail message To: netmail%"jacross@grove.iup.edu". The word "in" may be substituted for netmail resulting in To: in%"..." network - see computer network network protocol - the design (and behavior) of software used to communicate over a LAN or a WAN. Examples: NFS, TCP/IP, SNA, DECnet. see protocol. NeXT - a small computer vendor (~350 employees in 1991) and their principal product, NeXT software. The Nextstation is no longer being produced because it is not based on RISC technology. The amount and quality of software that are bundled with the Nextstation are the best available. (John Cross, Dec. 1991.) NeXT made two deals recently. Cannon is going to start production of an INTEL based (486/Pentium) NeXT-dedicated workstation. In addition, SUN is going to use NeXTSTEP as part of the next revision to its SOLARIS software. (Don Rosenberger, March 1994.) NIH - Not Invented Here. This acronym is used to describe a situation where people reject something because someone else developed it. (Of course, it may also refer to the National Institutes of Health.) NII - an acronym for the "National Information Infrastructure," also know as the "Information Highway" popularized in Time and Newsweek and promoted by Gore and Clinton. Techies may think Internet, average citizens may think interactive TV and access to movies, others may think multimedia who knows what . . . (as of late 1993) . . . nil - nothing; by common usage, a data file with no content. NIL is also used in Pascal as a value for a pointer that is initialized to point to nothing. NIOSH - National Institute for Occupational Safety and Health, responsible for monitoring emissions from CRTs among other things. node - (1) In a data network, a point where one or more functional units interconnect data transmission lines. (2) The representation of a state or event by means of a point on a diagram. (3) In a tree data structure, a point at which subordinate items of data originate. (SRA DP Glossary, 1979) noise - anything which interferes with the playback of a recorded signal or the reception of a transmitted signal. Dust and dirt on magnetic media are noise, and so is the interference of two people talking at once in a meeting. Anything which interferes with the accurate communication of meaning is termed semantic noise. (Note: this implies that the problem of noise is a sub-problem of that of semantic noise.) normalization transformation - in computer graphics, the mapping of a window onto a viewport. This mapping is also called a viewing transformation, or windowing transformation. notify - a qualifier on the vms submit command that directs vms to send a message to the user when a submitted task completes (or aborts). See $ help submit /notify Novell - Novell Netware is popular software for LANs in 1994. Novell claims a market share of over 60%. Pathworks, by Digital Equipment Corporation, is a distant competitor. The basic functions include installation; sharing printers, disk drives, and applications; and security. NP-complete - a mathematically formal statement of whether or not there is an efficient algorithm to solve a problem. Generally, an NP-complete problem is "intractable" (too hard for a computer). An algorithm to solve an NP-complete problem frequently amounts to trying every possible solution where the number of solutions is too large to consider them all. NREN - National Research and Education Network, a gigabit-per-second data communications network proposed for completion by 1996. NSA - National Security Agency NSF - National Science Foundation; bulletin from Mark Strawcutter follows: Description: NSF Science and Technology Information System From: MJSTRAW Date: 27-AUG-1991 21:25 From: OAK::MJSTRAW TELNET to stis.nsf.gov, use login "public" (in lowercase). For terminal type vt100 (the default) works fine. With a DOS PC running KERMIT, put NumLock ON and use the arrows and such from the numeric keypad. Getting help at the terminal type prompt is a good idea the first time. nsfnet - a university computer network which is operated by the National Science Foundation; the backbone and fastest connections of the Internet. (Tawann Simmons, 1993) nth - numbered with an unspecified or inordinately large ordinal number. For example, to the nth degree. null - something that amounts to nothing; in C, NULL is defined in stddef.h as a pointer to address zero. The c value NULL for a pointer is similar to the Pascal value NIL. object - an element of a computer system that has a unique identity, state (represented by public and private data), and public and private operations that define the behavior and state of the object. By maintaining standard interfaces, objects can be treated as "black boxes" which can be reused, modified and replaced wihtout affecting the rest of the program. An object is avariable, or instantiation of a class. Another description: An object is an encapsulated software entity that provides services when it receives a message from a client. (related terms: information hiding, class and abstract data type) object-oriented design - modularizing a problem into smaller problems based on data (including the state of an object) rather than function. object-oriented programming - a programming methodology based on modeling data objects and their behaviors after the real-world entities they represent in a computation. In contrast to structured programming, which breaks a problem into a hierarchical structure of subordinate tasks, OOP models a problem domain as a set of interacting entities (called objects). Thus, objects and classifications identified during the analysis phase of software development are preserved during the design and implementation phases. A typical object might be a screen that has attributes of size and location and behaviors corresponding to different interactive mechanisms. Smalltalk is reputed to be the purest and intrinsically best object-oriented OOP language, but C++ is more widely known and used. See object-oriented design. oblique - any angle other than a right angle. In graphics, an oblique projection is any projection in which the projection plane is not perpendicular to the lines of projection. In most cases, an oblique projection has a view plane which is parallel to a front planar face of an object being viewed, with the projection lines drawn at an acute angle to that face. For example, when 3D axes are drawn on a 2D surface with tow of the axes at right angles and the third axis headed off at an angle, you are viewing an oblique projection. Cavalier and cabinet are common choices for oblique projections. observability - the property of a program that describes its production of consistent output for distinct inputs. A program which lacks this property is dependent on state variables which are not specified in its interface. octal - a representation of a number in a base-8 system. ODA - Office Document Architectures; a set of architectures for office documents that are being considered for international standardization. There are currently about 25 descriptions. This effort is related to the SGML effort in the sense that SGML embeds markers of the logical structure of a document, while ODA describes what a particular type of document ought to look like. Vendors of computer systems use ODA (e.g., as part of DEC's Compound Document Architecture system), while SGML is a standards effort. (HMMicco and Phil Andrews, 12/91) OEM - an acronym for Original Equipment Manufacturer. A company or organization that purchases computers and peripheral equipment for use as components in products and equipment that they subsequently sell to their customers. OLE - an acronym for Object Linking and Embedding, a Microsoft mechanism for seamless integration of application programs. For example, Microsoft Word and Excel have OLEs. OpenDoc is a similar mechanism from Apple, Borland, and IBM. Both models define mechanisms for files to contain data areas owned by different objects. For example, a word processing document may contain a data area that is owned by a spreadsheet application. ones complement - the straight complement of a binary number. (See twos complement, which is the ones complement plus 1.) ontology - in logic and Artificial Intelligence, the primitive concepts, terminology, and interpretation paradigms of a domain of discourse which together provide a conceptual framework for talking about an application domain. OO - (1) object-oriented. For example, OODBMS. See object-oriented design. (2) Pronounced oh-oh. An expression of dismay. See oops. OOD - see Object-oriented design OOP - see object-oriented programming oops - if you arrived at this entry from the OO entry you do not have a humerus bone in your arm. open - (1) as a verb, open means to prepare a data set (file) for processing. In the context of particular operating systems and/or programming languages, this includes completing a set of attributes for the file which is to be accessed and returning a status code which indicates if an input file does not exist or cannot be read, an output file cannot be written, or everything is OK. See also "extend" and $ help cobol procedure open or similar helps in Fortran, Pascal, and C., (2) As a modifier in a compound term, e.g., in the terms open systems or open addressing, the term open connotes "accessibility". open addressing - in hashing techniques for random file addressing, any approach to collision resolution whereby synonyms are all stored in the file's primary address space. These techniques are generally compared with separate overflow addressing. open lab - a lab in which students may work on a variety of projects without direct supervision. In current CS educational practice, an open lab is usually equivalent to a project which has a deadline but no dedicated lab. See also closed lab. open subroutine - (ISO standard) a subroutine of which a replica must be inserted at each place in a computer program at which the subroutine is used. Synonymous with direct insert subroutine. open systems - the ability of applications to be independent of the hardware and software platform. DEC said in their 1992 DECUS Annual Report: "What people really want when they say 'open', in all its forms, is access to whatever kind of information there is, and they want access to whatever kind of application they like, and they want to do it through whatever kind of appliance they like to put their fingers and eyes on. And they really don't care who built it or what kind of operating systems it runs." In short, users want to do their own thing with the details of the supporting systems being 'transparent' to them. operating system (ISO) - software that controls the execution of computer programs and that may provide scheduling, debugging, input/output control, accounting, compilation, storage assignment, data management, and related services. operation - in OOP, a class-level abstraction describing a sequence of messages or actions that access or change the state of an instance of a class. operator - a symbol that causes one or more values to be manipulated to produce a single result. For example, a unary minus negates the value of a numeric data value and a concatenation operator combines two character-string values into a single character-string value. optimum binary search tree - a binary search tree in which expected search times are minimized. The cost time for a successful search can be measured as the sum of the products of the frequency of search for each node, represented as a probability, times the level of the node. The cost time for unsuccessful searches can be represented as the sum of the products of the probabilities of arriving at an external node times the level of each external node. oracle - a mechanism to predict what the result of a test should be before running the test. An oracle gives you some idea if a test should be run and helps evaluate the correctness of actual tests. order of magnitude - a difference in two measures that is about ten, as opposed to a difference that is about 100 (two orders of magnitude), or closer to a smaller multiple (ten-to-the-zero power is one). organization - see "file organization: orphan - in printed documents, the last line of a paragraph that is printed as the first line of a new page. orthogonal - (1) at a right angle to; perpendicular to. (2) in a discussion, a remark or concern that is going "at a right angle to" the course of the discussion. OS/2 - an IBM-sponsored operating system for microcomputers. The strength of OS/2 is that it is multitasking and generally a much more capable operating system than DOS. Its weakness is that it is huge and an IBM product in an open world. The amazing thing about it is that it is holding up well beyond what people thought it would (as of 11/93). OSI - Open Systems Interconnection (see open systems) OTA - the U.S. Office of Technology Assessment. outsourcing - obtaining computing expertise and facilities management outside of an organization. overloading - the ability to attach more than one meaning to the same name in the same scope as differentiated by type or some other class characteristic. (Overloading is a simple form of polymorphism.) overstrike mode - a text editing mode in which characters replace characters already in a file as they are entered. This mode is also called "overtyping". It is usually implemented in a way that a user can choose either "insert" mode or overstrike mode. overtyping - entering data in overstrike mode. PACISE - Pennsylvania Computer and Information Science Educators (pronounced pay-cease) package - an Ada construct that declares a set of data and program units in a single program unit and can be used to create ADT's. packet switching - a method of digital communication in which messages are divided into packets of a bit size which is determined by the needs of the transmission network, and are transferred to their destination in a store-and-forward manner over multiple "virtual" circuits, which are dedicated to the connection only for the duration of the transmission of the packet. page fault - the event that a program which is executing needs to access auxiliary memory for data or instructions which are not currently in its RAM. page-break - an event in which the output of a process starts appearing on a new physical page. A "soft" page-break occurs when the processor decides to start a new page; a "hard" page-break occurs when the user directs the processor to start a new page ( in WordPerfect). palindrome - a string that reads the same both forward and backward. Upper/lower case and spaces are often ignored. Examples are "abcBA" and "otto". panel - an interactive device in windows interfaces which is like a menu, usually with a query and buttons and possibly a place for text entry. panning effects - in computer graphics, the visual effects produced by moving a fixed-size window across a larger picture. paradigm - literally, an example or pattern. "A programming paradigm is a collection of conceptual patterns that together mold the design process and ultimately determine a program's structure." (Ambler et al., IEEE Computer, Sep 1992, p. 28) Object-oriented programming and procedural programming are considered to be programming paradigms. PARADOX - a DBMS that is popular with PC users in 1993. It is currently regarded as a better package than dBASE IV at this time. paragraph - in Cobol, a part of the source code that begins with a paragraph-name and ends with the next paragraph, section, division, or end of source code. A paragraph must contain at least one sentence. A paragraph is slightly different from the Cobol concept of a procedure (or module) because a Cobol procedure could be a SECTION. parallel arrays - two or more arrays whose ith entries all relate to an ith entity. Parallel arrays are an alternative to arrays of record (Cobol and Pascal) or structure (C) variables. parallel computer - a computer which incorporates multiple processors operating simultaneously (i.e., in parallel). parallel programming - programs which incorporate concurrent execution of threads that may compete for shared resources when cooperating in accomplishing a common goal. parameter - (1) a variable that is given a constant value for a specified execution of a procedure. For example, the source and destination objects in a copy command are two of its parameters. (2) a name in a procedure that is used to refer to an argument passed to that procedure. (see also argument, actual argument, dummy argument) parity - a state of things being equal or equivalent. In computer system architecture, the term is often applied to a technique for adding a bit to a physical unit of computer data (like a word of memory or a packet of data transmission) that is set on or off (1 or 0) for all such units according to an odd or even parity scheme. For example, when a data transmission is received, the receiver can check if an even or odd number of bits is received. If the "parity" of the transmission is not what was expected, there must be something wrong with the communication link or the transmission. parse - see parsing parsing - the use of syntax and contextual cues to determine the functions of the tokens (words) in an expression (generally, but not necessarily, linguistic) in order to create a data structure that can be used to get at the "meaning" of the expression. PASCAL - a programming language developed by Niklaus Wirth in the early 1970's and named after the French mathematician. It is a block-structured language designed to facilitate learning programming skills. patent - a document which grants exclusive right to the production, use, sale, and profit of an invention. Since the early 1980s, and especially in the late 1980s, patents have been issued on particular techniques that can be used to build programs, or particular features that programs offer. For example, Apple's HyperCard program allegedly violates patent number 4,736,308 for displaying portions of two or more strings together on one screen, effectively scrolling with multiple subwindows. Scrolling and subwindows are common techniques, but combining them may be a violation of patent law. The threat is that software patents may inhibit software development in the U.S. The former policy of providing intellectual property rights to software developers via trade secret laws provided less protection but threatened less legal entanglement for software developers. (See Dr. Dobb's Journal, November 1990, pp. 56-73.) pathname - a list of directories and separators (/ in Unix or \ in DOS) ending with the name of a directory or nondirectory file. A pathname is used to trace a path through the file structure of locate or identify a file. pattern recognition - the identification of shapes, forms, or configurations by automatic means. (ISO) For example, as in computer vision, speech recognition, or a spelling corrector as implemented in the glossary program. PBX - an acronym for "Private Branch Exchange". Designed and used in the 1970s predominantly as a telephone switching device for offices, PBX has evolved into a powerful tool for integrated voice/data transmission and networking. (Black, "Data Netowrks", 1989. Pages 842-852. PC - (1) a personal computer. Initially, in 1981 and for a few years after, a pc was an IBM microcomputer. In 1991, the term connotes a single-user microcomputer. (2) a popular magazine on personal microcomputing. PDL - process design language peer to peer - a computer networking system which involves two systems running the same protocols interacting at a peer level. That is, there no hierarchical relationship between them. For example, the term client/server does not apply to peer to peer interaction. PEMF - pulsed electromagnetic field; electrically generated magnetic fields that have been used to treat bone fractures. Concerned people have argued that if PEMFs have a positive effect on human bones, they might also have hidden negative effects on users of CRTs. PERT - Program Evaluation and Review Technique physical symbol system (Alan Newell) - a collection of patterns and processes, with the processes capable of producing, destroying and modifying patterns. Patterns designate objects, processes or other patterns. Patterns which designate processes can be interpreted. Examples include computers and human beings. According to Newell, a physical system has the capability for intelligent behavior. PIC clause - in Cobol, the term PIC clause is an abbreviation for PICTURE clause. A Cobol PICTURE clause may be used to define a number of attributes of an elementary field, particularly the type, length, and editing specifications. If you are on a VMS system, enter the following for more detail: $ help cobol data clause pic pipelining - a method of parallel processing in which execution of a new task is started before the preceding task is completed. piracy - see software piracy pirate - see software piracy pivot node (of an AVL tree) - the node which is the closest unbalanced ancestor of a node which is being inserted into an AVL tree. A node of an AVL tree is balanced or unbalanced depending on whether its left and right subtrees have equal height. pixel - a picture element. An image is composed of many picture elements, each with a set of attributes. pixel map - a representation of an image that is composed of a set of attributes for every pixel in the image. Related terms: pixel, pixmap, frame buffer. pixmap - a pixel map PL1 - Programming Language 1. PL1 is a higher-level programming language that has roots in ALGOL, COBOL, and FORTRAN. PL1 was popular on large IBM systems in the late 1960s and early 1970s, but its popularity waned when no standard emerged. plane - the set of points whose rectangular location coordinates satisfy an equation of the form Ax + By + Cz = D. platform - jargon for the computer hardware and operating system where application software is being run. The term is a metaphorical reference to a distinct showplace where something is happening. pluralistic society - members of diverse ethnic, racial, religious, or social groups maintain an autonomous participation in and development of their independent culture or special interest within the confines of a common civilization. (Webster's New College Dictionary) point - an infinitesimal location in space (2D or 3D). pointer - a data type which stores the address of a memory location where a data value of a specified type is stored. For example, a pointer type could be declared as "pointer to integer" or "pointer to pointer to floating point value". polymorphism - giving an action one name that is shared up and down an object hierarchy, with each object in the hierarchy implementing the action in a way appropriate to itself. For example, two classes called car and boat can perform an operation called "move", but the method which carries out the operation is different. The use of the same command to generate similar effects using different code is polymorphism. POP - an acronym for Post Office Protocol, a service used on the Internet to allow remote noted to run local mail software, thus lowering connect time. port - (1) to install software in another system other than the one it was constructed in. (2) a functional unit of a node thru which data can enter or leave a data network. (3) an access point for data entry or exit to a system. (4) in data communication, that part of a data processor which is dedicated to a single data channel for the purpose of receiving data from or transmitting data to one or more external, remote devices. portability - the ability to use data and programs with different computer systems (the essential differences are hardware, media, recording specifications, and operating systems). The concept of physical portability is often confused with this computer-specific meaning because it is something that people look for in microcomputer and telecommunications systems. porting from unix to vms - This example will show how the pattern matching in glossary will distinguish between unix to vms and vms to unix. porting from vms to unix - This is an example of a computing tip that a user consultant might like to remember and be able to retrieve. POSIX - the IEEE portable operating system interface standards postscript - a trademark of Adobe Systems, Inc., for a device-independent page description language. Postscript can be used to drive many popular laser printers to produce desktop publishing quality in terms of fonts, font sizes, graphics, and in some cases color. Postscript is widely used for passing graphic output between devices and installations because it is "clear text", that is, it does not contain tricky little binary codes that confuse file transfer programs. The postscript language is defined best in two paperback books, a Tutorial and a Reference Manual, published by Addison-Wesley and Copyrighted 1986. Many system programmers and system managers keep these books on hand. At IUP, postscript is effective at producing striking effects on the laser printer attached to the vaxes in Stright Hall. Documentation is available in the file: ldisk$colib:[compsci.jac-txt]postscript.doc. precedence - in an expression which contains multiple operators, the order in which operators are evaluated. Because of its rich (and complex) set of operators, the precedence rules for C are particularly detailed. For example, in the following statement, the precedence of evaluating the operators can be shown by adding parentheses. x = a + b / c * d; is equivalent to: x = (a + ((b / c) * d)); predicate - (1) in logic, that which is affirmed or denied about the subject of a proposition. (2) in grammar, the words that make a statement about the subject, for example: The wind . The wind . John . The grass . (These definitions and examples came from Webster's Unabridged Dictionary.) predicate calculus - the branch of symbolic logic that uses symbols for quantifiers and for subjects and predicates of propositions as well as for unanalyzed propositions and logical connectives. Called also functional calculus. See also propositional calculus. presentation graphics - passive, support graphics to aid clarity, conciseness and focus to numeric data. This form of graphics generally takes the form of charts. Much of its power is drawn from its universality, conciseness (i.e., greater information transfer 'bandwidth') and the fact that humans process visual data differently than numbers and words. press - a mouse action which involves pointing at something, pressing a mouse button and holding it down. When it works, this action should have an effect like a multiple click. Think of holding down a key and kicking in an auto-repeat feature for that keystroke. prettyprinter - a program which takes a source program as input and produces a "beautified" version of the source with conventional indentation. Turbo compilers (Borland) and the Unix cb and indent utilities are examples of automatic formatting of source code. The functions of a prettyprinter may go beyond indentation; the basic concept is to automatically enhance the readability of code by changing what it looks like. prime - a term used in cleanroom engineering to represent a specification that is implemented directly in code and must be verified by a proof. primitive - a term that is occasionally used in cleanroom engineering as a synonym for "prime". A primitive specification is one that cannot be expanded any further without implementation in the target programming environment. E.g., "Swap the values of two array elements." Note that a primitive is the limit of a general-purpose design language. It is included with code as a comment in cleanroom style and it is verified by arguing that its corresponding code does what the primitive says. printer - a device that produces a visible record of data from a computer system on paper or other media. printer queue - in VMS at IUP, to find the names of the printer queues type SHOW QUEUE. To find the names of laser printer options, SHOW Q/DEVICE=PRINTER. To find the names of forms (types of paper), SHOW Q/FORM 1v*. (There are so many forms that you should limit what you ask for. The same comment applies to the queues.) privileged instruction - (ISO standard) an instruction that may be used only by a supervisory program. prn - a filename extension which Lotus 1-2-3 uses to indicate the output of a Print to File command. problem domain - problems which share a common source of complexity, at a pertinent level of abstraction, or from an appropriate point of view. E.g., business data processing, real-time process control, or file / database applications. procedure division - the part of a Cobol program that process the data and files described in the ENVIRONMENT and DATA divisions. Pseudocode documents the control flow which is coded in the PROCEDURE DIVISION. See $ help cobol procedure. process - in Unix, the execution of a command by the operating system. In general, an executable file that has been invoked but has not terminated. process design language (PDL) - a language for designing programs that has some features of both natural language and programming languages. The advantages of a PDL are that it is closer to the language of the application than a programming language, it can be independent of a particular programming language, and it is textual, which makes it easier to apply computer tools. (see pseudocode) processor - software or hardware capable of processing data. For example, a CPU or a programming language processor. profile - (1) a program written by IUP staff to automatically establish what kind of system is communicating with our VAX hosts. $ set terminal/inquire accomplishes the same thing. (2) lots of other things .. ask if you are interested. program - see computer program program block - a portion of a program which contains all the declarations, definitions, and other statements for a task. The concept of a program block includes the ability to limit the scope of any of its identifiers to that block, or some part of it. For example, in PASCAL, the block structures are PROCEDURE, FUNCTION, and PROGRAM. Related concepts: scope, compound statement. program design language (PDL) - a common meaning for the acronym PDL, although process design language is a preferred meaning. programmer - see computer programmer programming environment - a software development environment (SDE) that supports only the programming process. See Sommerville, 4th edition, page 352. The Bell Labs "Programmer's Workbench," circa 1977, is a prime example. programming language - a set of conventions for representing an algorithm in a way that can be translated into computer instructions. prompt - a character displayed by an operating system or application program to indicate that a computer is ready to accept commands. For example, the $p$g command in DOS causes the operating system to display the current drive and directory ($p) and a > symbol ($g) as its prompt. propellor head - a term that non-hackers might use to describe techies. The term may derive from science fiction fandom's tradition of propellor beanies as fannish insignia. Similar terms: computer geek, computer nerd, digit head. propositional calculus - the branch of symbolic logic that uses symbols for unanalyzed propositions and logical connectives only. Also called "sentential calculus". See also predicate calculus. protocol - a set of rules governing the exchange of data. prototype - a functioning model that is constructed for developer and client assessment. PrtSc - a key on microcomputer keyboards that attempts to allow the user to immediately print whatever is displayed on the screen. On some systems printing can only be stopped by turning off the printer. Some things that appear on the screen do not print. For example, underlining in WordPerfect and other things that are caused by "hidden characters" do not print. PSC - Pittsburgh Supercomputing Center pseudocode - a method for expressing an algorithm in English-like statements that can be rewritten in compilable code. Pseudocode differs from the concept of a program definition language in its direct similarity to a particular programming language. See program definition language (PDL). public domain - free from copyrights or patents, these programs may be used by the public without compensation to the creators. (from an article by Andy Rathbone in Compuserve Magazine, November 1993, p. 13. See also freeware, bannerware.) public key encryption - an asymmetric scheme for data encryption that uses a pair of keys. A public key encrypts data and a corresponding secret key decrypts it. For digital signatures, the process is reversed: the sender uses the secret key to create a unique electronic number that can be read by anyone possessing the corresponding public key in order to verify that the message is truly from the sender. purge - a VMS command which deletes all but the highest numbered (most recent) versions of a file. The purge command is often combined with the /log qualifier so that the files which are deleted are listed. pwd - the Unix shell command that executes the "print working directory" utility. See "man pwd" on a Unix system. QBE - Query By Example, a database term query - in interactive systems, an action at a terminal that elicits a response from a system. For example, a database software package may respond to a query about all employees in the accounting department with a count and an average salary, or it might list the employees, depending on how the query is prepared by the user. queue - a list data structure in which insertions may only be made at the end and deletions may only be made from the beginning. A queue is a first-in first-out (FIFO) data structure. (See stack) quicksort - a sorting algorithm first published by C.A.R. Hoare in 1961. It has an average performance of O(n*log(n)) steps and a worst case performance of O(n*n). See your data structures textbook for the details of the algorithm. e quit - a word that is often used to signal the end of an interactive process. Note: enter a blank line to terminate glossary. quota - in VMS, the disk space alloted to a user. See show quota. QWERTY - an acronym for the most common arrangement of letters on a keyboard. The acronym comes from the first five letters on the top row of letters. The QWERTY keys were arranged to slow down typists in the early years so that the did not go too fast for the early typewrites and jam the keys. The modern Dvorak arrangement is faster for a skilled keyboard person, but old ways can be hard to change . . . R&D - Research and Development r-r - A text-limited way to laugh in e-mail. (Har-har, do you C it?) A real belly laugh might come thru like r-d-r-r. radix sort - A 'bucket-sorting' algorithm which has a unique destination for each sort code, similar to an electronic card-sorter. This sorting concept is not only conceptually simple, it also guarantees o(n*keywidth*keyrange) complexity as opposed to o(n^2) or o(nlogn) for algorithms which do not make assumptions about the sort keys. (This concept is a close relative of the DISTRIBSORT of CO 315, and is generally in the category of bin sorting algorithms.) ragged-right - text which is left-justified. (see justify) RAM - Random Access Memory random access - the ability to access any addressable unit of data that is less than all of a file or memory. For example, a random access record-oriented file allows a user program to access any record without reading sequentially through the file to the point where that record is stored. random access memory - conventional main memory that is both readable and writeable. rank - relative standing in a group. For example, the IUP grade-check system reports both student rank and absolute scores. Rank is a statement of how a student's score compares to other scores. Assigning letter grades based on a statistical "curve" assigns a greater importance to rank in the grading process, while the use of a 60%-70%-80%-90% standard is more criterion-based. rapid prototyping - in software engineering, a working model of a proposed system which is built before design is complete, in order to help involve customers in determining requirements and deciding on a final design. rationale - the underlying reason for doing something. In software development and maintenance, there is a need to clarify and document the WHAT (requirements and specifications), the HOW (design), and the WHY (rationale). ray tracing - a method of rendering graphic images that conceptually asks what the eye sees through each pixel in the image but most often computes what a ray of light from the eye through each pixel encounters. The light sources of the scene are then considered to compute the ambient, diffuse, and specular components of light. This method of rendering produces very high quality images at the cost of extremely high amounts of computation. RDBMS - a relational DBMS (see DBMS) reactive system - a concept that includes embedded systems (e.g., in autos, systems for controlling brakes or carburetion), concurrent systems (e.g., parallel algorithms), and real-time systems (e.g., telephone switching). These systems often present "wicked problems" to software developments. [See Harel, IEEE Computer, January 1992, p. 10.] read - a statement found in many programming languages. >> In Cobol, the READ statement attempts to read a record from a specified file. Common clauses to modify its meaning include AT END, NOT AT END, and INTO. The READ file-name INTO identifier is equivalent to a READ file-name followed by a MOVE of the record into the identifier. See $ help cobol procedure read 1. read-only memory - memory which cannot be modified except by a special user, often the manufacturer of a device which contains the ROM. real - a floating-point data type. The internal representation of a real number usually takes the form of a modified scientific notation with a normalized mantissa, exponent, and sign bit. real-time - a process which must coordinate its actions with its environment; a process which responds quickly and reliably enough to participate in the events of its application domain. record - (1) (ISO) A collection of related data or words, treated as a unit. For example, a record in Cobol (or Pascal) is a collection of one or more data items. (2) A unit of data transmission. redirection - in Unix, the process of modifying the source of standard input or the destination of standard output at run-time by parameters added to the command that invokes a process. For example, the glossary.exe run-unit might be invoked by a command that specifies a list of terms to be looked up with the syntax: % glossary < myterms reengineer - rebuild an object, such as a software system, from existing design data in order to improve the overall quality of the object. See also reverse engineering. reentrant program - (ISO standard) a computer program that may be entered repeatedly and may be entered before prior executions of the same program have been completed, subject to the requirement that neither its external program parameters nor any parameters are modified during its execution. Reentrant programs may serve multiple users simultaneously, without requiring multiple copies of the executable code. regression testing - testing before and after changes are made, then comparing the results to verify that only the intended functions changed. regular expression - in effect, a formula that specifies a set of strings (called a language) over a set of atomic symbols (called an alphabet). The use of the Kleene star (a)* and the closely related +-notation (a)+ are frequently helpful in stating a regular expression. Examples follow (ref. Wulf et al, 1981): ab* = {a, ab, abb, abbb, ...} (a + b + c + d + e) = {a, b, c, d, e} d*.d+ where d = (0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9) = {.0, .1, ..., 1.0, 1.1, ...} Note: I am often asked for help with Unix regular expressions. The best reference I have is Appendix B in Sobell's Unix book. relative address - (ISO standard) an address expressed as a difference with respect to a base address. relative file - a relative file is one which is organized into a series of fixed-length positions (cells) that are numbered consecutively. The cell in which a record is filed is computed from its key "relative" to an algorithm a particular file uses and the length of records (and possibly cells, if they are different from records). release - a term that is used in configuration management to indicate an edition of a software system that is different from prevision editions in a major way. "Version numbers" indicate minor changes. For example, Release 5.0 should be different from all lower-numbered versions in a major way. See also "version". reliability - considered as a function of time, reliability is the conditional probability that the system will survive for a given period of time, given that it is operational at the beginning of that period. More generally, reliability is the probability that a system will fail while it is in use. Note that the reliability of a system depends on what it is being used for and where it is being used. (related terms: availability, MTTR, MTTF, MTBF, software reliability) repository - in Sue Conger, "The New Software Engineering", 1994: "A repository is an active data dictionary that supports the definition of different types of objects and the relationships between those objects." In practice, the meaning of the term repository may encompass configuration management. See configuration management, data dictionary and integrated toolset. requirements - the services a system should provide and the constraints under which it must operate. reserved word - a word that may only be used as an element of a programming language, not as a programmer-defined identifier. resolution - the number of points per unit of measure which a display device is capable of presenting in a non-overlapping display. Common ways of expressing resolution include dots per inch vertically and horizontally, giving screen dimensions in pixels, spot size and minimum pen movement on a plotter. retrieval trie - see trie reuse of software - using all or part of an existing software artifact in the development of another software artifact. For example, the design and code for an object in a GUI may be reused in another part of the application or in a totally different application. Another example is to reuse code which implements a basic algorithm, like a sequential file process or a control-break, in another application by changing details like a report format and/or identifiers. reverse chronological order - arranging data items in a LIFO sequence, rather than in a FIFO sequence as in chronological sequence. Note: maintaining a sequential log file for transactions in reverse chronological order can be achieved by opening the log file in a Cobol program with the "EXTEND" attribute. reverse engineering - the process of developing a set of specifications for a system by an orderly examination of specimens of that system. (ref. Chikofsky, E. and Cross, J. in "Reverse Engineering and Design Recovery: A Taxonomy", IEEE Computer, January 1990, pp. 13-17.) The purpose of reverse engineering in a software context is to identify system components and create a representation of the system in another form or at a higher level of abstraction. In practical terms, reverse engineering is starting the process of building something by studying the details of an existing version that works. On occasion, reverse engineering is a euphemism for violation of intellectual property rights. See also reengineering. reverse Polish notation - a synonym for postfix notation (ISO). revision of software - making a change to existing software. The term applies to all forms of software maintenance. See also software maintenance. revolution - On a disk drive, a rotation of a disk. Rotational delay is a component of disk access time that depends on how fast the disk is rotating, which is measured in rpm's. 3600 "revolutions" per minute on a hard disk works out to 16.67 milliseconds per rotation, which implies an average latency due to waiting for the data on a disk to come under a read/write head of 8.3 milliseconds. Typical rotation speed on a removable disk drive is 360 rpm. RFP - Request For Proposal. An RFP (or a specification) is the first step in a software development project, which makes it a critical document in software engineering. If you are into lifecyle models, it is the "birth" of a project. An RFP is a beginning to a dialogue that is successful if it results in profitable business for the software developers and a satisfied customer. An RFP may be very informal or very detailed. An RFP is often sent to multiple bidders. rightsizing - I couldn't find this one -- it seems to refer to placing applications on the right size system. In current distributed systems, this makes sense. Please contribute more if you can... RISC - Reduced Instruction Set Computer; typically around 100 instructions. risk - the probability of something undesirable happening times the harm caused by the system failure. risk-based testing - assessing values to the harm caused by possible system failures and probabilities to each failure. The risk is the product of the harm done by the failure and the probability of it happening. Risk-based testing tests focus on high-cost and high-probability failures. RMS - Record Management Services in DEC VMS. See help rms. robustness - the extent to which a program minimizes the unacceptable consequences of inputs by responding easily to arbitrary erroneous inputs and by foreseeing and indicating undesirable effects of an input. (related term: error trapping) ROCOF - relative occurrence of failures, a unit of reliability measurement and modeling. ROM - see Read-Only Memory root directory - the main directory of a disk (in DOS) or a file system (in Unix). Subdirectories are hierarchically organized under the root directory. Good use of a floppy disk often involves having only directories in the root directory and all files attached to subdirectories. rotation (of the nodes of an AVL tree) - A manipulation of the nodes of an AVL tree which attempts to improve the height-balance of the tree. The child which is on the high side is brought up a level, and the node which was its parent becomes its child on the appropriate side, together with attaching one of the subtrees of the node which was brought up a level to the node which was pushed down a level. router - a device that connects 2 LANs running different protocols (see bridge). RSD - Requirements Specification Document RTL - run-time library, a VMS collection of modules which provide run-time services and can be linked into any program which provides the required data types. See $ HELP RTL run - to give a command to execute a program. The VMS command is "run". The default extension for the identifier following a run command in VMS is .EXE. As a noun, "run" refers to an execution of a program. scaffolding - software system components that facilitate system construction and testing, but are not intended to be part of the final product. Examples are 'stubs' in code and miniature files. This term seems to have originated with Boehm (cf. Software Engineering Economics, 1981.) SCCS - Source Code Control System. A Unix-based configuration management tool. It is available at IUP on the DecStations in Stright 219. science - a paradigm for discovering the laws of nature. The current convention consists of forming a hypothesis by observing nature, making a prediction based on the hypothesis, collecting data relevant to the hypothesis and the prediction, and analyzing the data for confirmation or denial of the hypothesis. (Denning, CACM, October 1991, Vol. 34 No. 10, p. 130.) SCM - software configuration management. (see configuration management) scope - the realm of a declared meaning for a program identifier. In PASCAL, the scope of an identifier is the program block in which an identifier is declared, excluding any sub-block in which the same identifier is declared again. In Cobol, the scope of a verb which may have embedded statements may be ended by a scope terminator that begins with END-. See also "scope terminator". scope terminator - a syntax for terminating the scope of a block or other chunk of code. For example: >> in C, {block} >> in Pascal, BEGIN {block} END >> in Cobol, verb {statements with no period} END-verb scroll - the process in which text appears at one edge of a screen as other text disappears off the other edge. Scrolling can be thought of as moving a window over a block of text that is bigger than the window. The terms scrolling up or scrolling left correspond to moving the window in those directions. SCSI - an acronym for small computer system interface. A SCSI (scuzzy) port permits high-speed communication between the computer and devices, e.g., a CD-ROM. A SCSI connector is a 25-pin plug. SCSI connections may be "daisy-chained" to allow multiple SCSI connections to a single port, but there may be a limit on how long the total wiring may extend. SDE - software development environment SDM - software design methodology SE - Software Engineering (see software engineering) search argument - see table argument search function - see search function search tree - a tree data structure for organizing the elements of a linearly ordered set to facilitate direct access to an individual data element. For example, a binary search tree is organized so that the labels for the nodes in the left subtree of any node are all less than the labels for the nodes in the right subtree. (related topics: multiway search tree, B-tree, B+ tree, avl tree) secret key encryption - the traditional scheme for secret codes where only one key, known to both the sender and receiver of a message, is used to encrypt and decrypt the message. (Also know as symmetric or private key encryption.) sector - a pie-shaped portion of the recording surface of a magnetic disk. Each track (concentric ring) contains parts of each sector into which a recording surface is divided by a disk "format" process. seek - the time required to move the read/write heads to a desired cylinder on a moveable head disk drive. See also settling time, latency due to rotational delay. segment - (1) a set of graphic output primitives that are arranged and labeled as a group. (2) a portion of a program which has its memory requirements managed by the operating system so that the user can think of it as virtually a physical unit. That is, it is loaded and swapped out as a unit. segmentation - organizing the memory requirements of a large computer program into programmer-controlled chunks. With more severe memory constraints and less sophisticated memory managers in operating systems, this used to be a major concern of application programmers. The function is becoming increasingly transparent to system users. (JAC, 1992) SEI - Software Engineering Institute select - in Cobol, a clause that begins each sentence in the FILE-CONTROL paragraph of the INPUT-OUTPUT SECTION. The purpose of SELECT sentences is to list the internal file names used in the program and provide a mechanism to connect them to files or devices in the computing environment. See $ help cobol environment file selection sort - a sorting algorithm in which the key of the largest (or smallest) unsorted record is identified, followed by an action which places it at its proper place in the sorted records. (n-1) repeated applications of this algorithm will sort a collection of n records. selector channel - a channel which can only manage data flow between main memory and a single device at one time. See "multiplexor channel" and "channel". semantic knowledge - knowledge of concepts, such as the notion of a linked list. Semantic knowledge is acquired through experience and learning; it is retained in a manner that is independent of the representation in which it was experienced. See also syntactic knowledge. (Sommerville, Software Engineering, fourth edition, p. 27) semaphore - an integer variable that can be accessed only through two standard operations : (1) WHILE s <= 0 DO skip; s := s-1; (2) s := s+1; Modifications to the value of a semaphore must execute atomically, in the sense that no two processes may simultaneously execute either of the above operations. A semaphore can be used to deal with the situation in which more than one concurrent process has a critical section of code. (Peterson and Silberschatz, 1983) sensitivity analysis - changing numbers in a spreadsheet to see what effect the changes have on other cells in the spreadsheet or other spreadsheets. See what-if analysis. sequence set - the set of data blocks in a B+-tree structure in which blocks are linked together and records can be accessed sequentially. sequential file organization - see sequential organization. sequential organization - (1) for a file, the organization of a file so that records may only be accessed one after another. (see random, relative, and keyed organization) (2) for a table, the organization of a table so that table entries are ordered by the collating sequence of a table argument. serial lookup - a table lookup procedure which involves checking table entries one after another. service bureau - an organization that provides data processing services for other individuals or organizations. settling time - the time it takes a moveable read/write head to settle onto a rotating disk. See also latency due to rotational delay and seek time. Note that "start/top time" is a similar concept on a disk drive with floating/flying heads. sgml - Standard Generalized Markup Language. shared device - a device which may have more than one program using it at the same time. For example, a disk on a file server for a network may have several programs attempting to transfer data at the same time. This event is called "contention" for the disk. The antithesis of a shared device is a printer, which must completely serve the output needs of one program before it can begin printing the output of another program. shared environment - in the context of groupware, the things which people who are working together have in common. With regard to technology, this could include data, software, an interface to software, system privileges, system view, e-mail, an audio and video link, and access to a network. A WYSIWIS interface is an example of a shared environment, while coordinator privileges are an example of an environment which is not shared equally with all dialogue participants. shareware - software that is distributed on a trial basis for the cost of distributing it. If a user tries it and decides to keep using it, the developer asks that they register their copy for a small fee. This is basically a "try-for-a-while-before-you-buy" marketing arrangement. It is also called "user-supported software". See also public domain and freeware. shear - in Computer Graphics, an affine transformation in which any combination of the following distortions occur: an object is stretched horizontally by an amount proportional to the vertical distance from the x-axis; an object is stretched vertically by an amount proportional to the horizontal distance from the y-axis; an object is stretched in the z-direction by an amount proportional to the distance from the xy-plane. In terms of a 2D transformation matrix, T = [1 a] where ab is nonzero. An example of a shear would be italic [b 1] letters formed where a ~ .3 and b is zero. shell - a processor for Unix system commands. The name is taken from the model of Unix as an onion skin with a kernel of operating system programs surrounded by a shell and layers of application programs. Popular shells include the Bourne shell, the Joy C shell, the Korn shell, and various GUI's. show - a VMS command that displays the current status of a process, the system, or devices in the system. In VMS, see $ help show or, in mail, MAIL> help set-show. See also show quota. show quota - Shows the disk space allotted to a VMS user and how much has been used. To check the disk space left in ldir$colib, first set def ldir$colib, then $ show quota/user=xx$compsci side effect - in the invocation of a subprogram, modifications to arguments. In general, a side effect is any change other than the effect that is specifically intended for an action. SIG - special interest group. Professional societies often include SIGs on special topics. For example, see SIGCSE. SIGCSE - the special interest group on computer science education within the ACM. They publish a quarterly bulletin and hold an annual symposium on computer science education at the annual ACM computer science conference (CSC). SIGGRAPH - the ACM Special Interest Group on Computer Graphics. (see also NCGA) SIGIR - the ACM Special Interest Group on Information Retrieval. sign bit - A single bit in the representation of a numeric value that represents is sign (positive or negative). See twos complement for a contrasting way to represent the sign of a numeric value. sign test - in Cobol, a test for positive, negative or zero. SIMD - Single Instruction and Multiple Data-stream capability for parallel processing in a computer architecture. The Connection Machine 2 is a SIMD machine because it has the capability to broadcast different data sets to its many small processors and then broadcast a single instruction to each of the processors for them to work on their different data in parallel. This is an extremely fine-grained form of parallelism, but it has immediate applicability to array processing. Simpsons - (####) (#######) (#########) (#########) (#########) (#########) (#########) (#########) (########) _____ (#########) / \ (#########) |\/\/\/| /\ /\ /\ /\ \/\/ | (#########) | | | V \/ \---. .----/ \----. | (o)(o) (o)(o)(##) | | \_ / \ / C .---_) ,_C (##) | (o)(o) (o)(o) <__. .--\ (o)(o) /__. | |.___| /____, (##) C _) _C / \ () / | \__/ \ (#) | ,___| /____, ) \ > (C_) < /_____\ | | | / \ /----' /___\____/___\ /_____/ \ OOOOOO /____\ ooooo /| |\ / \ / \ / \ / \ / \ HP Homer HP Marge HP Bart HP Lisa HP Maggie Don't have a cow, man! |\/\/\/| | | | | | (o)(o) C _) | ,___| | / /____\ / \ (Submitted by Tin-Yaw Mak, Christmas 1991) single-statement function - see statement function SISD - Single Instruction and Single Data-stream capability for processing in a computer architecture. The VAX at IUP is an example of a SISD computer, although limited vectorization is possible, which would make it a SIMD architecture. SLIP - Serial Line Internet Protocol, which allows a computer to use TCP/IP (Internet) protocol, with a standard telephone line and a high-speed modem. SMALLTALK - the original object-oriented programming language. Smalltalk has its roots in LISP at MIT. The earliest version was developed by Alan Kay in 1972 on the "Dynabook" project. (See Prof. Cunningham for more details.) SMTP - Simple Mail Transfer Protocol SNA - System Network Architecture (IBM) sociology - the systematic study of the development, structure and function of human groups conceived as processes of interaction or as organized patterns of collective behavior. (Webster's 7th) Sociology applies to the study of and planning for the impact of information technology on how people live together. See also ethnology. software - computer programs, together with all the associated documentation which is used to develop, use, or maintain those programs. Computer programs are defined to be human authored specifications which provide direction or control to a computer system (which includes all levels of programming languages and executable specifications). Software is thus a system which provides direction and control to a computer system, together with records that provide direction and understanding to human developers and users. Note that software is not an end in itself: it functions as a subsystem to an information system (or possibly a control system). software configuration management (SCM) - see configuration management. software design - deciding how the functional requirements of an application will be implemented in software (and hardware). software development environment (SDE) - a set of techniques to assist the developer(s) of a software system, supported by some (possibly automated) tools, along with an organizational structure to manage the process of software production. (Wassermann, 1981) The SEI generically defines a "computing environment" to be the collection of hardware, software, standards, policies, people, and procedures which members of technical computing projects use to pursue project objectives. software development methodology (SDM) - a process for software development. Typical features include a sequenced set of steps which combine management procedures, technical methods, and automated support in a disciplined approach to the task of software development. (Wassermann, 1981) software engineering - (1) the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. IEEE Std 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology. (2) the practical application of scientific knowledge in the design, construction and maintenance of computer software (Boehm, 1976) that is fit for use, on-time, and within budget (Cross, 1992). (3) Jensen and Tonies (1979) emphasize the importance of performing these activities economically and producing reliable software products. Notes: At this time, software engineering is more reasonably viewed as a goal rather than as an accomplished state of practical software development practice, due in large part to the inadequate knowledge base. (see engineering) software life cycle - see life cycle software maintenance - the process of modifying existing operational software while leaving its primary functions intact. Software repair maintenance is distinguished from software modification (AKA update maintenance) in the fact that the functional specifications remain intact. software metrics - measurements derived from the requirements, design, code, or documentation of computer software. The motivation behind software metrics is the ability to predict product behavior from measures taken on a software product or its component parts. A typical goal for a software metric might be a prediction criteria for the time to develop a software product or for the number (and significance) of faults that a component is likely to possess. software piracy - unauthorized or illegal copying of software. software reliability - the probability that deviation from the required output by more than a specified tolerance in a specified environment does not occur during a specified exposure period. It is expressed as P(n) = Prob of no failures over n runs, or P(t) = Prob of no failure over interval 0 to t. (cf. reliability) software requirements engineering - the discipline for developing a complete, consistent, unambiguous statement of needs for a software system (Boehm, 1976). Rzepka and Ohno (1985) point to a need for an iterative process of analyzing the problem, documenting the resulting requirements insights, and checking the accuracy of the understanding so gained. Requirements are precise statements of need, including the externally visible behavior, as well as constraints such as performance, reliability, safety and cost. The collection of requirements represents both a statement of the problem to be solved and a model of what functionality is needed. Requirements documents must include supporting data and analysis from the point of view of the user domain. They must be understandable by the customer, the system designer and representative users, which limits the kinds of formal representation methodologies that are feasible. software tool - software that aids in the creation and maintenance of software. Its goals include the elimination of mundane or error-prone tasks in order to reduce cost and gain reliability. Examples include formatters, screen editors, test generators, test coverage analyzers, configuration managements, private libraries, cross reference listings, application authoring systems, very high level languages, interactive debuggers, syntax-directed editors (Zelkowitz, 1984), documentation support, database and data dictionary support and automatic program generators. (cf. Hanson and Rosinski, p. 189) software utility - software that aids in the use of software and hardware. Examples include file and program conversion, data communication software, and integrated software packages like LOTUS and JAZZ. sort - rearrange records (or other objects) into a specified collating sequence according to a specified attribute or set of attributes. For example, student records could be sorted by student-ids, which are unique, or by name, which may not be unique, and by student-id within name. There are many algorithms for sorting and many context-sensitivities. source code - a computer program as it is written by a programmer, before compilation. spanned data storage - data storage in which a record is stored in two or more physical storage units such as blocks, VMS clusters, or IBM control intervals. SPARC - Scalable Processor Architecture; a licensable RISC implementation developed by SUN. spawn - a VMS command which creates a subprocess of the current process similar to a fresh login. You must "log"out to return to the first process. See $ help spawn specification - a statement of the requirements of an object which is precise enough to serve as a contract between a client for the object and a developer of the object. A specification defines WHAT is to be done, while a design is a statement of HOW it is to be done. A design specification for a system or program is a specification of what the parts are and how they relate to each other. Specifications are derived from requirements and form the basis for design. For example, a system requirement may be to respond to user phone queries within a reasonable time; a specification may be to respond to 90% of user queries within 2 seconds when no more than 20 users are interacting with the system; a design decision may state that there will be a message to the user every 2 seconds that the system works on the response without completing it. Note: In the cleanroom terminology of Cobb and Mills, a user's reference manual is considered an external specification, while an internal specification completely states the mathematical relation for which the program implements a rule and by which the program can be verified. speedup - time required on a conventional machine divided by time required on a vector machine (or an analogous statement in another context). (Doug Rutledge, 1993) spiral model - see Boehm's sprial model spooling (Simultaneous Peripheral Operation Online) - (1) (ISO) The use of auxiliary storage as a buffer storage to reduce processing delays when transferring data between peripheral equipment and the processors of a computer. (2) A term which is synonymous with concurrent peripheral operations. spreadsheet - a computer-based worksheet for recording numeric data with labels and formulas that express relationships between the numeric values. Spreadsheet software originated in the late 1970's with an idea of helping accountants do what-if analysis of worksheet data and business offices deal with tables of numeric data. The original product was Visicalc. Current spreadsheet software includes capability for charting, linking with other worksheets, computing with functions, programming macros, and database capabilities such as sorting and searching. sprite - an animated graphic that is programmed to a certain "depth" that implies whether it is visible, covered, or partially covered by something else in an image. Sprites are familiar to many K-12 computing educators as part of Apple II Logo and graphics since the early 1980's. SQA - Software Quality Assurance SQL - structured query language stable sort - a sort in which the ordering of input records which have identical sort keys does not change in the output file. stack - a list data structure in which insertions and deletions may only be made at the beginning. A stack is a last-in first-out (LIFO) data structure. (see queue) star - (1) jargon for "asterisk" (because it only has one syllable) (2) a network topology with a central node through which all messages must pass. start/stop time - the time it takes the read/write heads on a disk drive with moveable heads to start and stop. See also seek time. statement - a syntactic unit of a program that is analogous to a sentence. In Fortran, for example, statements are classified as executable, specification, comments, or compiler-directing. Executable statements are identified by their "verb". For more detail on the statements of Fortran and constraints on the order in which they can be coded see the vms help for "fortran statement". statement function - a function that is declared as a single statement in the program which invokes it. Basic and Fortran have statement functions. (also known as a "single-statement function") static method - a method that is called as compiled, without run-time dependencies which determine its character. statistical testing - a testing strategy that focuses on typical usage patterns so that a statement can be made about how likely a system is to function without error when it is used according to what it is designed for. Risk-based testing and clear-box testing are alternative strategies. stochastic process - a process that produces random events, as contrasted to events that are determined by context or input. stress test - a test designed to determine system performance under pressure. For example, many users, many interrupts to an operating system, using exceptional amounts of memory, putting many things into a dynamic (or static) data structure, sensitivity to small changes in the data for a mathematical computation, many disk accesses, ... string - a sequence of data items of a certain type. Common examples include "character string", for example "r2d2", and bit string, for example B'10100'. strong AI - the claim that if a computing device can act in a manner that is indistinguishable from that behavior of a human acting intelligently, then the computing device is literally a human mind. If strong AI is possible, then the program may be to its host computer system as a mind is to its brain. See Turing test. structure chart - a graphic representation of the hierarchical calling structure of a main program and its subprograms, together with the data which they share and whether each data element is input or output relative to the subprogram. structured design - a technique for software design, frist documented by Yourdon and Constantine [1979]. The goal of the method is to respond to the fact that people are limited in their ability to manage complexity. Therefore parts are kept small and separately solvable (and correctable). This sounds almost like object-oriented thinking. It actually works out to involve a context diagram, data flow diagrams, and structure charts. structured programming - an organization for programming activities that lessens the negative effects of problem complexity. stub - code for a subprogram which is used to test the program which invokes it and/or the data interface between the two. stubs - see stub submit - a VMS command that directs the VMS system to "batch" a file of DCL commands. Differences form "interactive" execution of a DCL command file include: >> the user can do other things while the commands in the command file are being executed, including logging off. >> batch makes more efficient use of system resources than interactive execution of commands. >> additional qualifiers are available. See also $help submit /printer, /noprinter, and /keep. subprogram - a program that is invoked by another program. subroutine - a subprogram that can return any number of results, or zero results. Results are returned through modifications to arguments. subscript - an occurrence number which designates a particular variable in an array. For example, in the expression x(1), 1 is a subscript. subscripted variable - an identifier which includes a subscript. For example, x(1). supercomputer - a computer that has a potential computing speed comparable to the fastest current technology. Supercomputer speeds are attained by reducing cycle time, reducing cycles per instruction, reducing the number of instructions to do a computing task, vectorization, and parallelization. Time Magazine describes supercomputers as the most powerful number crunchers currently available. (John Cross, November 1991) surrogate - in information filtering, a representation for the meaning of text in a form more amenable to processing by computer. (Dave Science, 1993) In general, something appointed to act in place of something else. suspense file - a file of transactions that have been rejected by a batch validation program. Synonym: abeyance file. SVR4 - Unix System V Release 4, the accepted standard Unix in 1991. switch - a binary-value indicator or control device (i.e., an on/off electrical device or something that can be set to steer trains onto either of two tracks). In computing, a switch is either a boolean/logical variable (Fortran), a condition-name (Cobol), a bit-field (C), or some sort of flag. See also "flag". syllabus - at IUP, a description for a course including course objectives, grading policy, instructor name and availability, texts and other materials, and a detailed course plan. symbol - a representation for something. For example, * may be a symbol for multiplication or wildcarding. A symbol which can have more than one meaning in a given context is called an overloaded symbol. synchronous - coordinated with respect to time; in the jargon of CSCW, synchronous group activities must occur at the time, while asynchronous activities may occur at differenct times. synergism - what happens when the whole is greater than the sum of its parts; what makes a system different from a collection of interacting components; what we hope happens with good teamwork. synergy - see synergism syntactic knowledge - detailed knowledge of how to represent something, such as knowledge of a language. See also semantic knowledge. (Sommerville, Software Engineering Fourth Edition, p. 27) syntax - rules for how tokens of a language may be formed and how they may be arranged into compilable expressions. syntax-directed definition - a generalization of a context-free grammar in which each grammar symbol has an associated set of attributes, partitioned into two subsets called the synthesized and inherited attributes of that grammar symbol. (Aho, Sethi, & Ullman, 1986, p. 280) synthesis - the composition of two or more things to make a whole with new properties. In Higher education, "synthesis" is a higher-level cognitive activity that contrasts sharply with the "fact acquisition" that must precede it. At IUP, students are required to take a synthesis course during their senior year. The point of this course is to have experience in a multidisciplinary, group approach to problems or issues. "Analysis" is the opposite of synthesis. See also "Bloom's taxonomy" in the glossary and LS (Liberal Studies) courses in the course schedule. system - a set of parts, each with a specific purpose, that work together to accomplish a goal. For example, a computer system may be composed of a CPU, I/O devices, memory, and connectors. system analysis - the following activities conducted with system objectives in mind. Note that system analysis must be concerned with ALL system components, not just those that are computer-related. (Generally based on Pressman (1992), p. 146.) (1) identify the customer (client) need (both present and future) (2) evaluate the feasibility of different responses (3) perform economic and technical analyses (4) allocate functions to system components: hardware, software, people, procedures, data, connectivity (5) establish cost and schedule constraints for system development (6) create a system definition that forms the foundation for subsequent system development work. system analyst - a person who designs information systems based on the requirements of end users. See also system analysis, end user, information system. system ease of use - a system which is easy to use provides features and capabilities which: 1) Minimize distractions from the task at hand. 2) Do not require system specific skill and expertise to use efficiently. 3) Reduce user effort (e.g. defaults, model of individual user). 4) Make complex or difficult tasks easy to perform (e.g. the use of procedural hierarchy and modularity in a context sensitive manner). system learnability - a system is easy to learn when: 1) It has an easily understood, but comprehensive structure. 2) It does not require training sessions. 3) It allows learning while being productively used. 4) It has a simple, consistent model which encourages metaphorical use of general knowledge and experience. 5) It allows previous learning to be easily retained. system model - a scaled-down representation of a system which allows the user of the model to visualize the structure and/or behavior of the system from a particular point of view. The model "scales down" the actual system by abstracting out details that are not relevant for the particular purpose of a particular model. system programming - programming activities related to system software, i.e., design, development, quality assurance, installation, support, and maintenance. System programming may require especially difficult testing, bit-level knowledge and manipulation, concern for specific hardware detail, and specialized software tools. See system software. system software - computer programs that facilitate the use of system resources by application programs. Common examples are operating systems, compilers, linkers, window managers, utility programs, telecommunications software, and device drivers. syzygy - the event that the planets are in alignment, and thus all pulling together. In group dynamics, syzygy is the event that every member of the group is pulling toward the goal at the same time. table - in computing jargon, a synonym for an array. More generally, the term "table" connotes a multidimensional data set similar to what spreadsheets manage. table argument - the field by which table entries are looked up. For example, a table of month abbreviations and complete month names might use an abbreviation or the number of a month as a table argument. (see table function) table entry - the data referenced by a single occurrence or index value in a table. (see table argument and table function) table function - the data which a table argument may be used to look up. (synonym: search argument) table organization - the sequence and structure of entries in a table; the options for table access provided by the sequence and structure of its entries. (see chronological order, reverse chronological order, sequential organization, usage-frequency organization, positional organization, parallel arrays) tar - the Unix tape archive utility. Unix also has a separate compress and uncompress utility. A Unix file with the extension ~.tar.Z is both tarred and compressed. At IUP, we can uncompress and untar files conveniently on avocet.ma.iup.edu (Stright 219). taxonomy - a classification system. For example, an orderly classification system for plants or animals according to their natural relationships. TCP/IP - transmission-control protocol / Internet protocol teaching portfolio - "A teaching portfolio is a summary of one's major teaching accomplishments and strengths, that is, a way to display reflective samples of one's 'best work'." (Ray Shackelford Ball State University. Contact the IUP Teaching Excellence Center.) team - a group of people working toward a common goal, each subordinating personal prominence to the success of the group. technology - (1) the means employed to provide objects for the sustenance and comfort of humans. (Webster) (2) the use of tools. (JAC) telecenter - an office or group of offices to which employees can go instead of commuting to a main office. A telecenter is a middle road between telecommuting and conventional commuting. (see Filipczak, p. 69 in Computers in Society reprints) telecommunication - (1) data transmission between a computing system and remotely located devices via a unit that performs the necessary format conversion and controls the rate of transmission. (2) communication over a distance, for example, by telephone. telecommuting - working at a sight remote from a place of business using some form of telecommunication. This is the ultimate in "flextime", but it must be planned and managed very carefully or it can be an unhappy failure for both employee and employer. teleconference - a human conference in which the participants are dispersed, but they are supported by telecommunications. A multi-party phone call qualifies as a teleconference, but videolinks among the participants are a more elegant form. Teleconferences avoid the problems of travel to conferences and suggest opportunities for distance learning. See also computer conference and bbs. telefax - the linking of photocopying machines for the transmittal of black and white images. telephony - transmission of speech or other sounds. teletex - the linking of word and text processors via the public telephone network. In essence, a combination of an automatic text editing device with high-speed telex equipment (cf. Electronic Publishing Review, first issue, 1981). teletext - systems using TV sets to display alphanumeric information received by broadcast signals (i.e., non-telephone). Such systems are one-way (i.e., non-interactive). (see also teletex) telnet - telnet help states that: TELNET is a program to allow users to connect their terminals to other hosts on a network as though the terminals were connected to hardwired terminal lines on those hosts. The simplest way to run TELNET is to enter the host name in response to TELNET's prompt. For example, typing "NIC.DDN.MIL" will connect you to the DDN Network Information Center, assuming your system can reach NIC.DDN.MIL via some network. Another example: to connect to the American Philosophical Association (APA), telnet atl.calstate.edu and login as apa. Another example, to get weather, telnet hermes.merit.edu, and ask for the um-weather host. template - a piece of code which is used over and over again. A generic template supports software reuse. For example, consider Ada templates or basic file processing algorithms expressed in a particular language. tera - a prefix which means roughly one trillion, or 2^40. (see note attached to kilo.) The amount of input data in the experiences of a human lifetime has been ballpark estimated at 1 terabyte, which by implication is a lower bound on the storage capacity of a human brain. terabyte - one trillion bytes. A published estimate of the bytes required to encode the experiences of a human lifetime is roughly one terabyte. terminal - an alphanumeric and/or graphics display and data entry device which depends on a separate computer for its operation. A terminal is said to be "intelligent" if it possesses and is using its own processing capabilities, separate from a computer whose processing capabilities it happens to be using. A terminal device which possesses processing capability but is not using for a work session with a separate computer is said to be functioning as a "dumb" terminal. terminal format - in Cobol, a format for source code that allows entries from column 1 through column 80. Area A is column 1 through 3. Area B is column 4 and beyond. Continuation (-), page eject (/), and comment (*) indicators must appear in column 1. The advantage of terminal format is that it allows full use of an 80-character wide display, more compact source code files, and easier entry and editing of the source. See ANSI format. ternary operator - an operator which produces one result from three arguments. For example, see the conditional operator of C. test plan - a plan for providing quality assurance by trying out something we want to build or use. An initial test plan should be developed before software (or something else) is built, bought, or decided on. A statistical testing strategy focuses on testing how the software will be used. Other testing strategies may focus on how a piece of software is most likely to fail or the most catastrophic failures (a risk-based strategy). As more about the software is known through design and development, additional testing may focus on the internal structure of the software. (see testing, statistical testing, risk-based testing, coverage testing, white box, clear box, black box) testing - NOT a simple concept! Consider usage (statistical) testing, coverage testing, unit testing, stress testing, thread tests, recovery tests, performance tests, user testing (especially in a lab setting), alpha and beta testing, ... See also "test plan". thermal transfer color printer - a type of color printer where digital image data control the temperature of tiny resistors in a thermal printhead to selectively melt spots of colored wax on the donor medium and transfer them to the underlying sheet, one primary color at a time. This process is repeated for each of the primary colors to complete the full color image. A survey of this type of color printer shows it to yield a relatively bright, waxy picture at an also relatively expensive price per print. (ref. IEEE Spectrum, July 1984, p. 35) thread test - a "thread" is a path through a set of copperating concurrent processes, as in an operating system. Thread testing is designing a combination of tests in a fashion analogous to coverage testing for programs. Paths (i.e., threads) are identified and tests designed to test system performance when a sequence of events causes the system to follow the thread. throughput - (ISO standard) a measure of the amount of work performed by a computer system over a given period of time, such as jobs per day. For example, the key to the success of the multiprogramming concept as a means of increasing system throughput is having a sufficient amount of processor time spent waiting for I/O to balance the added complexity and overhead. TINSTAAFL - an acronym for 'There Is No Such Thing As A Free Lunch". tlb - a VMS extension to file names which stands for "text library". a .tlb extension is normally used for the name of a library of source code. toggle - a switch with one actuator and two states. For example, the Caps Lock key on many keyboards changes state from off to on or from on to off every time you press the key. token - the vocabulary of a programming language. Tokens include things like identifiers, literal values, operators, and punctuators. tool - something which helps its user do work. See software tool. tools - see software tool top-down design - designing a system of programs by first deciding what subprograms a program will need and the data interface for each of the subprograms, then repeating the process for each of the subprograms until no more subprograms are needed. top-down testing - testing a piece of software by testing the main program with stubs for subprograms first, then finishing the code for the stubs (and inserting stubs for subprograms used by each level of subprogram as needed) and retesting. topology - in a communications network, the physical paths between nodes. (Eelwu Jeong, 1993) TP - transaction processing trackball - a cursor-positioning device that is similar to an upside-down mouse. A trackball is less demanding on desktop space and dangling wires, but it can be harder to get used to than a mouse. Note that a trackball is essentially a "no-button mouse" which implies that the button signals from a conventional mouse must be reassigned to the keyboard or another input source. tree - a data structure which imposes a hierarchical structure on a collection of data items; a finite set of one or more nodes such that there is a root and the remaining nodes are partitioned into n>=0 subtrees. tree height - the greatest number of nodes in a path from the root to a leaf. This is one plus the number of the highest level on which the tree has non-null nodes, where the root is on level zero. trie - a retrieval tree data structure in which the node structure is based on the radix of key values and searches through the tree are based on the keys as sequences of characters. The height of a trie works out to be a function of the length of the keys and shape of the trie is based on the number and distribution of key values. trigger condition - an external event that causes a program to change its behavior. (See "logic bomb") Trojan Horse - (1) a computer program that hides inside a useful program, hence the name "Trojan Horse". The term also applies to an apparently useful program that provides a trap door through whicfh an intruder can surreptitiously access a system. (2) a computer program which, in addition to performing the desired function, performs functions that compromise the security of the system it runs on. For example, by accessing unauthorized files to allow subsequent unauthorized system access. (Dave Science, 1993; similar to definition 1 but worded differently) trusted system - a system believed to enforce a given set of attributes to a stated degree of assurance. TTL - I dunno. Please let me know. tumor program - a program which is attached to another program and increases its size. Many computer viruses are detected by the fact that they increase the size of a program that they are attached to. TurboPascal - a Pascal compiler and programming environment that includes an editor, an interactive debugger, and facilities for file handling. Turing test - a criteria for artificial intelligence popular in the 1960's. The Turing test for artificial intelligence in its original form is that a conversation held with an artificial intelligence cannot be distuinguishable form a similar conversation held with an intelligent human. In general, the Turing test applies to any human behavior that humans feel requires intelligence. (See strong AI, artificial intelligence) turnkey system - a system which can be installed by metaphorically "turning a key". The basic concept of a turnkey system is "one size fits all" and very little customizing should be needed. tweening - the process of transforming one image into another by displaying p% of the points and attributes of the first image and (1-p)% of the second image, allowing p to range from 100% to 0%. twos complement - the ones complement plus one, which is the negative of the original binary number. Ultrix - a DEC Unix operating system. See also math functions. understandability - the extend to which a software system is comprehensible and predictable. When this measure is applied to source code or documentation, readability is included in its meaning. unfriendly - see user friendliness UNICOS - the Unix Cray operating system. unit testing - testing a mdoule individually, ensuring that it functions well by itself. See also integration testing or system testing and incremental testing. UNIX - the name of an operating system and its family of related utility programs. It was originally designed and implemented by Ken Thompson in 1969 at AT&T Bell Labs. Its original advantages were that it was multiuser, interactive, portable, and by 1975 it was available in source form to universities for a small fee. Its disadvantages are an arcane and unfriendly interface, multiple varieties rather than a single standard, and a lack of realtime capability. until loop - a "test at the bottom" loop which repeats until the control condition is true. An test at the bottom loop control structure must execute at least once because the control condition is at the end of the loop. For example, a Cobol PERFORM statement such as "PERFORM 100-read-and-process UNTIL EOF." is a test at the bottom loop, while "PERFORM 100-process-and-read UNTIL EOF." implies a "priming read" and a test at the top loop control structure. upload - to transfer a file from an interactive host to a computer system which is communicating with the host. URL - Uniform Resource Locator, the Web (See WWW) addressing system with syntax that lets objects be addressed using HTTP and other common network protocols, such as FTP, Gopher, and WAIS. usability - the usability of a software system is the extent to which it is reliable, efficient, portable and maintainable. usage-frequency organization - arranging table entries in a table that is searched by application programs in descending order of search frequency. That is, the most frequently sought items are listed first so that the system will spend less effort in looking for table functions. usage-testing - system testing based on expected usage. See also "statistical testing." user friendliness - a measure of "friendly" qualities that a system has for its users. Ease of use is the most readily stated friendly quality, but ease of learning and reliability are also very friendly. A friendly system is one which: 1) Is comfortable and encouraging (feedback, reliability, recoverability, predictability, leaves control with the user, short response times, not congeniality or humor). 2) Assists the user in progressing to his/her goals (e.g. helps, error trapping, allowance for interruptions and backtracking, model of individual user). 3) Avoids regression and loss of work. (cf. system learnability and system ease of use). user friendly - see user friendliness user interface - the manner in which a user and a piece of software interact. Common types of interfaces are command, menu, and graphic, in increasing ease of learning but decreasing ease of use for an experienced user. user testing laboratory - a place where a system can be tested by its intended users with observation or videorecording by the system developers. A videorecording of a user cursing an unhelpful or clumsy interface can be a lot more effective than questionnaires or other data that are collected when the user is not actually at the point of frustration and annoyance. user-friendly - see user friendliness. username - the identifying code which a system user enters at login time. users group - a group of users of a specific class of hardware (or software), with the goal of sharing and helping each other. utility - a program included as part of an operating system. Examples include copy, sort, and editors. You typically invoke a utility by giving a command at the operating system prompt, which makes it difficult for a user to distinguish a utility from an operating system command. uucp - Unix-to-unix copy program (and more). uucp is a system of programs, files, and hardware that provides networking capability among Unix programs. validation (of software) - establishing that a software product serves its intended purpose. vanilla framework foe a system - a loose-fitting, general-purpose conceptual framework for software development at higher levels than code. [See Harel, IEEE Computer, January 1992, p. 10.] variable - a data item whose value can change in the scope of its definition. VAX - virtual address extension; the common name for DEC "mainframe" computers. VAXstation - a product line of DEC workstations that run VMS. vector generation - the process of setting pixel values for the display of a line segment. vectorizing - the process of extracting lines, characters, and other geometric primitives from a raster image. (see Foley et al, second edition, p. 196) verification (of software) - establishing that a module of code agrees with its specification. version - a term that is used in configuration management for a numbered edition of a software system. Version numbers normally follow a decimal point and indicate a lesser collection of changes to the software than a "release". For example, Version 1.0 is the original release. Versions 1.0, 1.1, 1.11, 1.2, and 2.0 may exist. See also release. VGA - Video Graphics Array board that achieves 256 color displays on a microcomputer. VGA is superior to CGA and EGA, but watch out for "Super VGA" and XGA. vhll - very-high-level language for programming. A programming language in which individual statements may be thought of as being translated into many statements in a conventional HLL. For example, a 4GL. See HLL and 4GL. VHSIC - Very High-Speed Integrated Circuit vi - a text editor that is standard on all Unix systems. The name "vi" is derived from the phrase "visual editor." As a full-screen editor, it is extremely clumsy to anyone who is used to just about anything else. However, it is widely known and used because you can rely on being able to use it on any Unix system. The basic human factors principle applies: "You can get used to just about anything .. and even learn to like it!" (The above comments are the opinions of JAC, 9/92.) videophone - the addition of video to audio telephony. In late 1994, the cost of adding this capability to a workstation which includes a modem and adequate storage and computing (~8Meg 486) is ~$1,500. videotex - two-way interactive telephone based communication systems using TV sets to display alphanumeric information. (CCITT generic term for systems of this type.) viewdata - a generic term for two-way interactive telephone based systems using TV sets to display data. This term has been superseded by the more current term 'videotex'. virtual - effectively the real thing, as in virtual memory. virtual device - one that acts like something other than what it is. For example, a disk often serves as a "virtual printer" when output are "spooled" to it rather than being sent directly to a printer. See "spooling". virtual memory - usable main memory resources which are not actually present in a computer system, but are simulated by the operating system. The operating system may swap data between its auxiliary memory and its main memory, as the need arises in one of its processes. virtual method - a method which has references resolved at run-time. (See also polymorphism and static method.) virtual reality - an environment where the sensory data experienced by someone who interacts with the virtual reality is indistuinguishable from the real thing. Ideally, the concept is that of an artificial world where objects can be manipulated, the observer can move about, and all the sensory input from the artificial world are indistinguishable from whatever is being modeled. This definition and the concept are extensions of the Turing test for artificial intelligence. virus - a harmful computer program that invades a computer system by attaching itself to other commonly used programs. VisionQuest - a CSCW product of Collaborative Technologies Coporation (800) 856-MEET. visual programming - the development of a computer program by manipulating icons for program modules and the data links between them. The term visual programming occasionally refers to programming visual output. (see VPL) visualization - the use of images to explore a complex data set or communicate facts from the data set. The use of 3D color renderings of complex numeric data sets is typical, but some visualizations of nonnumeric data sets have been done. Typical scientific visualizations include molecular modeling, medical imaging, and models of the atmosphere and oceans. VISX - a language for computer vision or image processing which is based on Unix. VISX uses five different functions: pixel, image filter, feature processing, feature extraction, and image transformation. (Dani Mashaw, 1993) VLSI - Very Large System Integration VMS - virtual memory system, the VAX operating system. See DCL. voice mail - a centralized telephone system of answering machine and message passing functions for a group of people. For example, voice mail may allow you to broadcast messages to a distribution list or reread and edit a voice message before youe leave it for someone. volatility - The volatility of a file is the number of records added, deleted, or changed in a time period divided by the number of records in the file at the beginning of that time period. For example, the IUP registration data for Fall 1994 may contain 70,000 registrations, with a volatility of 1,000 changes per day during the month of August. volume - a recording medium that is mounted and dismounted as a unit. VPL - visual programming language; a visual method of communicating a program to a computer, usually involving icons, data links, and possibly slides, dials, and other means of communicating quantitative data. See visual programming. VR - Virtual Reality, a technique of exploring computer-based environments with multimedia interaction and some attempt to block sensory input from outside the virtual environment during the interaction. (see virtual reality) VSAM - an acronym for IBM's Virtual Storage Access Method. VSAM dates back to the midt to late 1970's. VSAM provides three types of file organizations: entry-sequenced data sets (ESDS, a form of sequential organization); key-sequenced data sets (KSDS, a form of indexed organization), and relative-record data sets (RRDS, direct files). wait state - a state in which a computer blocks other signals until it completes an operation. For example, the "wait mode" in Lotus 1-2-3 occurs when a disk I-O operation is going on. The "Wait" light on a keyboard indicates that keyboard signals are blocked until the ligth goes off. wall-clock time - the elapsed time for a process, as compared to CPU time, which is what computer charges are often based on. WAN - Wide Area Network; used for connecting remote (non-local) devices, typically via phone lines. warm boot - booting a computer while it is running (without turning the power off and on). MS-DOS computers warm boot when the keys are held down simultaneously. (Users press and hold the keys one at a time until all three are down, then release all three.) waterfall model - an early, simplistic model of a software life cycle, attributed to Royce (1970). It consists of distinct phases which follow in sequence, but which may require iteration. The phases vary, but typically they may consist of: analysis and definition, followed by design, implementation and unit testing, integration and system testing, then operation and maintenance. weak AI - the claim that AI research provides useful models of human intelligence, but not actual artificial minds. while loop - a "test at the top" loop that executes until its condition is false. See until loop. white box - a view of a program module which includes its implementation (i.e., its code). "Clear box" is a better metaphor, but white box is the conventional term because it pairs well with the term "black box". See also black box. whois - part of the Network Information Center for looking up people on the nic.ddn.mil network. Try "$ help who" on the academic vax, or simply "$ whois cross". widow - in printed documents, the first line of a paragraph that is printed as the last line of a page. wildcard - a symbol that stands for zero or more characters in a search for an identifier. For example, in DOS filename arguments, a * wildcard stands for any set of characters, as in copy a:\*.*, while a ? wildcard stands for exactly one character. WIMP - an acronym for "Windows, Icons, Mice, and Pull-down menus" in a GUI. window - (1) an outlined area of a video display screen that looks like a window and allows its user to use a specific software tool separate from what is going on in other windows. Windows are sometimes "tiled", that is arranged in non-overlapping areas of the display, but with greater capabilities in technology most windows are now "overlapped". The most popular windows product in 1992 is Microsoft's Windows 3.0. The Macintosh operating system deserves credit as the application that popularized a visual operating system with windows. (2) the viewable portion of a spreadsheet (or document, or database) Word Perfect - (1) A popular word processing software package. (Version 5.1 in 1992) (2) A vendor of computer software which is responsible for WordPerfect and other products. word processing - the use of computer technology to create, reuse, and manage verbal communications. Word processing software includes at least a text editor and formatter, together with capabilities for managing files and printing documents. Additional capabilities include importing and exporting text, WYSIWIG display, color, and importing charts, graphs, and images. The conventional meaning of the term extends as far as voice mail and multimedia communications which go beyond written communications with graphics. See also desktop publishing. wordwrap - a text entry feature which causes words which overflow the end of a line to be automatically moved to the beginning of a new line. work cell - A cell in a spreadsheet which is used for intermediate computations but is not an integral part of what the spreadsheet is designed to show its users. It is often used for "what-if" analyses. See O'Leary p. SS 80. workgroup - two or more people who share project involvement and/or resources. (e.g., sharing a file server in a cluster of workstations) See also group. workgroup computing - Mcrosoft definition [February 1994]: open, flexible software solutions that build on existing, industry standard technology to help people work together more effectively. Workgroup computing and groupware might be distinguished by a greater emphasis on "synchronous group activities," such as EMS, in groupware. However, the terms are practically synonymous. See also groupware and EMS. WORKING-STORAGE SECTION - in Cobol, the section of the DATA DIVISION in which program data and conditions on those data are identified, defined, and possibly initialized. workstation - a user terminal which has local processing capability. More specifically, an intelligent node in a local network, with the capability of providing local processing to a single user as its normal mode of operation, but which is also capable of functioning as a standalone alphanumeric and graphics system in terms of both a network which includes a centralized capability for file serving and possibly other services to network users. Currently, workstations are designed with large (no less than 16") bit-mapped displays for displaying graphics and overlaid windows. worm - (1) an acronym for Write Once Read Many times, a type of optical disk whose surface can be written on only once, but read indefinitely. (2) a computer program that invades a computer system from an outside source, such as an electronic mail network or a bulletin board system. A worm program is self-contained and self-replicates until it clogs the host system with many copies of itself. wp - an acronym for word processing (fortunately for WordPerfect, wp can also be a reminder of WordPerfect) wpg - a filename extension which indicates a WordPerfect graphic. WWW - World Wide Web, also known as the Web and W3, is a GUI interface for finding things on the Internet. WWW has similar goals to "gophers," with the added feature of hypertext links. WWW generally requires a little more hardware than text-based gophers. Refer to the August 1994 issue of the Communication of the ACM for a special article on WWW. WYSIWYG - an acronym for "What You See Is What You Get" XGA - Extended Graphics Array board which can achieve up to 65,536 colors with special equipment. It has appeared in some of the IBM PS/2 series computers and has a resolution of up to 1024 by 768 pixels. The evolution to XGA has been CGA, EGA, VGA, Super VGA, then XGA. zeitgeist - the intellectual, moral, and cultural milieu of the times. zone punches - 12,11 and 0 on Hollerith punched cards, used in combination with a numeric digit punch to represent an alphabetic character. zooming effects - in computer graphics, the visual effects which are produced by mapping successively smaller windows onto a viewport. zot - a term for an underscore character (_).