Sarai is a 4th grader whose favorite subject is science. Her favorite part about science class is doing experiments, like testing different conditions on the growth of bean sprouts and conducting surveys to answer interesting questions. Jackson is a 5th grader who always looks forward to participating in the Robotics Club at his school. For the past few weeks, he has been busy preparing for the upcoming competition by helping his team design, build, and test a robot that can pick up, carry, and drop off a small bag of marbles. Anika is a 3rd grader who enjoys math. She recently solidified her understanding of fractions, decimals, and percentages by making her own store and calculating the prices of items after discounts and taxes for her class project.
What do these three elementary school students all have in common? It’s pretty clear that they all have an interest in STEM. If they continue in their favorite subjects, then another thing they all have in common is that they will end up using software — or machines controlled by software — to help them complete their work.
When Sarai grows up, she will program machines with robotic arms to help her analyze protein samples in a biochemistry lab. She can also code a program to help her analyze all that data and formulate patterns and conclusions for her experiments. When Jackson grows up, he will use computer-aided design (CAD) software, like AutoCAD, to design realistic 2D and 3D models and carry out simulations for everything from buildings to robots. When Anika grows up, she will use software packages like Mathematica to perform millions of mathematical calculations in an instant. Software isn’t just hidden inside the T in STEM. It is hidden inside every one of those letters and every single sub-discipline that each of those letters represent. And for all STEM fields, software makes the work easier and allows us to do things in minutes that would previously have taken humans a lifetime to complete.
An example from math: Mathematicians often use software to create models that they can experiment with. Some mathematicians work with manifolds, which roughly speaking, are objects that look like a point, line, plane, etc. when you “stand on it”. More interestingly, the shape of the object that you’re “standing on” is not the same shape that you see around you. For example, when we stand on the Earth, the land that we stand on looks like a plane (a rectangle of infinite size). It looks flat. But the Earth is round; the surface is a sphere. The surface of the Earth is a manifold. Another example is a circle. Imagine if we drew a circle on a piece of paper and shrunk ourselves really small onto the edge of the circle. If we walked on the edge of the circle, it would feel like walking in a straight line. A circle is a manifold. Studying manifolds makes analyzing complex objects simpler.
An application of manifolds shows up in image and video processing. Images contain many pixels, and the number of pixels determines its dimensions. For example, a 100x100 image has 10,000 pixels, so it exists in a space that has 10,000 dimensions (here the concept of dimensions is the same as the way we think about 2D and 3D objects). But for people working with images, they’re not interested in every single pixel. They’re only interested in the pixels that make up the parts of a stop sign, let’s say. Since there are fewer pixels, those pixels that make up a stop sign exist in a space that has fewer dimensions than the image itself. The shape of the stop sign is different from the shape of the image, making an image a manifold.
Mathematicians use this idea when working with images. Specifically, they use software (e.g. MATLAB) to build models of manifolds to try to model the parts of the image they’re interested in. Working with models allows them to manipulate them, leading to applications like generating completely new images without having a camera and restoring the pixels of images (video interpolation).
Software is also used in flow cytometry, which is a technique used to study the characteristics of cells. (Interestingly enough, cells are manifolds as well.) Researchers take blood and analyze the cells by looking at certain features and finding relationships among them. One application of flow cytometry involves deciding if someone is sick — for example, deciding if they have leukemia — by comparing their cells to those belonging to a person who is sick. These kinds of comparisons are the basic idea behind machine learning. Researchers write code to build a machine that can learn what a sick cell looks like and use that information to predict the condition of other cells. In the world of STEM, software is EVERYWHERE. It’s inescapable. From the classroom, to the lab, to the field, you are going to find software being used all the time. The nature of STEM is still the same: discovering the truths hidden in nature. Now, we have software to help us find answers faster and more efficiently.
Imagine if everyone knew how to code. Imagine if everyone was able to find answers faster and more efficiently. No longer would those fluent in STEM have to wait for those fluent in coding to help them find the answers they’re looking for. Think of all the new ideas and advancements that would be made possible by everyone’s contributions.
This is the world we are living in right now. A world driven by software built by coders.