Tuesday, June 11, 2019

Computational Thinking: The Catalyst of Humanity

by Joshua Parmley

From the printing press to nuclear physics, the logic of computer science shaped history. Education should focus on that logic to shape the future.


Jeannette Wing, Columbia University's Data Science director, defines computational thinking as "taking an approach to solving problems, designing systems, ...[by drawing] on concepts fundamental to computing". It is an approach to problem solving guided by computational principles, such as the development of functions. For example, say your family can never agree on which restaurant to go to. You could bicker  each time you want to go out, or you could develop a function to streamline the process. For example, you might develop a tournament system. Everyone nominates restaurants in order to fill a bracket, then eliminates one name at a time by a majority vote. The last restaurant represents the overall best choice. This method develops an easy to follow procedure (function in computer and math languages) that prevents excessive contention and saves you time. It is a computational approach to decision making.


This methodology has existed for centuries and developed into the computer science take we have today. It is evident throughout history, and its successful application is accompanied with major changes in society and regional standards of living. Due to the incredible impact that computational thinking had in developing the world today, institutions of higher education should require students of all majors to learn how to apply computational thinking to their fields of work and study.

The Printing Press and Input-Output Functions


One of the earliest examples of computational thinking is found in Gutenberg’s printing press. The printing press changed the old process of handwriting books into a function with a simple input and output (see this short summary of the printing press). A simple function using an arranged sheet of
metal typeface covered in ink turns a blank page into a piece of text. Once that was complete, pulling
the paper through was simple. Before the printing press, the bulk of the work was putting ink on the paper, printing one word at a time by hand. Now, the bulk of the work was in setting the stage, or programming the function in computer science terms. This development changed the world, as the world of written communication exploded with the printing ease that came with the printing press. This use of computational thinking fueled the renaissance, as scripture was printed for the masses, and critical works of writing we spread for all to read and judge for themselves.


Arkwright's Water Frame: Functions Evolve


Computational thinking continued to develop in during the industrial revolution, as shown with Arkwright’s water frame which added a level of adaptability to the press's function. First, there were gears that could be used to adjust the force applied to the strands. This meant that the function could be modified easily, without having to pull the device apart (unlike the printing press, which required the typeface to be removed and completely reorganized). This was a more sophisticated way to adjust or "reprogram" the function. Second, there were several different spots for strands to run through, so the gears could change how one strand was being formed without changing others. Centuries later, computer science would develop programming statements that allowed different functions to be assigned to different inputs. Arkwright did this early on, and his water frame drastically reduced labor needs for forming thread. This kind of thinking used with was applied to all the inventions of the industrial revolution, making mass production possible for the first time and greatly improved the standard of living in the countries that embraced it.

Turning Theory into Practice

See the "Total Reactions:" number when the image zooms in.

On into more modern times, Computational thinking has been used to turn theory into reality. When the discovery was made that atoms could be split. there was a problem with the implementation of the theory. Engineers could only split one atom at a time, which was nearly pointless. Engineers decided to set up a chain reaction, where the atoms would split each other to produce large amounts of energy. With a clear input, uranium-235, and a clear output, energy from splitting millions of atoms, engineers developed a function based this chain reaction. They set things up so that after one atom was split, it would release neutrons to split two or more atoms, which would go on to split other atoms. This function would continue until there were no more atoms in the area or device to split. In computer science, this is known as a loop, which is a simple command to repeat a function until there is no more valid input, or some user defined condition is met. In the image above, 7 lines of code make a loop, which executes to print an R that represents a split atom. Based on one number of input the code models the chain reaction of nuclear physics (in the case shown to the right, approximately one million atoms are being split). While computer science uses computational thinking explicitly, this is evidence that the methodology has been applied for hundreds of years, propelling humanity into the future.

Humanity's next step

Sir Francis Bacon is attributed with the idea that “Knowledge is Power”, and his and other enlightenment thinkers proposed that understanding nature gives us power over it. This type of thinking is the heart of computational thinking. The more we apply abstractions and test functions regarding the natural world, the greater ability humanity must change their circumstances, and the world around them. With all political strife, civil poverty, and environmental issues that we are facing, we desperately need a greater ability to change our circumstances. To that effect, I believe that every college student should be required to take a computer science class, regardless of their major, so they can have direct contact with computational thinking. As students adapt computational thinking to diverse majors, humanity will benefit from problems being solved in diverse areas of life.

Computer Science is often seen as a hard, lifeless STEM field. Current academic discussion has leaned towards generalized and liberal educations, that prioritize critical thinking skills over “hard” skills. To those engaged in recent academic discussion, my suggestion may seem ridiculous and a break from audience expectations. However, I believe that computational thinking is the art of computer science, and that it gives new live to problem-solving. I am a Computer Science major because of this methodology, and I really believe it can again change the world.

Image Credits:
"HenryMarkram: Brain research & ICT futures" by Cea. is licensed under CC BY 2.0
"Nuclear Chain Reaction by power of two Simulation" by Joshua Parmley (the author)

Source Credits:
Computational thinking and thinking about computingJeannette Wing; Philosophical Transactions of the Royal Society
The Printing PressThe History Guide: Lectures on Modern European Intellectual History
Francis Bacon (1561—1626) - David Simpson; Internet Encyclopedia of Philosophy



No comments:

Post a Comment