This is a digital age and we are increasingly becoming dependent on digital technologies for our day to day activities. Does this dependence necessitate different kinds of abilities, alternative ways of thinking and hence developing new literacies? What does it mean to be digitally literate? What is computational thinking? In India, computer education has been a part of school curriculum since the late 1980s. However, the focus of computer education has mostly been about teaching computer applications in an instrumental manner and never on developing computational thinking. Today when the gap between the digital and physical is gradually narrowing, how relevant is computational thinking? These are some of the questions that this article will address. In addition it will also suggest ways and resources that teachers and students can use to learn introductory to advanced programming, and develop computational thinking.
The digital world
Look around you. Make a list of things that are digital. If you are sitting at home and creating the list, you probably would have included things like the computer, the smartphone, digital television, digital watch, camera, mp3 player, video games and the list might go on; if you are in an office, you are more likely to include printer, scanner, fax machine, coffee machine, digital notepad, etc. But what about the refrigerator, microwave oven, hot plate, air conditioner? Well, they too have significant digital components which control these devices.
Is digital then just limited to the visible gadgets and smart devices or is it more pervasive but hidden from our immediate purview? Think about your ATM card, PAN or Aadhaar cards or even driving license; all are digitally encoded. Think about the fruits and groceries that you purchase in the supermarket and which are tagged with bar codes. While paying at the counter, your ATM or credit card tracks you back to your bank account where you reside virtually as one of the digital components in a computer drive!
We are already witnessing a transition toward ubiquitous digitization with the merging of the digital and physical. That future is not very far when we will see objects, clothes, buildings all interacting with us and one another through small computer chips embedded in them!
Although the access to digital technology and literacy varies across people, it cannot be denied that digital technologies have not just become a significant part of our reality but are also in many ways shaping our reality. The way we engage in social communication, financial transaction, collaboration, entertainment, creative expressions or knowledge production, are all transforming drastically. And we have a generation of children growing up in a world where digital technologies are taken for granted in most spheres of their lives.
This means that our children today need to be equipped with different skill sets not just to deal with the new technologies as users but also get empowered to become conscious and critical creators of digital technologies. Computational thinking is increasingly being identified globally as one of the 21st century skill that our students must be equipped with to become innovators and creators.
Computer literacy to computational thinking
You might have come across words like digital literacy, computer literacy, programming or coding and computational thinking in the context of computer education. These are often used interchangeably. However it is important to understand the distinctions among these because each of these allows for different sets of capabilities to be developed and not understanding their difference would make us assume that introducing one would obviously support the other.
Computer literacy refers to the basic ability and knowledge of effectively using the computer, including its components (such as keyboards, pen drives, CDs) and its applications (such as Word processing, Spreadsheets, email).
Digital literacy is wider in scope than computer literacy and refers to the ability to use all digital technologies and systems effectively. Digital literacy, for example may involve the ability to use different software applications, to identify, evaluate and use information efficiently and safely or use digital tools to create and manipulate data.
While coding and programming are considered synonymous, programming is typically understood as a higher order thinking skill involving people who design logic or a set of instructions to the computer to solve a problem. As programming became more popular with non-computer and self-taught enthusiasts, coding became associated with lower order thinking of physically translating the logic or the programs into codes. Today ‘coding’ is increasingly being used as a more playful and non-threatening platform to introduce programming to beginners.
What is however more significant as a 21st skill is the computational thinking skill. Computational thinking is a way of looking at problems and solving them, designing systems and tools based on the concepts drawn from computer sciences. It involves solving complex problems by breaking them down into smaller and manageable problems (problem decomposition) using sequence of steps (algorithms), and generalizing and transferring this problem solving process to other problems (abstraction). While programming or coding is one way to develop computational thinking, this mode of thinking can be applied to other non-computer or non-programming contexts as well.
The distinctions between computer/digital literacy and computational thinking can be understood via the analogy of learning a new language. When one learns to ‘read’ a new language and becomes fluent in ‘reading’, it opens the doors to ‘reading’ the limitless literature that might be available in that language. Although the ‘reader’ is able to ‘read’, she is still not able to creatively express herself since she does not know how to ‘write’. Learning to ‘read’ a language may not necessarily translate into ‘writing’ in that language. In this analogy, computer/digital literacy is equivalent to reading while computational thinking is analogous to writing. Just as we equip our students with capabilities to both read and write in a language, we need to develop similar capabilities in digital literacy.
Computational thinking in school
Introducing computational thinking skills in schools is not about promoting all students to become computer software engineers/professionals, but to equip students to thinking about the world and its problems a new way. Jeannette Wing (2006), Professor of Computer Science at Carnegie Mellon University says: “Computational thinking is a fundamental skill for everyone, not just for computer scientists. To reading, writing and arithmetic, we should add computational thinking to every child’s analytical ability.”
The idea of introducing computational thinking among children is not new. Around four decades ago, Seymour Papert, a South-African American educator, mathematician and computer scientist proposed that computers could change the way people think and learn. He proposed an idea that was unusual of his times – that children should program computers. He developed a programming language called LOGO, which he believed would improve the way children think and solve problems. LOGO did not just enable children to express themselves creatively and critically, but also facilitated the development of communities of learners. His idea, however, was soon dropped since it was considered unfeasible and too challenging for children to learn programming. With Wing’s article published in 2006, there was a revival of Papert’s idea.
Computer education in Indian schools
Although India played a major role in the use of communication technology, many schools in India do not have a basic computer education except for the private urban schools. There is no uniform syllabus for computer courses and there is great variation across schools with each school having its own computer education program which is largely focused on developing computer literacy. Computers or other digital tools such as smartboard are also being used as teaching tools by teachers to help students understand difficult concepts in subjects such as physics, mathematics, chemistry or biology. There are also initiatives being taken by the government and non-governmental agencies to reduce the digital divide between the urban and rural schools by supplying low-cost laptops to students in rural schools.
With the vision of transforming India into a digitally empowered society, the current Indian government has launched the Digital India programme which aims to boost and transform the public services using information technologies. One of the visions of this programme is to achieve universal digital literacy. Although it is an initiative through which individuals become digitally literate only by exploiting the maximum use of digital technologies, it can provide a stimulus to schools to review their computer education curricula and aim to prepare their students to participate effectively in the future digital world.
Initiatives by IIT Bombay
There has been an initiative by the Indian Institute of Technology, Mumbai, which, in collaboration with InOpen Technologies, introduced a computer education curriculum for students from class 1 to 8. Using play and fun as the pedagogical approach, the textbooks are based on computer science syllabi and provide opportunities for children to engage in step-wise thinking and logical decision-making. The textbooks (e-books are free to download from the Internet) include activities, teacher training materials, instructions, worksheets and assessments sheets. These books are also available in eight Indian languages and two foreign languages. The activities align with the NCERT curriculum and have already been adopted by several schools. The books makes use of Scratch, a block based visual programming tool, developed by the MIT (Massachusetts Institute of Technology) Media Lab to teach programming.
How to get started
The good news about developing computational thinking is that you do not need to go to a college to learn about computation. You just need a computer and an internet connection and you can start right away!
Following are some of the online tutorials which are free and use non-threatening and playful means to teach programming:
Scratch is an online and free visual programming tool developed by the MIT Media Lab. The interface of Scratch uses Lego – like blocks with integrated programming instructions which children can drag from one place and drop into the programming area. Although it is designed for children from the age of 8 to 16 years, it is now globally used by people of all ages.
While SCRATCH programming website uses a more exploratory approach to computing and provides a platform to children for creative self-expression without literally teaching computational concepts, Code.org focuses mainly on teaching computer science concepts albeit in fun and playful ways.
Other tutorial websites include
Besides these online programming websites, Arduino is another platform that provides opportunities to learners to not just develop computing thinking skills but also learn basic to advanced electronics. It consists of both hardware and software and is like a micro-computer which can be programmed to make almost anything from blinking an LED light to creating a robot that solves Rubik cube!
You can hook sensors to the Arduino board and create digital objects that you can interact with and control objects in the physical world. To begin programming, you have to buy the Arduino board which is inexpensive and easily available. The Arduino software is free and can be downloaded from the Arduino website. Just like Scratch and Code.org, Arduino has a huge online community, which means that you can easily find online help and innumerable resources and ideas for creating different projects.
The interface of Arduino is unlike Scratch but there are innumerable tutorials available online with interesting project ideas that enable beginners to learn programming in fun and interesting ways.
8. S4A – Scratch for Arduino
S4A – Scratch for Arduino is a modified version of Scratch that allows one to connect Arduino to the Scratch program. It acts as a bridge for new learners, between the high level programming environment of Arduino and the simple visual, drag and drop programming interface of Scratch. S4A has many additional programming blocks that you can use to program your Arduino and control the sensors and components attached to it. The software has to be downloaded and installed into your system. Just like Scratch and Arduino, S4A has a large community of users that you can share your projects with or seek help when troubleshooting!
A few University courses which offer free, theory based courses on computational thinking and provide certificate for auditing the course are as follows:
2. MIT Opencourseware
3. Academic Earth
Way to go!
Today almost all disciplines are being influenced by computing technologies and there is an increasing rise in the development of new disciplines impregnated with computing. Obviously, students need to be better prepared for pursuing careers in these disciplines.
Indian schools have a long way to go in extending the scope of digital literacy among students and also among their teachers. The revolution in computer education is only beginning to be seen in Indian schools. However, it cannot be completed until our teachers also find the resources and opportunities to develop their computational thinking capabilities. Professional development programs for in-service teachers (whether computer or non-computer) could be aimed at encouraging them to learn programming through face to face interactions or online tutorials and certificate courses or through whichever methods that suits them best.
The author is a Faculty member in Srishti Institute of Art, Design and Technology, Bangalore, where she teaches courses related to Science and Technology and aims to develop interdisciplinary educational experiences and pedagogical practices across all levels of teaching/learning. She can be reached at firstname.lastname@example.org or email@example.com.