FTCE Computer Science study materials
FTCE Computer Science study resources

FTCE Computer Science key terms

FTCE Computer Science · Get comfortable with the vocabulary.

algorithm

A finite, ordered set of unambiguous steps that transforms input into a desired output and terminates. Every step must be precise enough to be carried out mechanically, and the procedure must work for all valid inputs.

Related: pseudocode, flowchart, computational complexity
pseudocode

A structured, informal notation mixing English phrases with programming constructs such as IF, WHILE, and assignment. It communicates logic independent of any language's syntax, making it a common tool for planning and for exam-style algorithm questions.

Related: algorithm, flowchart
flowchart

A diagram of an algorithm using standard symbols: ovals for start and end, parallelograms for input and output, rectangles for processes, diamonds for decisions, and arrows for control flow. It shows branching and looping visually.

Related: algorithm, pseudocode, control structure
control structure

A construct that determines the order in which statements execute: sequence, selection (if/else, switch), and iteration (for, while, do-while). Any algorithm can be expressed by combining these three basic forms.

Related: flowchart, loop invariant
loop invariant

A property that is true before and after every iteration of a loop, used to reason about correctness. Establishing initialization, maintenance, and termination for the invariant proves the loop achieves its intended result.

Related: control structure, algorithm
computational complexity

A measure of the resources an algorithm consumes, usually time or memory, expressed as a function of input size. It lets programmers compare approaches independently of hardware and predict how performance degrades as data grows.

Related: Big-O notation, algorithm
Big-O notation

A notation describing an upper bound on growth rate, ignoring constants and lower-order terms. For example, a loop nested inside another loop over n items is O(n squared), while binary search is O(log n).

Related: computational complexity, binary search
binary search

A search that repeatedly halves a sorted collection by comparing the target with the middle element. It runs in O(log n) time but requires the data to be sorted and randomly accessible.

Related: Big-O notation, sorting algorithm
sorting algorithm

A procedure that arranges elements into a defined order. Common examples include bubble, selection, insertion, merge, and quick sort, which differ in average time complexity, stability, and memory use.

Related: binary search, recursion
recursion

A technique in which a method calls itself on a smaller version of the same problem. It needs a base case that stops the calls and a recursive case that makes measurable progress toward that base case.

Related: stack, sorting algorithm
variable

A named storage location whose value can change during program execution. In most languages a variable has a declared or inferred data type, a scope, and a lifetime determined by where it is declared.

Related: data type, scope
data type

A classification that specifies which values a variable may hold and which operations apply, such as integer, floating point, character, Boolean, or string. It determines memory representation and allowed behavior.

Related: variable, type casting
type casting

Converting a value from one data type to another. Widening conversions, such as int to double, happen implicitly and safely; narrowing conversions, such as double to int, may lose precision and often require an explicit cast.

Related: data type
scope

The region of a program where a declared name is visible and usable. Block scope limits a variable to the braces where it is declared, while global scope makes it accessible throughout the file or program.

Related: variable, parameter passing
parameter passing

How arguments move into a method. Pass-by-value copies the argument, so changes stay local; pass-by-reference gives access to the caller's variable. Java passes object references by value.

Related: scope, recursion
object-oriented programming

A paradigm organizing code into classes that bundle data and behavior, with objects as instances. Its pillars are encapsulation, inheritance, polymorphism, and abstraction, which support reuse and manageable large programs.

Related: inheritance, polymorphism, encapsulation
encapsulation

Hiding an object's internal state behind private fields and exposing controlled access through public methods such as getters and setters. It protects invariants and lets implementation details change without breaking callers.

Related: object-oriented programming, polymorphism
inheritance

A relationship in which a subclass acquires fields and methods from a superclass and may extend or override them. It models an is-a relationship and promotes code reuse, though deep hierarchies can become brittle.

Related: polymorphism, object-oriented programming
polymorphism

The ability of one interface or method name to work with multiple types. Method overriding resolves at run time, while overloading resolves at compile time based on argument lists.

Related: inheritance, encapsulation
compiler

A program that translates an entire source file into machine code or intermediate code before execution. It reports syntax errors at compile time and generally produces faster-running programs than an interpreter.

Related: interpreter, syntax error, linker
interpreter

A program that reads source code and executes it statement by statement without producing a separate executable. It simplifies debugging and portability but typically runs slower than compiled code.

Related: compiler, runtime error
syntax error

A violation of a language's grammar, such as a missing semicolon or unbalanced parenthesis, detected during compilation or parsing. The program cannot run until the error is corrected.

Related: compiler, runtime error, logic error
runtime error

