- Routine problem
- They are common and occur frequently in similar conditions. These problems often have pre-defined solutions and can be solved using standard procedures and algorithms. Solutions are standard and do not require creativity.
- Non-routine problem
- They are complex and do not have straightforward solutions. They require creative thinking, experimentation, and new strategies to solve the problem.
- Algorithm
- A structured approach to problem solving. A step-by-step procedure or set of rules used to solve a specific problem. Features: There must be inputs. There must be outputs. It must be definite. It is finite, correct, and efficient.
- Heuristic
- An approximate approach. It finds a satisfactory solution in a place where an optimal solution is impracticable. It doesn't guarantee a perfect solution but is aimed at finding a good enough solution quickly. It is applied when you can't get an optimal solution.
- Abstraction
- Focuses on relevant details and not irrelevant details. Abstraction can be applied in software development, artificial intelligence, and cybersecurity.
- Analogy
- Using past experience to solve a problem. Features: Uses past experience; encourages pattern recognition commonly used in machine learning.
- Brainstorming
- A group or individual problem-solving technique where multiple ideas are generated. Features: Encourages creative thinking; mostly used in business, software development, and research.
- Trial & Error
- Trying different solutions with the intention of taking the best.
- Hypothesis Testing
- This involves simulating an assumption and testing it through experiment or observation.
- Reduction
- Simplifies a complex problem by breaking it down into simpler equivalent problems that are easier to solve. Mostly used in mathematics and computing.
- Literal Thinking
- Involves applying a logical and direct approach to a problem solution without assumption or abstract interpretation. Features: Avoids assumption and abstract interpretation.
- Means-end Analysis
- It involves comparing the current state of a problem with a desired goal and determining the best way to close the gap.
- Proof
- The process of logically verifying the correctness of a solution using mathematical or formal proving.
- Divide and Conquer
- This is where a complex problem is divided into smaller tasks, solved individually, and the solutions are combined.
- Definition
- Python Programming is a script of sequence information and commands evaluated and resolved by an interpreter called a shell. It consists of primitive constructs, syntax, and static semantics.
- Numeric
- Scalar objects assigned to variables used for mathematical operations.
- Sequence Type
- Used to store ordered, changeable collections.
- String (str)
- Represented by data in a single quote or double quote in the memory.
- Set
- Ordered and mutable collection used for storage of unique elements and can't be accessed by using indexing.
- The while Loop
- Repeatedly executes a code block as long as its condition remains true.
- Functions
- A function is a subprogram or module and a unit of a program. In some programming languages, it is called a procedure. It performs a specific task and is reusable. You can call a function as many times as required.
- Local variable
- A variable that exists within a function.
- Global variable
- A variable that exists outside functions.
- *args
- Defines undefined positional values in a variable.
- **kwargs
- Defines undefined keyword values in a variable.
- Object-Oriented Programming (OOP)
- OOP is a programming paradigm that organizes software around objects. An object means instances that bundle together data attributes.
- Encapsulation
- Bundling data and methods; private attributes accessed via getter/setter methods.
- Inheritance
- A child class inherits properties from a parent class.
The 9 topics define many more terms than these — the full set, with flashcards, is in the notes.