To understand how data works, we also need to understand the lifecycle of data as it moves through the stages and activities in the data supply chain. There are three distinct stages:
1) Disclosure by a human or a sensor or a system, during which data is acquired and stored;
2) Manipulation, during which data is aggregated and analyzed; and
3) Consumption, where data is used, shared or sold, and disposed of.
Computational thinking is a mindset that allows machines and humans to work together to solve real-world problems. We need more than buzzwords that make us sound cool, but also a deeper understanding, allowing us to discuss tech meaningfully. Programmers tend to think of problems as computations, but business stakeholders usually think in terms of packaged solutions. So, to collaborate effectively, we have to do something called decomposition: breaking down a large, complex problem into several smaller, simpler ones.
For example, to decompose the task of drawing a human face, we could break it into step-by-step instructions. First, draw a circle, then draw the lips and the eyes. If there is a variable, like hair, you might have parallel steps: Is the hair spiky or smooth? Based on the choices you make, the next steps might change. As you decompose a problem into smaller steps, you also practice abstraction: creating a model of a system that leaves out unnecessary parts, while allowing us to see how different pieces fit together. In our example, a face has turned into a collection of individual features. And each feature is comprised of lines, shapes, or strokes of a pen.
Another element of computational thinking is looking for patterns that are reusable in multiple contexts, like building blocks. As organizations go digital, they often end up with many parallel systems that are built 'from scratch,' creating a digital ecosystem that is expensive and complex. The challenge they're faced with now is to standardize parts of that complexity without constraining anyone, so everyone can focus on what they do best. These reusable building blocks can be used to create algorithms. An algorithm is a series of specific instructions telling a computer how to process data, make decisions, or solve problems. Algorithms can be combined to make programs or applications so they can work together to process data in useful ways.
When evaluating data sets, it's helpful to prioritize attributes. It can be time-intensive or difficult to assess the potential analysis cost of data, so it's often helpful to start from a dataset's alignment with the time frequency, geography, etc. before attempting to compute more advanced criteria. Evaluating data sets for unknown future uses is very challenging, so it may be helpful to engage in design thinking and/or practical futurism exercises to focus your evaluation.