2023-04-30
The work is licensed under
a Creative
Commons Attribution-NonCommercial-ShareAlike 4.0 International
License.
DDC (Definitions, dependencies, and constraints) is a framework of problem=-solving techniques.
A definition in STEM is, typically, an equation. However, a definition can also take some other forms. For example, conjunction (more commonly known as “and”) can be defined using a table, such as the following:
\(x\) | \(y\) | \(x \wedge y\) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
In this case, there are several components to the definition. First,
there is the symbol representing the concept. The symbol (\(\wedge\)) is how mathematicians refers to
conjunction (when the rest of us just spell out and
!).
Second, there is the table. Knowing how to read the table is important. Each row in the table refers to a specific case of using the conjunction operator.
Together, definitions form a mesh that models the reasoning of a particular subject. A definition may depend on other definitions. A better term to use is “relationship”, how does one definition relate to other definitions.
For example, in physics, velocity is the first derivative of displacement over time, \(v=\frac{dx}{dt}\). Acceleration, on the other hand, is defined as the first derivative of velocity over time, \(a=\frac{dv}{dt}\).
These two definitions can then be related so that acceleration can be defined as the second derivative of displacement over time, \(a=\frac{d^x}{et^2}\).
A constraint is a limitation. It is often expressed as a conditional that has to be true. For example, in the analysis of an electric circuit, all points of a node has the same electrical potential. At the same time, the current going out of the source of a power supply must be equal to the the current going into the sink.
Constraints can also be in the form of facts that are either given, assumed, or observed.
In problem-solving, the so-called problem is more like an objective, something to be accomplished. Generally, this entails “figuring out something is previously unknown.”
For example, in code development, one case of problem-solving can be figuring out the defect causing a program to behave erroneously. In mathematics, one case of problem-solving can be figuring out the value of one or more variables. In business, one case of problem-solving can be figuring out a business plan to achieve a particular sustained cash-flow.
The actual definition of the problem to be solved, however, is not as simple as it seems.
In the case of debugging a computer program, what exactly is the program supposed to do? It may be relatively easy to specify the correct outcome of a single test case, but what about the general case? Are there restrictions applicable to the input of a program? What is the description of the proper outcome of the execution of a program/code given the restrictions of the input?
Many problems associated with problem-solving (pun totally intended) has to do with the problem itself not being well defined/specified.
Given a well-defined problem, “solving the problem” is the process to find a solution to the problem. This process is often described as magical performed by wizards.