Algorithm: A finite set of steps to solve a problem Sequencing: Running statements in order Selection: Choosing which code runs based on a condition Iteration: Repeating a block of code Variable: A named place that stores a value Data type: The kind of value, such as integer, string or boolean Boolean: A value that is true or false String: A sequence of characters Integer overflow: A result too big for the number of bits available Round-off error: Small error from limited precision in storing real numbers Function: A named block of code that can be called Procedure: A named group of instructions, possibly with parameters Parameter: A variable in a function definition that receives a value Argument: The actual value passed to a function Return value: The value a function sends back Library: A collection of prewritten code API: A set of rules for how software components interact Abstraction: Hiding detail to manage complexity Modularity: Dividing a program into independent parts Class: A blueprint for creating objects Object: An instance of a class with state and behavior Instance variable: Data stored inside an object Constructor: Code that initializes a new object Method: A function belonging to a class Encapsulation: Keeping data private and exposing it through methods Inheritance: A subclass reuses and extends a superclass Polymorphism: The same method call behaves differently depending on the object Overloading: Methods with the same name but different parameters Overriding: A subclass provides its own version of a superclass method Static method: A method belonging to the class, not an object Array: A fixed-size, ordered collection of items ArrayList: A resizable list in Java List: An ordered collection of elements Index: The position of an item, usually starting at 0 2D array: An array of arrays, like a grid Traversal: Visiting each element of a data structure For loop: A loop with a counter and a stopping condition While loop: A loop that repeats while a condition is true Infinite loop: A loop that never ends Nested loop: A loop inside another loop Off-by-one error: A bug from a loop going one step too far or too short Compound condition: Conditions joined with AND, OR or NOT De Morgan's laws: NOT (A and B) equals (NOT A) or (NOT B) Short-circuit evaluation: Stopping evaluation once the result is known Recursion: A method that calls itself Base case: The condition that stops recursion Linear search: Checking each element in order Binary search: Repeatedly halving a sorted list Selection sort: Repeatedly selecting the smallest remaining item Insertion sort: Placing each item into its sorted position Merge sort: Dividing in half, sorting each, and merging Algorithm efficiency: How the work grows with input size Big-O notation: Describes how running time grows as input grows Reasonable time: Polynomial time or better Unreasonable time: Exponential or worse growth Heuristic: An approach that finds a good-enough answer when exact solutions are too slow Undecidable problem: A problem no algorithm can solve for all cases Parallel computing: Running parts of a task at the same time Bit: A binary digit, 0 or 1 Byte: Eight bits Binary: Base-2 number system Hexadecimal: Base-16 number system Lossless compression: Reduces size without losing any data Lossy compression: Reduces size by discarding some data Metadata: Data that describes other data Data cleaning: Fixing or removing incorrect data Big data: Datasets too large for ordinary processing Internet: A global network of networks IP address: A numeric address for a device on a network DNS: System that translates domain names to IP addresses Packet: A small unit of data sent across a network TCP/IP: Protocols that route and deliver data across the internet Router: Device that forwards packets between networks Fault tolerance: A network keeps working when parts fail Bandwidth: Maximum data a connection can carry per time Latency: Delay before data transfer begins HTTP: Protocol for the web Encryption: Scrambling data so only authorized parties can read it Symmetric encryption: One shared key encrypts and decrypts Public-key encryption: A public key encrypts; a private key decrypts Phishing: Tricking people into giving up private information Malware: Software designed to cause harm Multifactor authentication: Verifying identity with more than one kind of proof Digital divide: Unequal access to technology Crowdsourcing: Getting contributions from a large group of people online Open source: Software whose code is free to view and modify Bias in algorithms: Systematic unfairness in a program's results Creative Commons: Licenses that let creators share work with set permissions Debugging: Finding and fixing errors Syntax error: Code that breaks the language's rules Logic error: Code that runs but gives wrong results Run-time error: An error that happens while the program is running Testing: Running a program with chosen inputs to check behavior Pseudocode: Informal, language-independent description of an algorithm Flowchart: A diagram of an algorithm's steps Event-driven programming: Code that responds to user actions or messages Simulation: A program that models a real-world system Free flashcards from Peabody at peabody.kids/flashcards/tp-ap-computer-science