1/66
Vocabulary-style flashcards covering key terms and definitions from the OO Programming course notes.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Object-Oriented Programming (OOP)
A programming paradigm focusing on objects, classes, and encapsulation; used in the course to teach OO concepts.
Java
The primary teaching language used to illustrate OO concepts; used in practicals and discussions.
Virtual Machine (JVM)
A software layer that runs Java bytecode by translating it to the host machine's instructions, enabling platform independence.
Bytecode
Java's intermediate, platform-independent instructions produced by compiling Java source.
Write Once, Run Anywhere
Java's slogan describing its ability to run on different platforms via the JVM.
Platform
The hardware/OS environment on which software runs; Java aims for platform independence.
High-Level Language
A language that abstracts away hardware details (e.g., Java, C++) and is compiled to lower-level code.
Compiler
Tool that translates high-level source code into lower-level code (bytecode or machine code).
Binary Executable
Machine code file that runs directly on a specific CPU architecture.
Imperative Programming
Programming that uses mutable state and step-by-step commands to change data.
Functional Programming
Programming based on mathematical functions and often immutability of data.
Lambda Calculus
A formal mathematical framework of function abstraction used as the theoretical basis for functional programming.
Von Neumann Architecture
Architecture with shared memory for code and data; a basis for imperative programming.
Turing Machine
An abstract computational model used to study computability.
Computability Problem
Question of which problems can be solved algorithmically given unlimited resources.
Computer Architecture
The set of processor instructions and organization defining how software runs on hardware.
x86
A widely used instruction set architecture for PCs, originally from Intel.
ARM
A processor architecture used in many devices, including mobile and embedded systems.
MIPS
A RISC architecture used in academic and some commercial contexts.
SPARC
Another processor architecture used in various systems.
Java Platform
The runtime environment (JVM plus libraries) that enables Java programs to run across platforms.
Memory (RAM)
Large, volatile storage used to hold programs and data during execution.
Registers
Small, fast storage locations inside the CPU used for immediate calculations.
Program Counter (P)
The CPU register that points to the address of the next instruction to fetch.
Fetch-Execute Cycle
The sequence of fetching, decoding, and executing instructions in a CPU.
Memory Slot (Byte)
A memory location that stores one byte (8 bits) and is addressable.
Address
A unique identifier for a memory slot in RAM.
Byte
An 8-bit memory unit; the fundamental addressable storage unit.
32-bit Register
A CPU register that stores 32 bits of data.
64-bit Register
A CPU register that stores 64 bits of data.
8-bit Byte
The basic 8-bit unit of memory storage (a byte).
128-bit Big Numbers
Data larger than a single register, requiring chunking across multiple slots.
High-Level Source Code
Code written in a high-level language before compilation into bytecode or machine code.
Binary Executable for CPU
The machine code program produced to run on a specific CPU architecture.
Primitive Types
Built-in data types provided by a language as the basic data building blocks.
boolean
Primitive type representing true/false values.
char
Java’s 16-bit Unicode character type.
byte
8-bit signed integer in Java (-128 to 127).
short
16-bit signed integer.
int
32-bit signed integer.
long
64-bit signed integer.
float
32-bit floating-point number.
double
64-bit floating-point number.
Unicode
Character encoding used by Java; char uses 16-bit Unicode.
Signed Integer
Integer representation that can be positive or negative.
Memory Address Width
The number of bits used to address memory (e.g., 8, 32, 64).
ML (Meta Language)
A functional programming language discussed in notes; includes some imperative features.
The Java Tutorials (Sun)
Official Java tutorials and resources provided by Sun Microsystems.
Design Patterns (Gamma et al.)
A classic book detailing reusable object-oriented design patterns.
Tripos Questions
Past exam questions used for practice in coursework and exams.
Course Web Page
Source of updated notes, code from lectures, and sample questions.
Practical Workbooks
Course notebooks containing practicals; several workbooks are used.
7 Workbooks
Total number of practical workbooks to complete in the course.
CST/NST Ticks
Course-specific points: CST and NST students must collect ticks as required.
Practical Work
Hands-on programming sessions complementing theoretical lectures.
Abstraction Levels
Idea of layering concepts from hardware up to high-level programming.
Encapsulation
A fundamental OO concept where data and behavior are bundled in objects.
Java Platform Independence
The ability of Java programs to run on different platforms via JVM.
Object
A data structure that bundles state and behavior in OO programming.
Class
Blueprint for creating objects in OO programming.
Inheritance
OO mechanism where a new class inherits properties from an existing one.
Polymorphism
OO feature allowing objects to be treated as instances of their base class.
Encapsulation
OO principle of hiding internal state and requiring interaction through methods.
Method
A function defined inside a class that operates on objects.
Variable
A named storage location used to hold data.
Type
A classification of data (e.g., int, boolean, char) that determines allowed operations.
Practical vs Theory
Balance between hands-on programming and abstract concept discussion in the course.