Learning to think logically
Ramya Ramalingam
My favorite scene in the movie ‘My Cousin Vinny’ comes towards the end. The lawyer-protagonist, who failed his bar exam five times and has never had a court-case before, saves two innocent teenagers (who are mistakenly accused of robbing a store and shooting the clerk) from a murder charge. He invalidates the prosecution’s case, not by using fancy words or legal loopholes, but by using simple yet unyielding logic to prove the prosecution’s witnesses wrong.
Logic is a system of reasoning that is governed by strict principles of validity. As a basic tool, logic is invaluable to children and adults alike, and is unfortunately not given importance as part of school curricula. Schools should encourage children to think logically from a young age rather than memorize lots of subject material.
Logic puzzles are a great way to introduce this topic to children. Consider the following puzzle about escaping a castle. You encounter two guards, each of whom is standing in front of a door. You know that one of them always tells the truth and the other always lies, although you don’t know which one lies and which one tells the truth. While both doors look identical, one of them leads to freedom, and the other leads to the dungeons. With exactly one question to either of the brothers, how will you ascertain which door to leave from and make your escape? There are many similar logical puzzles that will test children and allow them to develop logical reasoning skills.
Logic is one of several computational thinking skills that is worth teaching children. But are such skills relevant to all students? The answer is yes. It is becoming progressively clear that computing itself is no longer something that can be associated solely with computer engineers and people with technical backgrounds.
In fact, Dr. Joseph, a leading Indian computer scientist and author of Digital Republic, says, “Increasingly, the world is going to see that computing is not an exotic skill exhibited by a few nerds but a fundamental branch of knowledge that has vital applications in everyone’s daily life. These skills need to be learned by everyone because they will change the way they see problems.”
Clearly, it is important for all children to have basic digital literacy. This includes many base-line abilities like being able to use smartphones, laptops, word processing and spreadsheets (most of which children are often able to learn themselves), but in recent years, there have been many more additions to the computing skills that children need to know.
Professor Madhavan Mukund, Dean of Studies at the prestigious Chennai Mathematical Institute and a professor of computer science, says, “Obviously, some amount of digital literacy is a must. Till now, digital literacy meant using word processors, spreadsheets, etc. With the increasing spread of online banking, e-wallets, etc., digital literacy has to be extended to encompass ideas about privacy and security, as well as some basic awareness, at a practical level, of how computer networks function – for instance, connecting to different types of access points, understanding the role of domain name servers, basic diagnosis of dead network connections, etc. However, the computing skills required for learning, in general, now go far beyond basic digital literacy. In every area, from mathematics to music, computational tools are being used in an indispensable way. All of us need to have some awareness of and exposure to the basics of algorithms and programming so that we have a good understanding of the usefulness and limitations of computers. In this sense, basic computing skills are becoming as essential as basic mathematics skills and should be addressed within the standard school curriculum for all students, not just for those who choose to specialize in computer science.”
Dr. Joseph adds, “Just as the use of arithmetic is vital in our lives, from doing shopping to calculating income tax or working out other problems, computational solutions need to be found for all sorts of problems that are otherwise solved in complicated ways, or left unsolved.”
Indeed, there are some very useful and interesting aspects of computing that is in the interest of schools to teach children. Computational thinking is one of these basic concepts.
What is computational thinking?
Computational thinking is a way of approaching a problem in a structured manner, so that a solution can be effectively carried out by either man or machine. It is not necessarily something used only in relation to computers; many of us, whether we realize it or not, apply computational thinking in our day-to-day life.
Say, we have a row of books or CDs jumbled up, and we wish to arrange them in alphabetical order. One way is to arrange the books in a haphazard manner without following any systematic procedure. But a more efficient and structured solution is to first take the second book, and move it so that the first two books are in order. Then the third book can be moved forward until it is in the correct position that puts the first three books in order. We can continue in this manner (with the fourth book, and so on) until all the books are arranged correctly. This manner of sorting is also a method used by computers (programs) to sort arrays of values they store.
Computational thinking is important because it gives us an alternate way of looking at problems. The reason humans and computers work so well together is that we have complementary skills. Some of the ways we have designed computers to solve problems are very efficient and it is worthwhile for us to assume a similar mindset when trying to solve certain problems.
Some of the important facets of computational thinking are: abstraction, pattern-recognition, and algorithms.
Algorithms
An algorithm is a systematic procedure used for solving a problem.
Dr. Joseph says: “We follow algorithms for all sorts of purposes. That is a good reason for children to learn about algorithms. Another reason is because we are increasingly surrounded by computing objects in our lives. Whether it is an app that you download into a cellphone, or a word-processing package, the algorithms they use are implemented using a program. It is important that we understand the basic principles behind each of these. Everyone needs to have a fundamental understanding of a computation as a sequence of basic steps that can be used to solve a problem.”
Abstraction
Abstraction refers to the taking away of specific attributes of something to reduce it down to its essential characteristics.
Consider a dance performance, with the dancer swaying and moving in perfect sync with the musicians singing and playing in the background. What connects the two to each other? Beneath the differences of the two forms, lies a common backbone, a rhythm that ties them together. This is an abstraction. Such abstractions are greatly useful and enable new capabilities. For example, the technology of MIDI (Musical Instrument Digital Interface) is based on the abstraction of a musical instrument and the interaction between a performer and a musical instrument. This is the basis for music software that allows a composer to compose music with a few key strokes and hear it played back by a virtual orchestra instantly. Where Mozart and Bach had to rely on their imagination to auralize the sound of the music they were writing, today’s music student can get instant feedback on what their music is going to sound like.
These facets of computing are rarely explained in a general school-setting, that is, they are only discussed academically (and not practically) in computer science classes. It is important for each and every student to understand at least a basic version of these concepts.
So how can we teach these principles in a school-setting in an effective manner?
Introducing children to computational thinking is best done in a hands-on, practical manner. Playing games and asking interesting, thought-provoking questions regarding them are good ways to introduce these topics. Dr. Joseph says, “I think all children should be taught what an algorithm is and how to write a short program. For example, to write a program that will take an ant from one place in the room to another by following the lines in a grid (the only movements allowed are left to right, right to left, bottom to top, top to bottom, one square at a time). You can play this game by blindfolding a child and then asking another child to give instructions to this child in order to take the child from one corner of the room to another. Even better, the instructions must ensure that the child avoids obstacles on the way. Much, much, better would be to make sure that the two children do not see each other when doing this! Then, think of finding the shortest set of instructions to do this task. How can you be sure that it is the shortest and that no shorter path exists?”
Why are these ideas important?
While all the other subjects taught in school are extremely vital and important, it is necessary to set aside some time to work with these concepts of computational thinking. Further, this time should be used efficiently, introducing children to the fundamental topics that really matter.
As Prof. Mukund says, “It is obviously a challenge to take time away from other subjects to teach computational thinking skills. Fortunately, many schools have some time set aside for teaching ICT. This time can be better utilized by spending less time on digital literacy and more time on computational thinking. Of course, we must still impart skills such as word processing or using a spreadsheet, but these should be tied to meaningful activities in other subjects – e.g., prepare a professional looking document on a topic in history, or use a spreadsheet to collect and analyze data from the world around you.”
“Most of school level mathematics is computational. It should be possible to formally introduce concepts regarding algorithms – correctness, efficiency – while teaching these topics without eating into the time available. Similarly, computing can be incorporated into calculational exercises in subjects such as physics and chemistry. Building a bridge to known topics makes it easier to digest the task of learning programming, instead of working on a small set of artificial examples with no connection to daily life.”
Teaching school children these important concepts is necessary, but it is equally important to explain why these ideas are so indispensable/significant. If children can be shown examples of using computational thinking in real-life scenarios, or how algorithms are ubiquitous in so much we do, their natural curiosity will be triggered. It will be easier for them to clearly see how using these techniques is beneficial. Moreover, it will become apparent to them in how many different spheres of life they can use computational thinking.
The author is an alumna of National Public School, HSR Layout, Bengaluru. She is passionate about mathematics and computer science, and is also interested in reading, writing and music. She can be reached at ramalingam.ramya@gmail.com.