IB Computer Science - Option D

0.0(0)
studied byStudied by 18 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/74

flashcard set

Earn XP

Description and Tags

Flashcards in bold are HL content. Generated with GPT o3-mini using ThinkIB Notes.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

75 Terms

1
New cards
Object
A self-contained unit that encapsulates data (attributes) and behaviors (methods) representing a real-life entity.
2
New cards
Instantiation
The process of creating an instance (object) from a class blueprint using a constructor.
3
New cards
UML
Unified Modeling Language; a visual language used to design and represent the structure of object-oriented systems.
4
New cards
Decomposition
The process of breaking a complex problem or system into smaller, manageable objects with distinct responsibilities.
5
New cards
Relationships
The ways objects interact, including inheritance (is-a), association (has-a), and dependency (uses-a).
6
New cards
Dependencies
Connections where one object or class relies on another for functionality, affecting code flexibility and maintenance.
7
New cards
Data Types
Classifications of data (e.g., int, float, String, boolean) that determine the kind of values variables can hold.
8
New cards
Parameters
Special variables defined in a method’s signature that accept values (arguments) when the method is called.
9
New cards
Encapsulation
The bundling of data and methods within an object while restricting direct access to some of its components.
10
New cards
State
The current values of an object's attributes, reflecting its properties at a specific point in time.
11
New cards
Behavior
The actions or operations (methods) that an object can perform to interact with data or other objects.
12
New cards
Constructor
A special method in a class used to initialize new objects, often having the same name as the class.
13
New cards
Default Constructor
An automatically provided constructor (if none is defined) that initializes an object with default values.
14
New cards
Inheritance
An object-oriented concept where a subclass acquires the properties and behaviors of a superclass (an “is-a” relationship).
15
New cards
Association
A general relationship where one class interacts with or uses another, often described as a “has-a” or “uses-a” relationship.
16
New cards
Aggregation
A form of association indicating a “has-a” relationship where parts can exist independently of the whole.
17
New cards
Composition
A strong form of aggregation where parts cannot exist without the whole, representing a “part-of” relationship.
18
New cards
Dependency
A relationship where one class relies on another for a specific function, often implemented via method parameters or local variables.
19
New cards
Interface
A contract that specifies a set of methods a class must implement, promoting abstraction and loose coupling.
20
New cards
Abstract Class
A class that contains both abstract (no implementation) and concrete methods, used as a base for subclasses.
21
New cards
Design Patterns
Reusable solutions to common design problems that reduce dependencies and promote modular, flexible code.
22
New cards
Declaration
The step in object creation where a variable of a specific object type is defined.
23
New cards
Initialization
The process of setting an object's initial state by calling its constructor during instantiation.
24
New cards
Argument
The actual value provided to a method's parameter when the method is invoked.
25
New cards
Encapsulation
A language mechanism that bundles data with the methods that operate on that data, while restricting access to some of the object's components.
26
New cards
Access Modifiers
In Java, keywords (private, default, protected, public) used to control the visibility of class data and methods.
27
New cards
Advantages of Encapsulation
Enhances code reusability, maintainability, flexibility, and security by modeling real-world entities and controlling data access.
28
New cards
Inheritance
An OOP feature that represents the “is-a” relationship; it allows a subclass to inherit properties and methods from a superclass.
29
New cards
Inheritance Terminology
The subclass (child) is derived from the superclass (parent), typically using the "extends" keyword in Java.
30
New cards
Advantages of Inheritance
Promotes code reuse and maintainability by centralizing common variables and behavior in a superclass.
31
New cards
Polymorphism
The ability of a programming language to process objects differently based on their data type or class, enabling method overriding and overloading.
32
New cards
Overriding
When a subclass provides its own implementation of a method that is already defined in its superclass, enabling dynamic method dispatch.
33
New cards
Overloading
Defining multiple methods in the same class with the same name but different argument lists (different number, type, or sequence of parameters).
34
New cards
Object Libraries
Collections of pre-written, reusable code (classes and objects) that streamline development by providing standard functionality.
35
New cards
Advantages of Object Libraries
Enable faster development, increased reliability, easier debugging, consistency, reduced costs, and access to specialized expertise.
36
New cards
Disadvantages of OOP
Includes a steeper learning curve, increased complexity, larger program size, potentially slower performance, and may not be ideal for all problem types.
37
New cards
Programming Teams
Collaborative groups of developers who work together using modular design and standardized coding practices to improve productivity and quality.
38
New cards
Advantages of Programming Teams
Faster development through parallel work, reduced dependencies via modularity, specialized expertise, and improved communication and innovation.
39
New cards
Modularity
The design principle of breaking a program into smaller, self-contained modules, each responsible for a specific function.
40
New cards
Advantages of Modularity in Program Development
Improves maintainability, readability, reusability, testing, parallel development, and scalability by isolating functionality into distinct components.
41
New cards
Class
A template containing methods and variables that model the state and behavior of an object; specific instances can be created from it.
42
New cards
Identifier
A name given to a package, class, interface, method, or variable.
43
New cards
Primitive
A basic data type in Java (e.g., int, long, double, char, boolean) that defines the kind of data a variable can hold.
44
New cards
Instance variable
A variable defined in a class that holds unique data for each object created from that class.
45
New cards
Parameter variable
A variable defined in a method's signature that receives a value (argument) when the method is called.
46
New cards
Local variable
A variable declared inside a method or block that is accessible only within that specific scope.
47
New cards
Method
A procedure defined within a class that represents the behavior or functionality of an object.
48
New cards
Accessor
A method (getter) that returns the value of an encapsulated (usually private) data member.
49
New cards
Mutator
A method (setter) that modifies the value of an encapsulated (usually private) data member.
50
New cards
Constructor
A special method with the same name as its class used to initialize new objects (instantiation).
51
New cards
Signature
The combination of a method's name and its parameter list, which defines how the method is called.
52
New cards
Return value
The value a method sends back to its caller after execution.
53
New cards
Private
An access modifier that restricts variables, methods, and constructors to be accessible only within the same class.
54
New cards
Protected
An access modifier that allows variables, methods, and constructors to be accessed within the same package or by subclasses.
55
New cards
Public
An access modifier that allows variables, methods, and constructors to be accessed from any other class.
56
New cards
Extends
A keyword used in Java to create a subclass, indicating that it inherits properties and methods from a superclass.
57
New cards
Static
A keyword indicating that a field, method, or inner class belongs to the class itself rather than any instance of the class.
58
New cards
Primitive data types
The basic types in Java (int, long, double, char, boolean, etc.) used to store simple values.
59
New cards
Selection statements
Control structures (if, if-else, switch) that enable decision making by executing different code blocks based on conditions.
60
New cards
Repetition statements
Looping constructs (for, while, do-while) that execute a block of code multiple times.
61
New cards
Static arrays
Fixed-size arrays that hold elements of the same data type and do not change size after declaration.
62
New cards
Internationalisation
The design and development of software to support multiple languages and cultural norms, often via Unicode, resource bundles, and locale support.
63
New cards
Ethical and moral obligations of programmers
The responsibility to write safe, reliable, and socially responsible code by ensuring quality, respecting intellectual property, protecting data privacy, and considering the societal impact of technology.
64
New cards

