In KTBYTE’s most recent sets of weekly competition problems, we chose the theme of Nature through Code to test contestants’ modeling and computer science skills. Individual problems focused on using semi-random Perlin noise to draw realistic landscapes, modeling the weather based on variable parameters, and investigating the recursive nature of trees and plants. While these types of problems draw from the skills taught in our core classes, they also give new programmers an opportunity to see the exciting intersection of nature and code. By gaining exposure to these questions at a young age, contestants are primed to wonder about the many ways computer science is used to understand the world around us.
How can computers inspire students’ interests in natural science?
In nature there exist many complex phenomena including migration patterns, colonies of insects, and even the human brain. These systems at first glance may seem completely unrelated to a metal box of hardware, but upon closer inspection are actually not so foreign from computer algorithms. These examples from nature all involve some form of emergence, or an entity exhibiting properties that its parts do not have on their own. As the field of computer science continues to grow the gap between what we consider to be natural and artificial becomes smaller and smaller.
Kids often wonder how groups of animals can move so fluidly together, whether in nature or their favorite video game. The concept of herd mentality used to be thought of as specific to the behavior patterns of individual species. The reality is that many groups of animals can be modeled with simple rules, derived from individual motivations like self-preservation. These groups often demonstrate swarm intelligence, or the collective behavior of decentralized, self-organized systems. For example, flocking behavior can be described by rules for separation, alignment, and cohesion. Using these general rules a computer scientist named Craig Reynolds was able to simulate a flock of birds. With this technology we are able to not only simulate reality but create more intelligent software and robots, able to adapt to changing conditions.
Can computer science be used to help the natural world?
Today’s parents face many questions about the future their children will inherit, especially in the face of climate change and increasing globalization. Ecosystems are ever-evolving, and it’s important for us to know how species are surviving or dying off. Better models and pattern recognition help us find this information. Computers have the capacity to hold a lot of information and present that information in a concise and readable format. In an article titled An ecological network approach to predict ecosystem service vulnerability to species losses, the complexity of an ecosystem is discussed along with the implications of changing ecosystems. This research attempts to find long term potential problems and helping to effect change before it’s too late. We know that climate change, endangered species, and pandemics are dangerous but what if we could address these before they become unsolvable? With nature-inspired algorithms and the power of modeling different outcomes people can come one step closer to helping the earth and ourselves.
KTBYTE students of all experience levels learn to see the applications of code beyond more complex computer programs. From the most beginner class to advanced competition prep, students apply their new skills to story problems derived from the natural world. Much like the synergy present in natural systems, we hope to inspire the collective curiosity of young problem-solvers to explore different aspects of their surroundings. By building confidence through excellence in the newest generation of computer scientists we can improve our understanding of nature and our relationship with the Earth.