How much should you know about computing, if you are not a software developer? In his podcast titled To Code or Not to Code, Grady discusses how much a functioning member of society today should know about computing.
A couple of my favorite snippets from the podcast:
Knowledge and understanding have a funny way of expanding.
Creating to code is a gateway to thinking computationally
Thinking computationally? What does that mean? Why is that important?
Computational Thinking (CT) is a problem solving method that uses computer science techniques. The term computational thinking was first used by Seymour Papert in 1996.
Jeannette Wing, Head of the Department of Computer Science at Carnegie Mellon University (CMU) has been one of the most eloquent Computer Scientists to argue the case. Computational Thinking isthe skill of the 21st century
So what is Computational Thinking? Well it is a collection of diverse skills to do with problem solving that result from studying the nature of computation. It includes some obviously important skills that most subjects help develop, like creativity, ability to explain and team work. It also consists of some very specific problem solving skills such as the ability to think logically, algorithmically and recursively. It is also about understanding people. Computer Science is unique in the way it brings all these diverse skills together.
So back to the original question – how much should you know about computing? It depends.
- Everyone should have a high level understanding of what computers are capable of, how they work and where they exist (in desktops, laptops, mobile devices, tablets, cloud and even in cars, smart devices)
- Engineers/Scientists should know how to use them as tools to improve their work. They may need to learn simple scripting language like Python
- Students should know “computational thinking” since it will help them build problem solving skills.
- Not every one needs to be a programmer but learning a simple language will give them a chance to appreciate thinking like a programmer. The essential skill one need to acquire is to take a complex problem, break it into simpler/manageable problems and apply existing knowledge to solve the simple problems.
- To find patterns (some level of abstract thinking) to apply solutions from one domain to an entirely different domain.
What do you think? Do you think Computational Thinking is an essential basic skill?