A fault that occurs while a program is executing, such as dividing by zero, dereferencing null, or indexing outside an array. The code was syntactically valid but an operation failed during execution.

Related: syntax error, logic error, exception
logic error

A mistake in the program's reasoning that produces incorrect output without crashing, such as using less-than instead of less-than-or-equal in a loop condition. It is found by testing and tracing, not by the compiler.

Related: runtime error, syntax error
exception

An object signaling an abnormal condition during execution. Languages use try, catch, and finally blocks or similar constructs to handle it, allowing recovery instead of abrupt termination.

Related: runtime error, compiler
linker

A tool that combines compiled object files and library code into a single executable, resolving references between modules. Unresolved external symbols are reported as link errors before the program can run.

Related: compiler, operating system
operating system

System software that manages hardware resources, schedules processes, allocates memory, handles file systems, and provides services to applications. Examples include Windows, macOS, Linux, and mobile systems such as Android.

Related: virtual memory, process, linker
process

A running instance of a program with its own address space, program counter, and resources. Processes are isolated from one another, unlike threads, which share memory inside a single process.

Related: operating system, virtual memory
virtual memory

A technique giving each process an abstract address space mapped by hardware and the operating system to physical frames. It enables isolation, larger-than-RAM programs, and paging between memory and disk.

Related: operating system, cache memory, process
cache memory

A small, fast memory between the processor and main memory that holds recently used data. Locality of reference makes caches effective, and cache misses cost far more cycles than register or cache hits.

Related: virtual memory, operating system
stack

A last-in, first-out structure where push and pop act at one end. It supports function call management, expression evaluation, and backtracking, and its LIFO behavior underlies depth-first traversal.

Related: queue, recursion
queue

A first-in, first-out structure where insertion happens at the rear and removal at the front. It models waiting lines, scheduling, and breadth-first traversal of graphs and trees.

Related: stack
binary search tree

A binary tree in which every left descendant is smaller and every right descendant is larger than the node. Search, insert, and delete average O(log n) when balanced but degrade to O(n) when skewed.

Related: binary search, Big-O notation
hash table

A structure mapping keys to values through a hash function that computes an index into an array. Average lookup is O(1), but collisions require chaining or open addressing and can degrade performance.

Related: Big-O notation, binary search tree
IP address

A numeric label identifying a device on a network. IPv4 uses 32-bit dotted-decimal addresses; IPv6 uses 128-bit hexadecimal addresses. Addresses are assigned statically or dynamically via DHCP.

Related: subnet mask, DNS, DHCP
subnet mask

A 32-bit pattern that separates the network portion of an IPv4 address from the host portion. Devices on the same subnet communicate directly; traffic to other subnets goes through a router.

Related: IP address, router
DNS

The Domain Name System translates human-readable host names into IP addresses through a distributed hierarchy of name servers. It also stores mail routing and other records used across the internet.

Related: IP address, DHCP
DHCP

A protocol that automatically assigns IP addresses, subnet masks, default gateways, and DNS servers to clients when they join a network, reducing manual configuration errors.

Related: IP address, DNS
router

A device that forwards packets between networks by consulting a routing table of destination addresses. It operates at the network layer and connects distinct subnets, unlike a switch within one local network.

Related: subnet mask, TCP/IP model
TCP/IP model

A layered framework describing network communication: application, transport, internet, and network access. Each layer provides services to the layer above and uses the layer below, supporting protocol independence.

Related: router, IP address
encryption

Transforming readable data into ciphertext so only authorized parties can recover it. Symmetric schemes share one key; asymmetric schemes use public and private key pairs and often exchange symmetric keys.

Related: digital signature, authentication
authentication

Verifying that a user or system is who it claims to be, typically through something known, possessed, or inherent. It is distinct from authorization, which decides what an authenticated identity may access.

Related: encryption, digital signature
digital signature

A cryptographic value created with a sender's private key that proves origin and integrity of a message. Recipients verify it with the public key, detecting tampering and supporting nonrepudiation.

Related: encryption, authentication
intellectual property

Legal protection for creations of the mind, including copyright, patents, trademarks, and trade secrets. Software may be covered by copyright as source code and by patents for certain processes.

Related: open source license
open source license

A license granting rights to use, modify, and redistribute source code under stated conditions. Permissive licenses impose few restrictions; copyleft licenses require derivative works to keep the same terms.

Related: intellectual property
digital divide

The gap between groups with reliable access to computing devices, broadband, and digital skills and those without. It affects education, employment, and civic participation and is a common social-impact topic.

Related: intellectual property, authentication