It was once popular in K-12 schools to teach computer programming. Languages like Logo, BASIC and HyperTalk used to be taught widely. With all the pressures that young people must deal with today, how can we justify the notion that programming studies be required in our schools? This article will explore this subject in brief.
One great mistake in the field of human endeavor with respect to computers is to overlook how they can be used to think differently about the world we live in. Because most people are instrumental thinkers, it can be more or less taken for granted that any new tool that is invented will be applied to the kinds of work and ideas that already exist. Certainly the computer certainly has spawned lots of new ideas, but its potential has been largely unrealized. In many classrooms computers are used as way to automate drill and repetition, and not as a medium to help the student learn how to learn better.
In the classroom for various reasons (which may relate to money, politics, ideology, and human nature) computer literacy has been ill-defined and paid lip service to. The ability to turn on a computer and operate various appliances like web browsers, instant messaging clients, word processors and the like without the slightest notion of how they actually work is a potentially harmful form of dependency.
Without being given at least a basic understanding of programming our children will not understand what a computer actually is and how it works, and they will not be truly computer literate. This can result in their subjugation to those who use the computer to run the public and private infrastructure. This is no different than other forms of exploitation within other realm of knowledge. As a simple example, a driver who understands how a car works benefits greatly whether driving on the road, broken down at the roadside, or at the counter at the repair shop.
Possessing a true computer literacy would not be of much value in an industrial age, but we are in an information age and so we are surrounded by computers. They are in our workplaces, our cars, our homes, our appliances and our pockets. We rely on these devices and we trust them to work and to give us good information.
As our children grow up they will need to make wise decisions about how computers are used in critical matters of life. As a real and current example, let’s consider computerized voting machines. There is controversy about whether the convenience of such systems is worth the cost of not being able to able to verify the integrity of their operation. An understanding of how computers really work is crucial to knowing how to think about such things. The people running our own legal and government institutions have not demonstrated a sufficient grasp of the issues, but the next generation could be better prepared if we decide it is important.
Is computer programming helpful for enhancing other kinds of thinking in addition to making people wise about the role that computers play in civil society? Let’s cover a few ways that programming is believed to be helpful to thinking and learning.
Organizational – Programming requires that things be organized. Values, functions, and presentation all must be put in their proper place.
Procedural – Writing instructions for a computer forces the programmer to think and understand procedure. This involves understanding and planning.
Abstract – Once the procedural skills are in place, a more advanced programmer will learn to think abstractly. This involves deciding what the program does (what it really means) and dividing the procedural parts up into general ideas.
Mathematical – Not the simple act of computation (3+4=7) or even algebraic thinking, but a real experience of how numbers can be important in the relationships between ideas.
Critical – To create a computer program it is important to weigh one idea against another, and the act of debugging a computer program requires one to think deductively.
It is important to realize that these ways of thinking can be taught without the use of computers. They can be taught in the course of reading and critical writing, debate, scientific discourse, history, politics, musical studies, and art (does this sound like your school?). Computer programming can enhance the benefits of these other activities.
In summary, given the very pervasive and growing impact of computers in our world we would be wrong not to provide our children with a profound understanding of computers and how their lives will be impacted. What’s more, the other ways in which programming improves thinking are useful and enriching in many wide-ranging ways.