click below
click below
Normal Size Small Size show me how
Programming Terms
YGK These Programming Terms
| Question | Answer |
|---|---|
| Detailed instructions for solving a problem | Algorithm |
| Scholar whose name is the root of "algorithm" | Al-Khwarizmi |
| Measure of steps an algorithm needs | Time complexity |
| Measure of memory an algorithm needs | Space complexity |
| Notation for expressing worst-case situations | Big O |
| Technique where an algorithm calls itself to solve smaller cases | Recursion |
| Recursion used as the last step of an algorithm | Tail recursion |
| Theorem used to calculate the big O runtime of recursive algorithms | Master theorem |
| Mathematical concept of vertices connected by edges | Graph (or Network) |
| A path that begins and ends at the same vertex | Cycle |
| Graph where edges have a numerical "cost" | Weighted graph |
| Graph where edges have an inherent one-way direction | Directed graph |
| Graph reaching any vertex from another with no cycles | Tree |
| Algorithm for shortest path between two vertices | Dijkstra’s algorithm |
| Two algorithms used to find a minimum spanning tree | Prim’s and Kruskal’s |
| Algorithms that split problems into smaller subproblems | Divide-and-conquer |
| Examples of divide-and-conquer algorithms | Merge sort, binary search, Karatsuba’s |
| Algorithms making the locally best choice at every step | Greedy algorithms |
| General sense of how code is structured | Paradigm |
| Paradigm using objects and classes | Object-oriented programming (OOP) |
| Definition of fundamental properties in OOP | Class |
| Specific example of a class in OOP | Object |
| Concept where a subclass gets properties from a parent class | Inheritance |
| Concept of hiding unnecessary details from other aspects | Encapsulation |
| Idea that different classes perform the same action in different ways | Polymorphism |
| Paradigm where functions compute values without side effects | Functional programming |
| Evaluating functions with multiple inputs in functional programming | Currying |
| Tool that converts human-readable code into machine instructions | Compiler |
| Specific format Java is compiled into | Bytecode |
| Software that executes Java bytecode | Java Virtual Machine (JVM) |
| Languages where code is turned into instructions as they run | Interpreted languages |
| Data type holding only true or false | Boolean |
| Data type holding text | String |
| Data types holding non-integer numbers | Floats and doubles |
| Languages where variable types are fixed and checked at compile-time | Statically typed |
| Languages where type errors occur during runtime rather than compile-time | Dynamically typed |
| Examples of dynamically typed languages | Python and JavaScript |
| Typing style where an object's capability is determined by its methods rather than its class | Duck typing |