Computational Thinking

From Google: What is Computational Thinking? Computational thinking (CT) involves a set of problem-solving skills and techniques that software engineers use to write programs that underlay the computer applications you use such as search, email, and maps. Below is a list of specific techniques along with real world examples from our every day lives.
Google CT is a rather interesting and new meme. It seems to be a challenge to get students interested in Computer Science as a career. In my own work in a school, I was rarely asked ‘What do you think of Computer Science’. Admittedly there are certain gender factors: i.e. girls are rarely a priori interested in Computer Science.
Digital Natives
It has become commonplace to refer to young people as “digital natives” due to
their apparent fluency with digital technologies.15 Indeed, many young people
are very comfortable sending text messages, playing online games, and brows-
ing the Web. But does that really make them fluent with new tech- nologies?
Though they interact with digital media all the time, few are able to create
their own games, animations, or simulations. It’s as if they can “read” but
not “write.” As we see it, digital fluency requires not just the ability to chat,
browse, and interact but also the ability to design, create, and invent with new
media,16 as BalaBethany did in her projects. To do so, you need to learn some
type of pro- gramming. The ability to program provides important benefits.
For example, it greatly expands the range of what you can create (and how you
can express yourself) with the computer. It also expands the range of what
you can learn. In particular, programming supports “computational thinking,”
helping you learn important problem-solving and design strategies (such as mod-
ularization and iterative design) that carry over to nonprogramming domains.
And since programming involves the creation of external representations of your
problem-solving processes, programming provides you with opportunities to re-
flect on your own thinking, even to think about thinking itself. In a paper by
Mitch Reznick from the Lifelong Kindergarden Laboratory in MIT Media Laboratory
– he discussed how we should see the computer as a paintbrush rather than an
extension of the TV.
Lets think about that for a second, the computer as paintbrush. Suddenly these things are ‘creative’ and looking at what Google has done with their own work this is very inspiring. Take for instance on the Maths section some of the algorithms they’ve introduced, all coded in Python.
Python is probably a very accessible language.
C.T. is thinking recursively.
• C.T. is reformulating a seemingly difficult problem into one which we know
how to solve.
• Reduction, embedding, transformation, simulation
• C.T. is choosing an appropriate representation or modeling the relevant
aspects of a problem to make it tractable.
• C.T. is interpreting code as data and data as code.
• C.T. is using abstraction and decomposition in tackling a large complex
• C.T. is judging a system’s design for its simplicity and elegance.
• C.T. is type checking, as a generalization of dimensional analysis.
• C.T. is prevention, detection, and recovery from worst-case scenarios through
redundancy, damage containment, and error correction.
• C.T. is modularizing something in anticipation of multiple users and prefetch-
ing and caching in anticipation of future use.
• C.T. is calling gridlock deadlock and avoiding race conditions when syn-
chronizing meetings.
• C.T. is using the difficulty of solving hard AI problems to foil computing
• C.T. is taking an approach to solving problems, designing systems, and
understanding human behavior that draws on concepts fundamental to
computer science.

On the wall in Caltech they have a ‘Wolfram Alpha’ is not cheating. I certainly agree that teaching kids to use python is not cheating. Especially if its done in an educated and well thought out way. Ultimately that means one thing for the teaching profession – that it can’t be done by a ‘method’ or ‘by numbers’, the challenges and the feedback loop provided by using Python to teach STEM to kids certainly could re inspire the profession. This is a lot different to writing out notes and copying down answers.
So once again: thank you Google!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s