Computational Thinking or CT is an approach to problem solving. Specifically, any problem, regardless of the professional or educational field it represents, can be solved by way of Computational Thinking. CT is the process of breaking down a problem, recognizing patterns, identifying principles and finally developing step by step instructions on how to solve a problem.
We use computational thinking whenever someone asks us how to get somewhere. Ideally, we break the route up into manageable parts like whenever someone has to turn or get on the expressway, and then we try to determine the best alternatives, based on our knowledge and experience, we then put all of those directions together and finally deliver the set route to whomever is asking.
CT Skills and corresponding activities
- Decomposition - Breaking things down into manageable parts
- Literature - Break down a poem into meter, rhyme, imagery, structure, tone, diction and meaning
- Pattern Recognition - Finding similarities and differences in the parts
- Economics - Find cyclical patterns in the rise anf drop of the economy
- Abstraction - Identifying the general principles that generate patterns
- Culinary Arts - Write a recipe for others to use
- Algorithm Design - Developing steb by step instructions for solving problems
- Mathematics - Figure out the rules for factoring 2nd-order polynomials
- Chemistry - Determine the rules for chemical bonding and interactions
Why should one integrate CT in their classroom?
Hadi Partovi founded code.org and a grassroots movement called the Hour of Code which became the largest educational movement in history with well over 100 million students participating.
The benefits for students goes far beyond potential career exposure and preparation.
https://hourofcode.com/us
Bill Gates stated, "Learning to write programs stretches your mind, and helps you think better, creates a way of thinking about things that I think is helpful in all domains." Coding requires and helps develop discipline, attention to detail, patience and outcome prediction just to name a few. Computational Thinking can hep one's students in all aspects of their lives.
Part of the hesitation in incorporating more computational thinking in different disciplines and grade levels is the lack of a clear definition for the term computational thinking. Part of the confusion is that computational thinking used to strictly refer to computer programming. As stated a the beginning of this blog post computational thinking was defined as an approach to problem solving. The Voogt, et al article shares this idea as it states, "CT does not necessarily require the use of programming nor are CT scholars making the claim that programming has to be the context in which these skills are developed" (716). The general consensus behind CT is that those trained to think computationally can use abstraction and apply mathematical reasoning and design-based thinking when approaching a matter (720). The article also highlights on page 721 that "the ability to think computationally is essential to conceptual understanding in every field, through the process of problem solving and algorithmic thinking." Ultimately, pedagogical concerns in regards to different disciplines are alleviated once a clearer definition of CT is ascertained. There is value in utilizing CT in science, math, social studies, language arts as well as computer science!
Code Studio project on Code.org
https://studio.code.org/c/824260930
Python Project
I really enjoyed this project and can see the benefit of breaking problems into solvable chunks. The grid layout on the Python project and the angles on the Code Studio project were particularly challenging to me. I also had a few performance issues with the Python project website. The code was good, but the site wouldn't let me move forward until I restarted and entered the same exact code.
Since I work in IT, I tend to break problems down in this fashion already, but it will be helpful to apply this troubleshooting-type thinking to non-technological problems!
References:
https://computationalthinkingcourse.withgoogle.com/unit?lesson=8&unit
https://youtu.be/PlJtSxA-AY8
http://www.gettingsmart.com/2015/10/5-things-you-need-to-know-about-the-hour-of-code/
https://blackboard.utdl.edu/bbcswebdav/pid-6695716-dt-content-rid-56235474_1/courses/XLST.N5.201910/computational%20thinking%20in%20education.pdf
Hi Jeremy!
ReplyDeleteGreat post and I enjoyed your examples relating to each part of the computational thinking process. I think you really nailed the benefits of computational thinking when you illustrated the concern about a concrete definition in the field. When I first thought of computational thinking, I too also immediately went to computer science principles and wondered how programming would be useful in the "real world." However, after learning more about the process and the application to general learning, I am more of a believer than before. I'm glad to hear that even as an IT professional you found the information useful in your everyday work. I do think computational thinking will only help our students continue to be competitive and educated among the best compared to other countries.
Andrew Hazelton
Andrew, THank you for your comments. I agree that computational thinking is a great way to solve a wide variety of non technical problems but also appreciate other ways of solving issues. At the end of the day, CT is just another tool in the toolbox that most people should possess but it is not the only tool.
DeleteThanks Jeremy - I agree that CT taught at an early age can help students with problem solving skills that can translate into other areas of their life. Also, if they do have an interest in computer science, it will be very beneficial to them as well. Kids have a high capacity for learning new languages at an early age, including a programming language. It is hard to pin-point with research and evidence whether computational thinking is actually a better way to teach problem solving skills to kids simply because there is such a demand for computer science skills nowadays. For example, in this NY Times article, entitled "Learning to Think Like a Computer (https://www.nytimes.com/2017/04/04/education/edlife/teaching-students-computer-code.html?ref=oembed), Dr. Krishnamurthi, despite his chosen field of CT and programming, worries about the current cultural tendency to view computer science knowledge as supreme, better than that gained in other fields. Right now, he said, “we are just overly intoxicated with computer science.” The article goes on to say, "There is no reliable research showing that computing makes one more creative or more able to problem-solve."
ReplyDeleteOne more thing - you can fill the Christmas tree and trunk with color by using the commands:
ReplyDeletebegin_fill() and end_fill()
Here is the link in the tutorial about filling the color of the circles to learn how to do that - https://hourofpython.trinket.io/a-visual-introduction-to-python#/turtles/going-in-circles
Terence, Thanks for the comments and the tip on filling in the tree and tree trunk! I do share the concerns of Dr. Krishnamurthi since my boys were never taught cursive because it is not used any more. But at the same time, that concern is tempered by the proliferation of technology. It is starting to become so intertwined with day to day life, I think it is up there in regards to importance.
Delete