From computational math to computational biology, to Harvard University’s Computational Science and Engineering Program, providing young people with access to quality computer science (CS) education is increasingly seen as an urgent priority for public school systems across the U.S. and around the globe. While expanding CS education is expected to directly benefit students, promote sustainable economic growth, and help close historical gaps in technology fields, the problem is that CS education isn’t the answer by itself. The real solution to promote sustainable economic growth, and help close historical gaps in ALL fields is Computational Thinking (CT).
Co-authored by Code.org, the Computer Science Teachers Association (CSTA), and the Expanding Computing Education Pathways (ECEP) Alliance, the 2021 State of Computer Science Education takes a critical look at K-12 computer science education across the U.S.
A Vision built on five principles:
The Code.org Advocacy Coalition developed nine policy recommendations to make computer science a fundamental part of the state education system. The policies support a vision built on five principles: Equity and Diversity, Clarity, Capacity, Leadership, and Sustainability.
- Create a state plan for K-12 computer science
- Define computer science and establish rigorous K-12 computer science standards
- Allocate funding for computer science teacher professional learning
- Implement clear certification pathways for computer science teachers
- Create preservice programs in computer science at higher education institutions
- Establish computer science supervisor positions in education agencies
- Require that all high schools offer computer science
- Allow a computer science credit to satisfy a core graduation requirement
- Allow computer science to satisfy a higher education admission requirement
This map shows the current 2021 policies that have been put in place by each state.
What is Computational Thinking?
So…where does computational thinking fit within computer science? Let’s start by making sure that we are all working with the same definition of Computational Thinking. The term computational thinking was coined in 2006 by Jeannette Wing, a computer science professor at Carnegie Mellon University. Since then, there has been much debate about how exactly to define the term.
Informally, computational thinking describes the mental activity in formulating a problem to admit a computational solution. The solution can be carried out by a human or machine, or more generally, by combinations of humans and machines.
In a recent article, Computational Thinking: A Digital Age Skill for Everyone, David Barr, John Harrison, and Leslie Conery (2011) explore CT and the research that has led to the release of the International Society for Technology in Education‘s (ISTE) Operational Definition of CT. This is the definition that this article is based on.
Computational thinking is a problem-solving process that includes (but is not limited to) the following characteristics:
- Formulating problems in a way that enables us to use a computer and other tools to help solve them
- Logically organizing and analyzing data
- Representing data through abstractions such as models and simulations
- Automating solutions through algorithmic thinking (a series of ordered steps)
- Identifying, analyzing, and implementing possible solutions with the goal of achieving the most efficient and effective combination of steps and resources
- Generalizing and transferring this problem-solving process to a wide variety of problems
These skills are supported and enhanced by several dispositions or attitudes that are essential dimensions of CT. These dispositions or attitudes include:
- Confidence in dealing with complexity
- Persistence in working with difficult problems
- Tolerance for ambiguity
- The ability to deal with open-ended problems
- The ability to communicate and work with others to achieve a common goal or solution
In reading this definition you can see that CT encompasses all of the key things that we have been hearing about for the last decade or two in education. What “key things” are we speaking about? They would be problem-solving by using the process of decomposition to break a problem down, using data and patterns to abstract generalizations, and the development of character, and collaboration skills through real-world application. This is why CT should be taught to ALL students and incorporated into every classroom.
Why invest effort in integrating Computational Thinking?
As educators, our goal is always to do the best job possible while not adding any additional things to our plate. With all the new initiatives on our plate, we can feel stressed out and overworked. Principals and upper administration, keep in mind that giving an educator one more thing to integrate into a lesson or classroom could be what breaks them. We are already losing loads of teachers due to this issue and we would like to suggest a way to help integrate and alleviate the stress that teachers can feel
STEM, STEAM, Project-based learning, Social-emotional learning, and so many other trends or education fads are all addressed with Computational Thinking. As STEAM & Project-based learning supporters, we have realized that these concepts only address part of what we have actually been doing in our classrooms for years. Before CT was a thing…we were already implementing the key components of CT within our lessons and units.
According to The Condition of College & Career Readiness 2019 report, only about 21% of students taking the ACT met the minimum STEM benchmarks for college entrance. This is not comparing the United States to other countries but to our own benchmarks. This is a sad reality and representation of our current public education system. Obviously, this is not why teachers like us do our jobs. Teachers choose the profession to make a difference in the lives of students. So why isn’t the education system meeting the expectations? Frankly, it is because teachers aren’t being properly trained or given the freedom to teach in a way that truly teaches students to think. The focus is on Math, Reading, Science, and other subject-specific standards, when it should student growth and learning. Siloed subjects do not reflect how we learn to integrate new learning into our existing knowledge base.
If you teach students to think then all other subjects will be learned. Today’s students need real-world applications to give learning a purpose. With the implementation and growth of the internet age, students feel like they can just look up everything they want to know when they need to know it. This is relatively true. However, Google can’t teach them to think and innovate, which is what we need and want as a society. CT gives learning a foundation and provides the opportunity for students to ‘make meaning’ out of new knowledge they encounter and discover.
Asking questions to logically organize and analyze data, creating detailed rules for others to follow, and engaging in trial and error deepens content learning. These skills teach tenacity, tolerance for ambiguity and complexity, and teamwork. If this sounds familiar, it’s because good teachers are already promoting these in their classrooms. The “thinking” in CT is worth the investment of time and energy because thinking is a skill applicable to all subjects, which is why integrating CT into content across grade levels is vital.
Currently, we aren’t meeting the mark!
“Computing is changing every part of our lives, from how we interact with each other to how we do our jobs,” according to a report from the Code.org Advocacy Coalition and the Computer Science Teachers Association. “Yet the U.S. education system does not provide widespread access to this critical subject.”
According to Code.org’s 2021 report, State of Computer Science Education, just 51% of high schools offered computer science, up from 35% in 2018. It also states that 31 states had adopted 50 computer science education policies in the prior year. While that’s a start, it’s nowhere near enough.
The goal of today’s society is to have computational thinkers who can harness the power of computing to innovate and solve problems. This is precisely the goal of CT. This is why this is one trend that we sincerely believe will positively impact education in a way that we have never seen before.
How do I implement Computational Thinking?
Implementing something new is always a frustrating task in education. Mostly this is because educators are being asked to add something else to their plates. With computational thinking, it is asking that we throw out everything else and follow it. Before you go crazy, we aren’t saying that you should forget about teaching core skills such as Math, Reading, Writing, & Science. We are simply saying that you are no longer trying to do STEM/STEAM, SEL, CS, and whatever other curriculum spin-offs that we are trying to cram on top of these core skills. As stated in our STEAM Integration Course, all of these should be part of what you do and not in addition to what you are teaching.
Rather than a single skill that can be isolated and defined specifically, computational thinking is a complex combination of skills that people use in fluid ways. This is one of the important distinctions between CT and skills that we may already be familiar with.
Implementing something new doesn’t always have to be a frustrating task in education. The first step is getting acquainted with the ISTE’s computational thinking competencies. ISTE’s computational thinking competencies guide educators to integrate computational thinking across disciplines with all students.
This is not as difficult as it all may sound. There are tons of resources available to help get and keep you on the right track.
If you are completely new, and possibly somewhat reluctant, to CS and CT, you should start with something like our No Fear Coding: K-5 Computational Thinking course. This course is designed as a book study that walks you through ISTE’s No Fear Coding: Computational Thinking Across the K-5 Curriculum book, authored by Heidi Williams. Hedi is also the course creator which means you get an author-guided learning experience.
Once you have a foundational understanding of CT and some ideas of what it looks like in a classroom, you should focus on selecting products that offer CT-centered lesson plans. There are loads of product options available. Feel free to take a look at our vetted products page to help you make selections. Here are a few of our personal favorites to help make it even easier for you:
After you get comfortable with what CT lessons look and feel like, begin experimenting with lesson design. For guidance, here are a few samples and templates; a CT 5E lesson plan, a K-2 math geometry lesson, and three K-2 counting lessons. Additionally, you might be interested in the article Project-Based Learning for Young Learners.
Make sure that you are facilitating learning by asking good thought-provoking questions. This article is a great resource from Teach Thought that might help you. It offers great critical thinking questions.
This is the hardest part of CT for most teachers. They want to jump in a do the work for the students or help too much. We have to let the students do the work. Student-driven classrooms where teachers are simply learning facilitators is the BIG key to making Computational Thinking really work.
Summarizing Computational Thinking…
In short, Computational Thinking is when people create rules, based on data, which we give to a computer (or human) so that it can solve problems or reach decisions for us. We need pretty educated thinkers to be able to accomplish this. CT is the teaching method that will allow us to accomplish this societal goal.
The benefits are clear and it simplifies the focus of aligning content standards to digital technology and computer science standards. Just as with any language acquisition, the earlier students learn a skill, the more proficient they’ll become. This applies to both students and teachers. As educators become more comfortable with teaching CT competencies and skills, they’ll become more proficient in their ability to make the necessary connections.
As students grow more comfortable with the skills and language of CT, they’ll be able to solve problems on larger scales. Computational thinking will provide the platform for students to make deep learning connections with the content areas they are studying. This all makes CT a winner for everyone and a no-brainer for ALL classrooms!
Please share with our community how you are implementing CT in your classroom. Happy teaching!