texes 241 ALL
Graphical User Interface (GUI)
A newer style of program interface (as opposed to command line) that features dialog boxes, clicking features such as buttons, boxes, and radial buttons, commonly seen in most modern programs.
Full Tree Traversal
A non-executable, visual approach to help determine the pre-order, in-order, or post-order traversal of a tree, as can be seen in the Week 4 "Terms to Know".
Social Engineering
A non-technical method of intrusion that relies on human interaction and often involves tricking people into breaking normal security procedures.
Big O Notation
A notation system used to classify algorithms (see algorithm analysis). The primary notation levels are: O(1), O(log N), O(N), O(N log N), and O(N^2).
Backus Naur Notation
A notation technique for context-free grammars, often used to describe the syntax of languages used in computing.
Printer
A peripheral device in a computer system responsible for producing a printed output.
External Node
A potential node in a tree, where currently either the left or right child pointer of a node is pointing to null, but potentially could reference another node. See internal node.
While Loop
A pretest loop in programming that checks a boolean condition before performing the action of the loop, and continues iterating while the condition is true.
Pascal
A procedural programming language devised and published by Niklaus Wirth in 1970.
Algorithm
A procedure or formula for solving a problem and finding an exact example, as opposed to a heuristic.
Method
A process in Java that can be either a procedure (void method) that performs an action of some sort, or a function (return method) that returns a calculated value.
Class Method
A process in a class definition that acts on the data that belongs to that class.
Loop
A process in programming that repeats a process a certain number of times.
Pop
A process used in stack and queue processing where a copy of the top or front value is acquired, and then removed from the stack or queue.
Peek
A process used in stack and queue processing where a copy of the top or front value is acquired, without removing that item.
Push
A process used in stack and queue processing where a new value is inserted onto the top of the stack OR into the back of the queue.
Robust
A process, system, organization, etc. able to withstand or overcome adverse conditions.
Rootkit
A program (or set of programs) used to give unfettered administrative access to a machine. These programs attempt to hide the fact that a system's security has been compromised and usually provide a backdoor.
Incremental Development
A program design methodology that allows the system developer to define the system software in convenient stages.
Unit Testing
A program is made up of many parts, each of which performs a crucial task. Unit testing is the process of testing each individual process to make sure the task it is performing is working in all possible conditions, so that when it is incorporated into the larger process, its function is flawless.
Linear Data Structure
A programming data structure that occupies contiguous memory, such as an array of values.
Object
A programming entity that encapsulates data and related methods.
C++
A programming language also developed at AT&T Bell Labs in the late 70s by Bjarne Stroustrup, derived from C, with added object oriented features.
Programming Language
A programming language is a formal constructed language designed to communicate instructions to a computer.
High Level Language
A programming language using words and commands easy for humans to understand and organize, but which must be translated into a low-level language like machine language or object code for the computer to understand and execute.
Procedure
A programming module that performs a task of some sort, like outputting the contents of a data structure, or performing a sort on an array.
Call (method, procedure, function)
A programming statement used to execute a previously defined method, function, or procedure, often sending outside information into the process using parameters
Break
A programming term that ends the process in a control structure, such as a loop or switch case statement.
Non-Linear Recursion
A recursive process that includes multiple recursive calls inside of a method, such as tree traversal methods that first traverse one branch of the tree from that node, and then the other branch.
String
A row of characters combined together to make a word, sentence, or other text based value.
Flash Drive
A secondary storage device that plugs into the USB port of a computer.
Local Area Network (LAN)
A section of network, local to a room, house, building, small campus, or even a metropolitan area (MAN), connected by some LAN protocol, most commonly Ethernet, either via wired connections, fiber, or wireless.
System Software
A set of files that contains the software that controls all of the functions of the computers, such as Windows, Linus, Unix, or Mac.
Expression
A set of operands and operations that produce a mathematics based or logic based result. Concatenation, or joining of strings, is also considered an expression.
Bubble Sort
A simple (and relatively slow) sorting algorithm that repeatedly loops through a list of values, comparing adjacent values and swapping them if they are in the wrong order.
Error
A situation in a program that indicates a flaw in the source code, either syntax-based (punctuation or grammar), run-time (occurs during execution, such as file not found, or division by zero), or logic based where the program runs but does not produce the desired results.
Cache
A small area of fast memory located on the mother board of a computer,used by the central processing unit.
Browser
A software application used to explore web pages on the World Wide Web.
Application
A software program that performs a particular task, such as word processing, spreadsheet, etc.
Search Engine
A software system that is designed to search for information on the World Wide Web.
Selection Sort
A sorting routine that uses a nested loop process to systematically select the best value among the unsorted elements of the array for the next position in the array, starting with position zero all the way to the end.
Conditional Statement
A statement in programming that makes a decision using if or if-else situations by evaluating a boolean condition.
Procedure Box
A symbol used in flowcharting that represents a process or event that occurs within the flow of the program.
World Wide Web (WWW)
A system of Internet servers that support specially formatted documents. The documents are formatted in a markup language called HTML.
Phishing
A tactic used by internet attackers using fake emails or websites, appearing to come from a known and trustworthy source, in an attempt to gather personal or financial information from the recipients.
Boolean
A term in the study of logic and programming meaning a true or false value, named after George Boole, a 19th century English mathematician, who helped developed Boolean Algebra as a new branch of mathematics.
Code
A term that refers to the source code, or set of instructions found in a computer program.
Programming Style
A term used to describe the effort a programmer should take to make source code easy to read and easy to understand. Good organization of the code and meaningful variable names help readability, and liberal use of comments can help the reader understand what the program does and why.
Source Code
A text listing of commands in a high level programming language to be compiled, interpreted or assembled into an executable computer program.
Top-Down Design
A top-down approach (also known as stepwise design) is the process of breaking down of a project into smaller and smaller pieces until each piece performs one simple task. In a top-down approach an overview of the project is formulated, specifying but not detailing any lower-level tasks. It is synonymous with stepwise refinement.
Full Tree
A tree in which every level of the tree is completely full, with no missing nodes, not to be confused with a complete tree.
Maximum Heap Tree
A tree in which every parent is greater in value than both its children, which means that the root of the tree is greatest value in the tree.
Minimum Heap Tree
A tree in which every parent is lesser in value than both its children, which means that the root of the tree is least value in the tree.
Binary Search Tree
A tree in which nodes are inserted systematically in natural order, with the final property of each left child being less than or equal to its parent, and each right child being greater than its parent.
Tree Topology
A tree is a widely used abstract data type (ADT) or data structureimplementing this ADT that simulates a hierarchical tree structure, with a root value and subtrees of children with a parent node, represented as a set of linked nodes.
Multicore Processor
A type of computer architecture where a single physical processor contains the core logic of two or more processors.
Checked Exceptions
A type of exception (execution error) that a compiler will check for during the compile process, such as the possibility of a file input error, where the code must explicitly indicate how this possible exception will be handled, either by using a "throws" statement, or by using a "try catch" block.
Repeat Until Loop
A type of loop in some languages that is a post test loop, similar in structure to a do while loop, but terminates when the check condition is true, unlike the do while which terminates when the check is false.
Scareware
A type of malware designed to trick victims into purchasing and downloading useless and potentially dangerous software. By using legitimate-looking notifications showing a large number of viruses or infected files, users are scared into purchasing software to fix the problems. secondary storage Storage other than primary storage (RAM), such as a hard drive, floppy drive, or flash drive.
Virus
A type of malware that propagates by inserting a copy of itself into another program. Almost all viruses are attached to an executable file, which means they will not be active or be able to spread until a user runs or opens the host file or program. Viruses spread when the software or document they are attached to is transferred from one computer to another.
Insertion Sort
A type of sort that uses a nested loop process to systematically find the best place in the current array for an unsorted item.
IP address
A unique string of numbers, usually expressed in dotted decimal notation (such as 192.168.1.1), that identifies each computer using the Internet Protocol to communicate over a network.
Byte
A unit of digital information that most commonly consists of 8 bits. In Java, a byte is an integer data type with a numerical range from -128 to 127.
Bytecode
A universally portable software file compiled from source code that is then translated into machine language by a software interpreter. Java works this way, where a .java file is compiled into a .class file, which contains bytecode, and then is translated by whatever device executes that file.
Parameter
A variable located inside the parentheses of a method call or method header.
Class Variable
A variable that belongs to the class, and is not specific to any particular object, indicated by the word "static", of which only a single copy exists, regardless of how many instances of the class exist.
Brute Force Search
A very general problem-solving technique that consists of systematically checking all possible solutions or values. The breadth first search and depth first search are two examples of brute force searching.
Firewall
A virtual wall in protection software that prevents certain types of network traffic from entering a network, usually by the use of port numbers, an OSI level 4 feature.
Bomb
A virus carrying a built-in time delay so that the virus becomes active after a specific "incubation" time.
Flowchart
A visual organizer system in programming used to indicate the flow of a program, using procedure blocks, decision diamonds and arrows.
Data Structure
A way of organizing data in a computer so that it can be used efficiently, such as an array, linked list, stack, queue, or binary tree.
Access Modifier
Access modifiers (or access specifiers) are keywords in object-oriented languages that set the accessibility of classes, methods, and other members. The two most common are private and public, where private limits access only to members of the class, and public grants open access.
Application Programming Interface (API's)
An API is the documented method and parameter interface for a software system component. A good example is the the Google Maps API's. Often there are multiple interface specifications: 1 for each language that the system being accessed supports.
Acceptable Use
An acceptable use policy (AUP) is a document stipulating constraints and practices that a user must agree to for access to a corporate network or the Internet.
URL
An acronym for Uniform Resource Locator and is a reference (an address) to a resource on the Internet. A URL has two main components: Protocol identifier: For the URL http://example.com , the protocol identifier is http . Resource name: For the URL http://example.com , the resource name is example.com .
COBOL
An acronym for common business-oriented language, a compiled English-like computer programming language designed for business use.
Breadth First Search
An algorithm for traversing or searching a tree or graph data structures. It typically starts at the tree root and explores the neighbor nodes first, before moving to the next level neighbors.
Constant Run Time
An algorithm is said to be constant time (also written as O(1) time) the process does not depend on the size of the input, such as accessing any value of a contiguous array, a process that only involves one step, regardless of the size of the array.
Sort
An algorithm used to arrange elements of an array into natural order, such as numeric or alphabetical.
Integrated Development Environment (IDE)
An application used in programming that combines the source code editing process, compiling and program execution process into one easy-to-use application. Common IDEs for programming include Eclipse, NetBeans, JCreator, and BlueJ.
Two-Dimensional (2D) Array
An array of an array values characterized by rows and columns, arranged in a grid format.
Spreadsheet
An electronic document in which data is arranged in the rows and columns of a grid and can be manipulated and used in calculations.
Simple Mail Transfer Protocol SMTO
An email protocol that enables the transfer of email messages across the network.
Syntax Error
An error associated with punctuation, spelling or grammar in a computer program.
Exception
An error in programming that is "thrown" when something bad happens in a program, usually during runtime. In Java, there is a whole family of Exceptions, like IndexOutOf BoundsException or FileNotFoundException. Generally there are two types: checked and unchecked, checked meaning they are checked during compile time, and unchecked when they are thrown during runtime.
Lexical Error
An error in programming that is characterized by the misspelling of a word, or reserved words listed out of order.
Runtime Error
An error that occurs during the execution of a program.
Visual Basic
An event-driven programming language and integrated development environment (IDE) from Microsoft, first released in 1991, to be relatively easy to learn and use to create GUI based programs.
Exception Handling
An exception (see above) is an error, plain and simple, that might occur during the execution of a program. A program developer must consider all possible ways that something might break a program, and then protect against that possibility. A robust program is one where all possible "bad" scenarios have been considered and "handled".
Try/Catch Block
An exception handling process in programming where possible error generating situations are smoothly handled during execution, with the situation is enclosed inside the try section, and one or more catches are built in to handle the possible errors that may occur. This is a key feature in making very large programs robust and error free.
Universal Serial Bus
An industry standard connection system developed in the mid-1990s that defines the cables, connectors and communications protocols used in a bus for connection, communication, and power supply between computers and electronic devices.
Pseudocode
An informal high-level description of the operating principle of a computer program or other algorithm.
String Object
An object in programming that references a String.
Floppy Drive
An old style secondary memory storage technology that indicates either 3.5 inch or the even older 5.25 inch disks that were indeed "floppy" or flexible.
Operating System
An operating system (OS) is software that manages computer hardware and software resources and provides common services for computer programs, like DOS, Windows, UNIX, Linux, and MAC OS.
Unary Operator
An operator in mathematics or in logic which works on only one operand, such as the negative, positive, or complement operators.
Equality Operator
An operator in programming logic that tests whether or not two objects or items of data contain the same value. In many currently used languages, the double equals sign (==) is the symbol for testing equality.
Adware
Any software package that automatically renders advertisements in order to generate revenue for its author.
Aggregate Data Types
Any type of data that can be referenced as a single entity, and yet consists of more than one piece of data, like strings, arrays, classes, and other complex structures.
Logical Operators
Binary operators that compare the results of two expressions. The result is either true or false.
Relational Operators
Binary operators that compare two operands. The result is always true or false.
Shift Operators
Bitwise operators in programming which shift the binary bits of a value either to the left or to the right.
Readability
By choosing variable names wisely and following a set of agreed upon best practices for formatting a program is more readable which means it is easier to understand, debug and extend.
Antivirus Software
Computer software used to detect, remove, and prevent malicious software, such as viruses, Trojans, malware, worms, etc.
Bot
Derived from the word "robot", bots (also called zombies) automate tasks and provide information or services that would otherwise be conducted by a human being.
Trojan
Disguised as legitimate software, Trojans are a harmful piece of software that tricks users into loading and executing it on their systems. Unlike viruses and worms they do not reproduce by infecting files, nor do they self-replicate.
Default
For variables in a class, a default value is one which is automatically assigned, like zero for numeric variables, null for objects, false for boolean.
Python
From python.com: "Python is an interpreted, object-oriented, high-level programming language with dynamic semantics".
Functional programming
Functional programming, as opposed to imperative programming, is a pure functional approach to problem solving. Functional programming is a form of declarative programming. Languages that fit this description include Scheme, Haskell, LISP, Racket, and F#.
Stack
In computer science, a stack or LIFO (last in, first out) is an abstract data type that serves as a collection of elements, with two principal operations: push, which adds an element to the collection, and pop, which removes the last element that was added.
Zombie
In computer science, a zombie is a computer connected to the Internet that has been compromised by a hacker, computer virus or trojan horse and can be used to perform malicious tasks of one sort or another under remote direction. Botnets of zombie computers are often used to spread e-mail spam and launch denial-of-service attacks.
Complexity
In computing, complexity is defined in terms of the number of steps it takes to perform an algorithm in relation to the amount of data involved, or in terms of how much memory is required during the processing of the data. It is generally measured by the Order of Magnitude system, often called Big O.
Instantiate
In object oriented programming, this is the process of bringing into existence an object defined by a class, in Java initiated by the term "new", which calls a constructor appropriate for that object.
Abstraction
In object-oriented programming, abstraction, or "information hiding" is a term associated with encapsulation, one of three central principles (along with polymorphism and inheritance). Through the process of abstraction, a programmer hides all but the relevant data about an object in order to reduce complexity and increase efficiency.
Composition
In object-oriented programming, this is the process of combining simpler data types into more complex data types. For example in defining a Car class, it would might mad up of a BodyType class, an Engine class, and a TransmissionType class, among many other possible items.
Conventions
In programming, a convention is an agreed upon style of writing code by using indentation, capitalization practices, and use of meaningful identifier names to improve the readability of the code.
Depth First Search
In searching a tree structure, this brute force search process explores one complete branch of a tree all the way to the end of the branch before proceeding to another branch, as opposed to breadth first search.
Absolute Reference
In spreadsheets, the use of the $ to indicate a static cell in a formula, like $A1, A$1, or $A$1.
Order of Magnitude
In the analysis process for algorithms, the order of magnitude of an algorithm is roughly the number of steps, or amount of memory it takes in order for the algorithm to execute, most often expressed using the Big O notation system, using O(1), O(N), and O(N2) as the primary levels of complexity.
Java
Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented, and is designed to run on any platform through the use of the Java Virtual Machine (JVM).
Linear Run Time
Linear runtime is a level of algorithm complexity which requires the number of steps directly proportional to the size of the data structure in order to process, such as outputting all of the elements of an array, or performing a linear search on an array of values.
Internal Path Length
In tree processing, this is the sum of all the lengths from the root to the external nodes in a tree.
Artificial Intelligence (AI)
Intelligence exhibited by machines or software.
Topology
Network topology is the arrangement of the various elements (links, nodes, etc.) of a computer network.
Connected Graph
Not to be confused with a complete graph, a connected graph is one where there exists a simple path from any vertex in the graph to any other vertex in the graph, even it takes several "hops" to get there.
Virtual Memory
Memory that exists in secondary storage that is used in conjunction with primary memory (RAM) to help with program execution.
Contiguous Memory
Memory that is "side-by-side" in a computer, typical of an array structure.
Dynamic Memory
Memory that is allocated as needed, and NOT contiguous (side-by-side), specifically during the implementation of a linked-list style data structure, which also includes binary trees and graphs.
Merge Sort
Merge sort is a recursive algorithm that continually splits a list in half, until each half is either empty or one item, at which point the two halves are merged together in natural order, back up the division process until the entire list has been sorted.
Accessor Method
Method in a Java class that allows and controls access to private data of objects.
String Methods
Methods that belong to the String class that act on the string, such as length(), substring(), indexOf(), charAt(), etc.
Modular Programming
Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.
Object-Oriented Programming
Object-oriented programming (OOP) is a programming language model organized around objects rather than "actions" and data rather than logic.
Primary Storage
Primary storage, also known as main storage or memory, is the area in a computer in which data is stored for quick access by the computer's processor. The terms random access memory (RAM) and memory are often as synonyms for primary or main storage.
Input Protection
Programming constructs that are devised to simplify the logic of detecting invalid data. Examples include try, catch blocks and assertions.
Meaningful Identifiers
Names used in programming for classes, methods, variables, and constants that help describe the general purpose and function associated with that item.
Queue
A FIFO (first in first out) data structure, similar to a stack, but where the first element added to the queue will be the first one to be removed, and where a new element is added to the back of the queue, much like a waiting line.
Metropolitan Area Network (MAN)
A LAN that spans the geograhic area occupied by a city or town, usually using fiber as a backbone.
AND
A binary Boolean operation that results in true only if both boolean values are true, otherwise the result is false.
Child Class
A class in object-oriented programming that inherits the characteristics of a parent class.
Subclass
A class whose definition inherits the characteristics of another class, called the parent class or super class.
Data Type
A classification identifying one of various types of data, such as real, integer or Boolean, that determines the possible values for that type.
Code Block
A code block is a section of code in a computer program which is grouped together. Blocks consist of one or more declarations and statements.
Database
A collection of information that is organized so that it can easily be accessed, managed, and updated.
Method Library
A collection of predefined methods that can be used to build up a program.
Array (1D)
A collection of similar data items in a program, such as an array of integers.
Default
A command in a switch case statement that serves as the option at the end of the statement which is executed when none of the other cases matched.
Compiler
A compiler is a computer program (or set of programs) that transforms source code written in a programming language (the source language) into another computer language (the target language, often having a binary form known as object code). The most common reason for converting a source code is to create an executable program.
Complete Graph
A complete graph is a simple undirected graph in which every pair of distinct vertices is connected by a unique edge, in other words every vertex is directly connected to every other vertex in the graph.
Complete Tree
A complete tree (not to be confused with a full tree) is one in which there are no missing nodes when looking at each level of the tree. The lowest level of tree may not be completely full, but may not have any missing nodes. All other levels are full.
Wide Area Network (WAN)
A computer network in which the computers connected may be far apart, separated by distances spanning half a mile to thousands of miles.
Assembler
A computer program which translates assembly language to an object file or machine language format.
Peripheral Device
A computing device that is connected to the main unit, such as a monitor, keyboard or mouse.
Switch Statements (case, switch, and default)
A conditional control structure in programming that functions as a multi-step if else statement, where several cases are stated and examined during execution to seek a match, and then a command is executed when a match is found.
Virus Definitions
A data file used to update an antivirus program so it can recognize new viruses as they are discovered and documented.
Graph
A data structure in programming (not to be confused with a geometry style graph of a line or a parabola) which consists of a set of vertices (nodes) and edges (connections).
Binary Tree
A data structure that consists of nodes, with one root node at the base of the tree, and two nodes (left child and right child) extending from the root, and from each child node.
Non-Linear Data Structure
A data structure that does not occupy contiguous memory, such as a linked list, graph, or tree.
Float
A data type in programming that contains a floating point value, more commonly referred to as a decimal value, like 1.5 or 3.14.
Character (char)
A data type in programming that contains a symbol, letter, or digit, like 'A', 'b', '5', or '#'.
Double
A data type in some languages that is designed to contain floating-point numbers, generally using twice as much memory as a float data type. In Java, a double uses 64 bits of memory compared to a float that uses 32 bits.
Integer (int)
A data type in various languages (short for integer) which can contain an integer integer. A whole number value, positive or negative. Also known as a real number.
Floating Point
A decimal value, such as 1.5 or 3.14.
Declaration
A declaration specifies properties of an identifier of a function, procedure, method, variable, constant, or class, but can also be used for other entities such as enumerations and type definitions.
Bottom-up Design
A design methodology that involves using existing programming libraries and API's to design a system or application.
Output Device
A device used in computing to display or store information, such as a monitor, printer, or secondary storage device, like a flash drive.
Black Box
A device, system or object in computing which can be viewed in terms of its inputs and outputs, without requiring any knowledge of its internal workings.
Syntax Diagram
A diagram system, sometimes referred to as railroad diagrams, which is a way to represent a context-free grammar.
Monitor
A display device for a computing system, such as a screen or projector.
Integer Modulus (Modulus)
A division process that results in a whole number answer representing the remainder of the division process, discarding the actual answer. Indicated by the % sign.
Integer Division
A division process that results in a whole number answer, discarding or truncating any fractional remainder.
Internal Node
A existing node in a tree, either the root or any one of the children in the tree. See external node.
BASIC (Beginner's All-purpose Symbolic Instruction Code)
A family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use.
Function
A function in programming is most often a procedure or method that performs a calculation and returns a value of some sort.
Algorithm Analysis
A general process that determines the amount of resources (such as time and storage) necessary to execute any particular algorithm, most commonly using Big O notation, such as O(N) or O(N^2).
Malware
A general term for malicious software or code (called malcode) specifically designed to damage, disrupt, steal or inflict illegitimate action on data, hosts, or networks.
C
A general, all-purpose programming language developed by Dennis Ritchie in the late 60s and early 70s at the AT&T Bell Labs, which became one of the most widely used programming languages of all time.
Unified Modeling Language (UML)
A general-purpose modeling language in the field of software engineering, which is designed to provide a standard way to visualize the design of a system.
Undirected Graph
A graph that contains edges between vertices with no specific direction associated with any edge.
Back Door
A hidden method for bypassing normal computer authentication systems, primarily used to gain unauthorized access to a computer system.
Low Level Language
A language easily understood and executed by a computer, like machine language, assembly, or bytecode.
Leaf
A leaf is a node in a tree data structure that has no children, and is at the end of a branch in a tree.
Quadratic Run Time
A level of complexity of an algorithm that is characterized by a nested loop process, taking roughly N2 steps to complete, so for an array size of 10 items, it would take roughly 100 steps to complete the process.
Linked List
A linear data structure, much like an array, that consists of nodes, where each node contains data as well as a link to the next node, but that does not use contiguous memory.
Linear Recursion
A linear recursive function is a function that only makes a single recursive call to itself each time the function runs (as opposed to one that would call itself multiple times during its execution). The factorial function is a good example of linear recursion.
Linear Search
A loop based search process using an array of values that starts looking at the first of the list and continues towards the end of the list until the target is found, or until the end of the array is reached.
For Loop
A loop structure in various programming languages where the start, check, and step are designated in parentheses immediately after the for, such as for(int x = 1; x<10;x++)
Nested for Loop
A loop structure inside of another loop structure, as would be found in an insertion sort, bubble sort, or selection sort, or in the processing of a two dimensional array structure.
Post-test Loop
A loop where the check is made after the action of the loop has completed. A post-test loop is guaranteed to act at least once. Two examples of post-test loops are: do while and repeat until.
Pre-test Loop
A loop where the check is made before the action of the loop takes place. It is possible for a pre-test loop to NEVER act, specifically when the initial check is false. Two examples of pre-test loops are: while and for.
Assembly Language
A low-level programming language (difficult for humans, easy for machines) that uses mnemonic opcodes, such as mov, sto, and load, to interact directly with a computer's CPU and registers, used by expert programmers to produce highly efficient and fast programs.
MAC Address
A media access control address (MAC address) is a unique identifier assigned to network devices for communications on the physical network segment, similar to a social security number that belongs to a person.
Variable
A memory location in programming that is changeable during the execution of the program, unlike a constant which cannot be changed.
Constants
A memory location in programming that is unchangeable during the execution of the program once it has been given a value, unlike a variable which can be changed.
Constructor
A method in a class definition whose sole responsibility is to construct a new object. Classes can have many versions of constructors, a key feature of polymorphism.
Void Method
A method that has no return type. A return statement may be used, but no data will be returned to the calling method.
Void Method
A method that starts with the word void, which indicates no return value, but designates a process of some sort that occurs.
Return Method
A method which will return a value of some sort, usually after a calculation or process. Typically, the heading of a return method will start with the data type of the value being returned, such as int calc, or string firstName.
Debugging
A methodical process of finding and reducing bugs, defects, or errors in a computer program or a piece of electronic hardware.
Reduced Instruction Set Computing (RISC)
A micro-processor architecture that has few instructions.
Complex Instruction Set Computing (CISC)
A micro-processor architecture wherein the machine instruction set is designated as complex. The antonym to complex is reduced.
Microprocessor
A microprocessor, sometimes called a logic chip, is a computer processor on a microchip. The microprocessor contains all, or most of, the central processing unit (CPU) functions and is the "engine" that goes into motion when you turn your computer on.
Parallel Processing
A mode of computer operation in which a process is split into parts that execute simultaneously on different processors attached to the same computer.
Nested Class
A nested class is a member of its enclosing class. Non-static nested classes (inner classes) have access to other members of the enclosing class, even if they are declared private.
Host
A network host is a computer or other device connected to a computer network.
Network
A network is a group of two or more computer systems linked together. There are many types of computer networks, including LANs, MANs, and WANs. The ultimate network is the Internet.
Bus Topology
A network topology in which nodes are connected in a daisy chain.
Ring Topology
A network topology where all devices are connected in a circular fashion.
Router
A networking device that forwards data packets between computer networks routing The process of forwarding data packets between computer networks, performed by a router.
Hub
A networking device that is the center of a star topology, where it is the center of the star and all devices connect to it, receiving network traffic from it.
Quick Sort
Quick sort (sometimes called partition-exchange sort) is an efficient sorting algorithm, serving as a systematic method for placing the elements of an array in order.
Recursion
Recursion in computer science is a method where the solution to a problem depends on solutions to smaller instances of the same problem.
Sequential Search
See Linear search
Comments
Single lines or blocks of lines intended for documentation inside a program that describe a section of code and is not "seen" by the compiler.
Spyware
Software that enables a user to obtain covert information about another's computer activities by secretly transmitting data from their hard drive.
If Statements
Statements in programming that check to see if a Boolean expression is true, and executes a "then" statement if so, otherwise does nothing. These are often called "one-way" conditional statements.
If/Else Statements
Statements in programming that check to see if a Boolean expression is true, and executes a "then" statement if so, otherwise executes an "else" statement if the condition is false. These are often called "two-way" conditional statements.
Internet
The Internet is a global system of interconnected computer networks that use the standard Internet protocol suite (TCP/IP) to link several billion devices.
New
The Java reserved word that instantiates an object, such as String name = new String ("John");
Bit
The abbreviation for "binary digit", used to designate a single state of a computer value or signal, often notated as 0 or 1, false or true, off or on, low voltage or high voltage, etc.
Frequently Asked Questions (FAQ)
The abbreviation for Frequently Asked Questions, a common feature on websites providing answers to such questions.
Sequential Processing
The basic control structure in programming where commands are executed one after another, in the order in which they are listed.
XOR (exclusively OR)
The binary Boolean operation that results in true if only one of the two operands is true, with the other being false.
OR
The binary operation in Boolean logic that results in a true value if either or both operands are true.
Superclass
The class whose characteristics are inherited by another class that inherits it, called the sub class
Executable Code
The code that is a result of the compile process translated from source code. execute The run a program.
"Is-a" Relationship
The concept of inheritance in OOP, where one class is derived from another class. For instance, a Student class is derived from a Person class, therefore a Student "is a" Person.
Edge
The connection in a graph between two vertices.
Class
The definition of an object in OOP, describing the type of data owned by the object, as well as methods that act on that data.
Fair Use
The doctrine that permits limited use of copyrighted material without acquiring permission from the rights holders.
Stepwise Refinement
The incremental process of designing an application or procedure which starts by looking at the overall picture of the requirements, devising an initial solution/architecture, inspecting the solution for patterns that can be abstracted and iterating until the solution meets the objectives of performance, clarity and quality.
Machine Language
The language directly understood and executed by a computer, consisting of pure 0s and 1s. object code A low-level language easily understood and executed by the computer, the result of a translation process using a compiler or interpreter.
Central Processing Unit (CPU)
The main integrated circuit on the motherboard of a computer that is responsible for processing commands and data.
Read Only Memory (ROM)
The memory that is hard-wired and used for system functions, very difficult if not impossible to change.
Object Class
The name of the Java class that is the "mother" of all objects. All other Java class automatically inherit the Object class as the top-level parent class in the hierarchy. This class provides basic methods such as the toString, hashCode, and equals methods.
Moore's Law
The observation made in 1965 by Gordon Moore, co-founder of Intel, that the number of transistors per square inch on integrated circuits had doubled every year since the integrated circuit was invented, and that this trend would continue for the foreseeable future.
NOT
The operation in Boolean logic that indicates negation, or "opposite of" operator A symbol used in mathematical and logical expressions, such as the plus (+) or division (/) sign.
Assignment Operator
The operator used in a programming language that gives a value to a variable or constant.
Order of Operations
The order of precedence of all of the operators in a computational system, such as mathematics (PEMDAS) or logic (NAXO).
ARPANET
The original name for the Internet when it was developed by the US Department of Defense.
Parent Class
The parent class is the super class in a class hierarchy inheritance system. In Java, the Object class is the ultimate parent class.
Parent Node
The parent node in tree structure is a node, including the root, which has one or more child nodes connected to it.
Instruction Set Architecture (ISA)
The part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O.
Hardware
The physical devices in a computer system, such as the main unit, monitor, keyboard, printer, etc.
Overloading Methods
The polymorphic feature of object-oriented programming where constructors and methods are named the same but operate on different input parameters in order to perform the same task.
Overriding Methods
The polymorphic feature of object-oriented programming where methods inherited from parent classes, such as the toString method from the Object class, are redefined and customized to better fit the purpose of the current class.
Camel Case
The practice of writing compound words or phrases such that each word or abbreviation begins with a capital letter.
Hard Drive
The primary device in a computer that is used for secondary storage, such as the operating system and various application programs needed by the computer to function.
Iterative Processing
The process in programming that uses loop based or recursive based control structures to repeat certain processes.
Swap
The process in sort routines of exchanging two values in an array, using a temporary variable, taking three steps to execute.
Parameter Passing
The process in the source code of a program whereby data is passed from one section of the program to another, using method calls that send actual parameters and method definitions that receive the passed data using formal parameters.
Initialization
The process of assigning a beginning value to a variable or constant in a computer program.
Troubleshooting
The process of debugging a program by detecting and correcting errors in syntax and logic.
Information Hiding
The process of encapsulation and abstraction in object-oriented programming that provides a programming interface to a process, but does not reveal the actual workings of the process. For example, how the systems of a car work is not necessary to know about to simply drive the car. You just need to know how to work the driving mechanisms, such as the pedals the steering column functions.
Encryption
The process of encoding messages or information in such a way that only authorized parties can read it. (Wikipedia)
Documentation
The process of including comments inside of a program that are non-executable, but help explain a section of code to help someone trying to learn about the program more quickly understand what it does.
Construct
The process of instantiating (bringing into existence) an object based on a class definition.
Concatenation
The process of joining two strings of characters into a larger string of characters, an operation often indicate by the plus (+) sign.
Binary Search
The process of searching through an ordered set of data using the "divide and conquer" technique, which guarantees a final result in O(log N) times.
In-Order Traversal
The process of systematically visiting every node in a tree once, starting at the root and proceeding left down the tree, accessing the first node encountered at its "center", proceeding likewise along the tree, accessing each node as encountered at the "center".
Post-Order Traversal
The process of systematically visiting every node in a tree once, starting at the root and proceeding left down the tree, accessing the first node encountered at its "right" side, proceeding likewise along the tree, accessing each node as encountered at its "right" side.
Pre-Order Traversal
The process of systematically visiting every node in a tree once, starting with the root node, proceeding to the left along the tree and accessing the node when the "left" side of the node is encountered.
Tree Traversal
The process of systematically visiting every node in a tree once. The three most common traversals are: pre-order, in-order, and post-order.
Compiling
The process of transforming source code from a high-level programming language into object code, most typically machine language or bytecode in Java.
Conditional Processing
The process of using if and if-else type statements in a program to make a decision based on a boolean (true/false) condition.
Wordprocessing
The production, storage, and manipulation of text on a computer or word processor.
Software
The programs and other operating information used by a computer.
File Transfer Protocol (FTP)
The protocol used to transfer files across networks.
Bandwidth
The rate of data transfer, bit rate or throughput, measured in bits per second (bit/s), most often expressed in megabits per second. A typical WAN connection from a home or business can range anywhere from 5 Mbps to 25 Mbps. Within a LAN, speeds can exceed 1000 Mbps, or 1 Gbps.
Super
The reserved word in programming that designates a method or data item that belongs to the parent class, or super class.
Syntax
The rules in a scripted language that control punctuation, spelling, and grammar, such as ending a statement with a semicolon, requiring matching braces or parenthesis, and so on.
Multitasking
The simultaneous execution of more than one program or task by a single computer processor.
Client
The software on a client node or machine that accesses a remote service on another server computer.
Spiral Development
The spiral model is a risk-driven process model generator for software projects. Based on the unique risk patterns of a given project, the spiral model guides a team to adopt elements of one or more process models, such as incremental, waterfall, or evolutionary prototyping.
Software Systems Life Cycle
The stages of development for a software development project. The 5 standard stages include requirements analysis, design, development, testing and maintenance. These steps are not alway performed end to end, and the approach to executing the stages is referred to as the development methodology.
Hyper Text Markup Language (HTML)
The standard markup language used to create web pages. It is written in the form of HTML elements consisting of tags enclosed in angle brackets (like <html> ).
Catch
The term used in a try/catch programming block used to "catch" and handle errors or exceptions as they occur during the execution of a program.
Children
The term used in trees to indicate a node that extends from another node, such as left child and right child in a binary tree.
Base Case
The terminating scenario or situation in recursive programming that does not use recursion to produce an answer.
Interpreting
The translation process in some programming languages which executes a program one line at a time, instead of compiling the entire program into one executable file.
Random Access Memory (RAM)
The type of primary memory that is used by a computer in which to run programs and perform system operations.
Waterfall Design
The waterfall model is a sequential design process, used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of conception, initiation, analysis, design, construction, testing, production/implementation and maintenance.
Input Protection and Data Validation
These two ideas go hand in hand in the development of a robust software package. Protecting against bad data entering a software process includes some way of testing a piece of data to make sure it is in the proper form, such as making sure that someone's name is actually a string of characters, and not a numeric value, or that someone's age is indeed a valid number, and not a word or phrase.
Polymorphic Objects
This aspect of polymorphism refers to how a parent object can reference any of its child objects, or any descendant several levels of inheritance down the way.
Star Topology
This is a common topology in networking where a central device, such as a switch or a hub, to which all of the network devices are connected.
Directed Graph
This is a graph where an edge has a direction associated with it, for example, a plane flight that takes off in one location and arrives in another. The return flight would be considered a separate edge.
Do While Loop
This is a post test loop in programming where the action of the loop precedes the "check if true" expression, which decides whether or not the loop should continue.
POP
This is an email protocol for storing emails, short for Post Office Protocol.
Default Constructor
This is the constructor either supplied by the compiler where all instance variables received default values, or one defined explicitly in the class that receives no parameters and assigns beginning values for each instance variable.
Formal Parameter
This is the parameter that is listed in a method header that receives a value from a method or procedure call, and is only in scope during the execution of the method.
Decision Diamond
This is the shape used in flowcharts that indicates a decision made in a program where an input situation is presented and the result is either true or false.
Pass by Reference
When a parameter is passed by reference, the memory location originally referred to by the actual parameter is passed to the formal parameter, such that any changes made to the object by the formal parameter also affect the original actual parameter.
Pass by Value
When a parameter is passed by value, any changes made to the formal parameter do NOT affect the actual parameter.
Worm
Worms are similar to viruses in that they replicate functional copies of themselves, but are standalone software that do not require a host program to propagate. To spread, worms exploit a vulnerability on the target system or use social engineering to trick users into executing them.
XML Extensible Markup Language (XML)
XML is a markup language that defines a set of rules for encoding documents in a format which is both human-readable and machine-readable.
Mac OS
is a series of graphical user interface-based operating systems developed byApple Inc. for their Macintosh line of computer systems, the latest version of which is OS X 10.11, referred to as El Capitan. (https://en.wikipedia.org/wiki/Mac_OS#OS_X)
Decimal
"A real number that has a whole part and a fractional part, like 3.14. The general term for the base ten numbering system, as opposed to binary (base 2), octal (base 8) or hexadecimal (base 16)."
Agile Development
"Agile refers to a software development methodology wherein a system is developed incrementally with repeated cycles of design, implementation, testing. The methodology emphasizes continuous delivery of working software that is developed, tested and fixed over short intervals that are referred to as iterations or sprints which are typically 1 to 3 weeks in duration. The methodology is guided by a set of 4 simple principals which are outlined in the Agile Manifesto: 1. Individuals and interactions over processes and tools 2. Working software over comprehensive documentation 3. Customer collaboration over contract negotiation 4. Responding to change over following a plan"
Arithmetic Operator
+ for plus, - for minus, * for multiplication, / for division, and % for modulus.
Windows OS
- Windows 1.0 was released on November 20, 1985, as the first version of the Microsoft Windows line, the first of many since then, culminating with the current version, Windows 10.
Hypertext Transfer Protocol (HTTP)
HTTP is an application protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web.
Heuristic Search
Heuristic search is an AI search technique that employs heuristic for its moves. Heuristic is a rule of thumb that probably leads to a solution.
Imperative Programming
Imperative programming, as opposed to functional programming, is a paradigm in programming that is often referred to as procedural, where a developer writes code that describes in exacting detail the steps that the computer must take to accomplish the goal. Most of the mainstream programming languages, such as C++, Java, and Python, are considered imperative languages.
Heuristic Solution
In a general sense, the term heuristic is used for any process that is often effective, but is not guaranteed to work in every case, as opposed to an algorithm, which is guaranteed to work in all cases.
Node
In a linked list, tree, or similar graph-based structure, a node is an object linked to other objects, representing some entity in that data structure.
Driver Class
In a programming project, this is the class that contains the method where program execution begins, such as the main method in Java.
Depth
In a tree data structure, the depth of the tree is most commonly expressed as the number of steps from the root of the tree to the farthest outlying node in the tree. Height is also used to mean the same thing.
Logarithmic Run Time
Logarithmic run time is a level of complexity which requires the number of steps roughly equivalent to the log value (usually base 2) of the size of the data set. For example, for a set of 1000 values, the log base 2 value of 100 is about 10, which means it would take roughly 10 steps for an algorithm to perform its task on 1000 items in a data structure. The most common log based algorithm is the binary search.
Robust Programs
One definition of the word "robust" is: able to withstand or overcome adverse conditions. A program is considered to be robust if it won't crash, regardless of bad input or missing files or some other such bad situations that it might encounter. This is certainly the goal of any software development process, and is most often the result of a well-analyzed, designed, and developed software project. Several ways to ensure that a program is robust is through the use of unit testing, input protection, data validation, and exception handling.
Routing Information Protocol (RIP)
One of the most used routing protocols used in network routing configurations.
FORTRAN
One of the original high level languages, short for Formula Translation, created by John Backus to make programming easier for math and science applications.
Inheritance
One of the three pillars of object-oriented programming that allows for classes to be defined based on previously defined and developed classes, inheriting all of the characteristics of the inherited class, and then expanding on those features.
Encapsulation
One of the three primary aspects of object oriented programming that incorporates related data items and methods into a class definition, including instance variables, constructors, accessor and modifier methods.
Recursive Case
One of two situations in a recursive method, the other being the base case, where another method call is made, moving closer and closer to the base case, which terminates the recursive process and unstacks all previously called methods, until a final value is achieved.
Shortcut Operators
Operators that combine the operation and assignment process into one operation, such as +=, -=, *= or /=.
Platform-Specific
Platform specific means that the program only works on the specific platform (operating system) for which it was defined.
Postcondition
Part of the documentation process in programming, this is often listed in describing the end result expected from a method or function in the program.
Precondition
Part of the documentation process in programming, this is often listed in describing the expected state prior to the execution of a method or function in the program, in order for that method to properly execute. For example, the precondition for a binary search is the list provided is in natural ascending order.
Platform-Independent
Platform independence means that the same program works on any platform (operating system) without needing any modification.
Server
This term refers to either the software that is the server, or the hardware on which the server software is located.
"Has-a" Relationship
Through encapsulation data can be protected within an object definition. When modeling an object this relationship is referred to as a "has a" relation i.e. A car object has an engine.
Unix (trademarked as UNIX)
is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, developed in the 1970s at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others. (https://en.wikipedia.org/wiki/Unix)
Linux
is a UNIX-like computer operating system assembled under the model of free and open-source software development and distribution. The defining component of Linux is the Linux kernel, an operating system kernel first released on 5 October 1991 by Linus Torvalds. Due to the fact that is open source software, many versions of Linux have evolved over the years, including Ubuntu, Gentoo, PacMan, and Red Hat. (https://en.wikipedia.org/wiki/Linux)
DOS (Disk Operating System)
was the first widely-installed operating system for personal computers. It is an acronym for several computer operating systems that are operated by using the command line. MS-DOS dominated the IBM PC compatible market between 1981 and 1995 until Windows came along and emerged as the dominant OS.