Why do we need to formally teach computing in school?
First, everyone needs to understand the idea of an algorithm.
Ask for directions and you realize how ill-trained people are in giving precise instructions. Filling a form is a nightmare because the instructions are incomplete and confusing, drafted by people untrained in basic algorithmic thinking.
Computer literacy is also essential. We have to go beyond the mechanics of word processors and spreadsheets and teach students how to construct coherent documents and effectively collect and organize data. We also have to teach them about security, privacy and ethics, to be safe and responsible citizens in an Internet-driven world.
What are the limitations in today’s computing curriculum?
One problem is the name: “computer science” is interpreted as the study of computers. The emphasis is on dissecting a computer into CPU, RAM and hard disk, reducing the subject to a taxonomy of body parts.
Computing, or computational thinking, is what we should be teaching. Computing is about problem solving. At its core is the idea of an algorithm – a systematic description of how to solve a problem. Woven into this is the notion of efficiency – how much time it takes, the resources you need, whether you can make the process simpler, faster, more robust.
The study of programming should teach all of this. Unfortunately, programming is presented in school in the same unsatisfactory way as science experiments. Rather than emphasizing experimentation as a route to discovery, students are encouraged to fudge results and note them down in copybook perfect journals. Likewise, programming is reduced to a set of standard problems for which “ideal” solutions are to be memorized and reproduced.
The school curriculum is too crowded to add new subject material. However, the time already allotted to ICT in junior classes can be productively restructured to teach computational thinking along with computer literacy.
Middle and senior school offers natural links to mathematics and science. Much of school mathematics involves executing algorithms – long division, taking square roots, computing gcd (greatest common divisor). We should integrate these concepts into ICT or computer science, rather than organizing subjects in disconnected silos.
With some planning, we can convey the essential ideas of computing to all school students without drastically disrupting the existing system. All we need is open mindedness and vision among school teachers and administrators.
Madhavan Mukund is the Dean of Studies at Chennai Mathematical Institute. He has been National Coordinator of the Indian Computing Olympiad, an algorithmic programming contest for school students, since 2002. He heads the ACM India Council and is actively involved with CSPathshala, http://cspathshala.org, ACM India’s initiative to introduce computational thinking in schools. He can be reached at [email protected] and http://www.cmi.ac.in/~madhavan.