1/22
Flashcards for reviewing Object Oriented Programming lecture notes.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Object Oriented Programming Course
A new course that absorbs what was 'Programming Methods' and provides a more formal look at Object Oriented programming with an emphasis on Java.
Importance of Understanding OOP Principles
Understanding the underlying principles of OOP allows you to transition quickly to a new OOP language.
Java Ticks Course
Meant to complement your practicals in Java, with some material appearing only here, only in the practicals, or in both.
OOP Concepts Books
Books for those learning to first program in an OOP language (Java, C++, Python).
Course Web Page Resources
Updated notes, code from the lectures, and sample tripos questions can be found on the course web page.
Computability Problem
The computability problem involves determining what can be done with infinite computing power and how to do it.
Abstract Mathematical Programming Approach
An approach to understanding computers using functions and leading to Functional Programming (e.g., ML).
Building a Computer Approach
An approach to understanding computers by building a computer and extrapolating what it can do from how it works, leading to imperative programming.
Functional Languages
Languages that are mathematically oriented and have the notion of functions as building blocks of computation.
Imperative or Procedural Languages
Languages that have variables (state) and procedures as the main building blocks, including object-oriented languages such as C++ and Java.
Procedure
A function-like chunk of code that takes inputs and gives outputs but can have side effects.
System Memory vs. Registers
System memory provides a very large pool of memory, while registers are fast but small chunks of memory built into the CPU.
Program Counter
A special register that tells the computer where to look to get its next instruction.
Memory Organization
Memory is viewed as a series of slots, each with a set size (1 byte or 8 bits) and a unique address.
High-Level Languages
High-level languages are human-readable and are translated into binary executables by compilers.
State (in Imperative Programming)
Represents data using explicit chunks of memory used to store data values.
Imperative Program Execution
A program is viewed as running a series of commands that alter ('mutate') state to give the final result.
Machine Architecture
Each set of processors that support a given set of instructions is a different architecture.
Compilation Process
Compiling source code specifically for each family of processors.
Virtual Machine
Sun came up with a Virtual Machine – a sort of idealized computer.
Bytecode
A set of instructions for a Virtual Machine.
Primitive Types
High-level language has a series of primitive (built-in) types that we use to signify what’s in the memory
Variable
A name used in the code to refer to a specific instance of a type