Recursion

A programming technique where a procedure or function calls itself with a termination condition, processing successive iterations until a base case is reached.

65
New cards

Recursive Algorithms

Algorithms that use recursion for clarity and elegant problem-solving (e.g., tree traversal, factorial calculation) but may use more memory and risk stack overflow.

66
New cards

Factorial (Recursive)

A recursive method for computing factorial defined as n! = n * (n–1)! with a base case of 1! = 1.

67
New cards

Trace Recursive Algorithms

A technique using a stack model to follow and debug recursive calls, showing how each call is stored and then resolved from the base case upward.

68
New cards

Object Reference

A variable that stores the memory address of an object; it points to the actual object in RAM rather than containing the object itself.

69
New cards

Abstract Data Type (ADT)

A high-level description of a data structure defined by its behavior (operations) without specifying its implementation details.

70
New cards

Lists (ADT)

A collection of elements with defined operations (e.g., add, remove, search) that can be implemented as arrays or linked lists.

71
New cards

JETS

The Java Examination Tool Subset, a simplified version of Java's standard library used in IB exams with essential collection methods.

72
New cards

Stack

An ADT based on Last-In, First-Out (LIFO) principles, supporting operations like push, pop, peek, and isEmpty.

73
New cards

Queue

An ADT based on First-In, First-Out (FIFO) principles, with core operations including enqueue, dequeue, peek, and isEmpty.

74
New cards

Binary Tree

A hierarchical data structure where each node has at most two children; used in searching, sorting, and representing hierarchical data.

75
New cards

Code Conventions

Standardized rules for naming, formatting, and organizing code (e.g., class names, method names, indentations) that improve readability and maintainability.