Final Terms to Know Flashcards
Study these terms before the final for COMS W1004: Introduction to Computer Science and Programming in Java
accessor method
a method that accesses an object but does not change it
ACK
in data networking, an acknowledgement (or acknowledgment) is a signal passed between communicating processes or computers to signify acknowledgement, or receipt of response, as part of a communications protocol
actual parameter
Formal parameters are the parameters as they are known in the function definition. Actual parameters (also known as arguments) are what are passed by the caller.
address
the code that identifies where a piece of information is stored
algorithm
an unambiguous, executable, and terminating specification of a way to solve a problem
API
(Application Programming Interface) a code library for building programs
argument
a value supplied in a method call, or one of the values combined by an operator
arithmetic/Logic Unit (ALU)
a digital circuit that performs integer arithmetic and logical operations
ARQ Algorithm
Automatic Repeat reQuest (ARQ), also known as Automatic Repeat Query, is an error-control method for data transmission that uses acknowledgements (messages sent by the receiver indicating that it has correctly received a data frame or packet) and timeouts (specified periods of time allowed to elapse before an acknowledgment is to be received) to achieve reliable data transmission over an unreliable service. If the sender does not receive an acknowledgment before the timeout, it usually re-transmits the frame/packet until the sender receives an acknowledgment or exceeds a predefined number of re-transmissions
ASCII
the American Standard Code for Information Interchange is a character-encoding scheme originally based on the English alphabet that encodes 128 specified characters - the numbers 0-9, the letters a-z and A-Z, some basic punctuation symbols, some control codes that originated with Teletype machines, and a blank space - into the 7-bit binary integers
assembly language
an assembly language is a low-level programming language for a computer, or other programmable device, in which there is a very strong (generally one-to-one) correspondence between the language and the architecture’s machine code instructions
binary
number system, also known as base-2, that represents numeric values using two symbols: typically 0 and 1
bit
binary digit; the smallest unit of information, having two possible values: 0 and 1. A data element consisting of n bits has 2^n possible values.
boolean
a type with two possible values: true and false
boolean expression
an expression in a programming language that produces a Boolean value when evaluated, i.e. one of true or false
boolean operator
an operator that can be applied to Boolean values. Java has three Boolean operators: &&, ||, and !
byte
a number made up of eight bits. Essentially all currently manufactured computers use a byte as the smallest unit of storage in memory.
bytecode
instructions for the Java virtual machine
cache memory
random access memory (RAM) that a computer microprocessor can access more quickly than it can access regular RAM
cast
explicitly converting a value from one type to a different type. For example, the cast from a floating-point number x to an integer is expressed in Java by the cast notation (int) x.
Church-Turing Thesis
in computability theory, the Church–Turing thesis (also known as the Turing–Church thesis,[1] the Church–Turing conjecture, Church’s thesis, Church’s conjecture, and Turing’s thesis) is a combined hypothesis (“thesis”) about the nature of functions whose values are effectively calculable; or, in more modern terms, functions whose values are algorithmically computable. In simple terms, the Church–Turing thesis states that a function is algorithmically computable if and only if it is computable by a Turing machine
class
a programmer-defined data type
compiler
a program that translates code in a high-level language (such as Java) to machine instructions (such as bytecode for the Java virtual machine)
computability
computability is the ability to solve a problem in an effective manner. It is a key topic of the field of computability theory within mathematical logic and the theory of computation within computer science. The computability of a problem is closely linked to the existence of an algorithm to solve the problem.
computer network
a computer network or data network is a telecommunications network that allows computers to exchange data. In computer networks, networked computing devices pass data to each other along data connections. The connections (network links) between nodes are established using either cable media or wireless media. The best-known computer network is the Internet
computer science
the study of algorithms including their formal and mathematical properties, their hardware realizations, their linguistic realizations, and their applications
computing agent
any object capable of understanding and executing our instructions.
constructor
a sequence of statements for initializing a newly instantiated object
control unit
unit within the computer that actually carries out the operations of a program
DASD
in mainframe computers and some minicomputers, a direct access storage device, or DASD, is any secondary storage device which has relatively low access time relative to its capacity
DNS
the Domain Name System (DNS) is a hierarchical distributed naming system for computers, services, or any resource connected to the Internet or a private network
ethernet
Ethernet is a family of broadband computer networking technologies for local area networks (LANs). Ethernet was commercially introduced in 1980 and standardized in 1985 as IEEE 802.3. Ethernet has largely replaced competing wired LAN technologies such as token ring, FDDI, and ARCNET
encapsulation
the hiding of implementation details
explicit parameter
a parameter of a method other than the object on which the method is invoked
flops
floating-point operations per second
formal parameter
a variable in a method definition
gigabyte
2^30, or close to a billion, bytes
Halting Problem
in computability theory, the halting problem can be stated as follows: “Given a description of an arbitrary computer program, decide whether the program finishes running or continues to run forever”. This is equivalent to the problem of deciding, given a program and an input, whether the program will eventually halt when run with that input, or will run forever.
HTTP
(Hypertext Transfer Protocol) the protocol that defines communication between web browsers and web servers
I/O buffer
memory stored in the I/O controller for transfer between RAM and an I/O device
I/O controller
a device that interfaces between an input or output device and the computer or hardware device. The input/output controller on a computer is commonly located on the motherboard. However, an I/O controller can also be an internal add-on that can either be used as a replacement or to allow for additional input or output devices for the computer.
IDE
(Integrated Development Environment) a programming environment that includes an editor, compiler, and debugger
implicit parameter
the object on which a method is invoked. For example, in the call x.f(y), the object x is the implicit parameter of the method f.
interface (in Java)
an interface in the Java programming language is an abstract type that is used to specify an interface (in the generic sense of the term) that classes must be implement. Interfaces are declared using the interface keyword, and may only contain method signature and constant declarations (variable declarations that are declared to be both static and final). An interface never contains method implementations (ie function “bodies”).
inheritance (in Java)
The is-a relationship between a more general superclass and a more specialized subclass.
initialize
set a variable to a well-defined value when it is created
instance
(of a class) an object whose type is that class
instance variable
a variable defined in a class for which every object of the class has its own value
instantiation
(of a class) construction of an object of that class
Internet Protocol
The network layer of the internet. Delivers packages from the source host to a destination based on IP addresses, and defines addressing methods.
instruction register
Holds a copy of the instruction fetched from memory, which includes the op code and addresses. Instruction decoders interpret op codes to find the corresponding functions, and the address tells the computer where to do this function.
instruction set
an instruction set, or instruction set architecture (ISA), is 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.
kilobyte
2^10, or around 1000, bytes
LAN
Local Area Network. Connects hardware devices such as computers, printers, and storage devices. There are many types: bus, ring, star, etc.
local variable
a variable whose scope is a block (it can only be accessed within that block)
logic gate
an idealized or physical device implementing a Boolean function, that is, it performs a logical operation on one or more logic inputs and produces a single logic output
loop
a sequence of instructions that is executed repeatedly
MAC
Medium Access Control. Determine how to arbitrate ownership of a shared communication line when multiple nodes want to send messages at the same time. Node listens to see if the line is busy before it sends. If two messages are sent at the same time they collide and are lost. Retransmission selects a random waiting time to resend the messages.
machine language
(machine code) instructions that can be executed directly by the CPU
mass storage
nonvolatile means of storing information, can store a great deal of memory, don’t require a power source in order to persist, two distinct forms - direct access storage devices (DASDs) and sequential access storage devices (SASDs)
megabyte
2^20, or around a million, bytes
memory
fundamental unit of a computer that stores and retrieves the instructions and the data being executed
Memory Address Register (MAR)
holds the address of the cell to be fetched or stored
Memory Data Register (MDR)
contains the data value being fetched or stored
method
sequence of statements that has a name, may have formal parameters, and may return a value, a method can be invoked any number of times, with different values for its parameters
mutator method
a method that changes the state of an object
object
a value of a class type
object reference
a value that denotes the location of an object in memory. In Java, a variable whose type is a class contains a reference to an object of that class
object-oriented programming
designing a program by discovering objects, their properties, and their relationships
op code
3-bits, has 8 possible output line. They are fed into an instruction decoder to find the corresponding operation that goes with the 3 bits.
operating system
the software that launches application programs and provides services (such as a file system) for those programs
overloading a method
giving more than one meaning to a method name
overriding a method
redefining a method in a subclass
parameter
an item of information that is specified to a method when the method is called
parameter passing
specifying expressions to be arguments for a method when it is called
portability
a program that will run, without change, on multiple platforms. The java compiler is ale to achieve this because it does not translate Java programs into CPU instructions, but compiles for the Java virtual machine, a program that simulates a real CPU.
primitive data type
in Java, a number type or boolean
protocol
in networking, a protocol is a mutually agreed-upon set of rules, conventions, and agreements for the efficient and orderly exchange of information
protocol stack
five layers (from top to bottom): application, transport, network, logical link control, medium access control, and physical. This hierarchy is called the TCP/IP protocol.
pseudocode
a high-level description of the actions of a program or algorithm, using a mixture of English and informal programming language syntax
Random Access Memory
RAM, electronic circuits in a computer that can store code and data of running programs
register
a storage cell that holds the operands of an arithmetic operation and that, when the operation is complete, holds its results
SASD
Sequential Access Storage Devices. Does not require that all units of data be identifiable by unique addresses; searches all data sequentially. It is very, very slow.
scope
the part of a program in which a variable is defined
software
the intangible instructions and data that are necessary for operating a computer or another device
static variable
a variable defined in a class that has only one value for the whole class, and which can be accessed and changed by any method of that class
static method
a method with no implicit parameter
stored program concept
central characteristic of Von Neumann Architecture and the design of all modern computers, in which the instructions to be executed by the computer are represented as binary values and stored in memory
syntax
rules that define how to form instructions in a particular programming language
terabyte
2^40, or around 1 trillion, bytes
time complexity
the amount of time taken by an algorithm to run as a function of the length of the string representing the input. Often denoted by the big O notation: O(n).
transistor
the elementary building block of all modern computers, a solid-state device with no moving parts that can be in either an on or off state, transistors as well as electrical conducting paths to them are printed photographically on a wafer of silicon to produce an integrated circuit or chip
TCP
Transport Control Protocol. Also called protocol stack, has five layers (from top to bottom): application, transport, network, logical link control, medium access control, and physical.
truth table
a mathematical table used to compute the functional values of logical expressions on each possible combination of their logical variables
Turing machine
a very simple model of computation that is used in theoretical computer science to explore computability of problems
Von Neumann architecture
theoretical model for nearly all modern computers, such computers are composed of four major subsystems (memory, input/output, the ALU or arithmetic/logic unit, and the control unit), the stored program concept, and the sequential execution of instructions
white space
any sequence of only space, tab, and newline characters
WAN
Wide Area Networks. Connects devices that are not in close proximity (across the country, for example). They use dedicated, point to point links and a store and forward, packet-switched tech to send messages.