Guest Post by
Get students computer science ready by teaching them how to think with computational thinking.
The demand for computer science (CS) in schools has many teachers wondering which components of CS they should implement first.
A couple of years ago, I asked myself the very same question, and I had to remind myself that creating a computer scientist could take up to 25 years! I was relieved that I wasn’t responsible for developing middle school computer scientists in only one semester.
I realized that what I needed to do was build the capacity of my students for deeper learning of the right skills — so they could experience success, which would inspire them to continue studying CS after leaving my class.
Advanced expertise in computer science requires knowledge in mathematics (namely discrete math and linear algebra) and problem-solving, and there are plenty of CS fundamentals to choose from.
In my previous position with Richmond Public Schools, we chose to dive in with computational thinking, programming and coding (yes, in that order). Because computational thinking (CT) is the highest order of problem-solving, is a cross-curricular skill, and is understandable to both machines and humans, I recommend building student CT competency by developing their versatility for recognizing and applying the four elements of CT to familiar problems/situations.
The Difference Between Computer Science and Computational Thinking
CS is part of computing education and it’s the foundation for ALL computing. So, in essence, CS is the study of computers and the algorithmic design processes in both hardware and software — their application and overall impact on society.
On the other hand, CT is a problem-solving skill(s) that involves decomposition, abstraction, pattern recognition and algorithm design.
Element 1: Decomposition
Facing large, complex problems will often discourage and disengage the students who aren’t fully equipped to begin the deconstructing process. Decomposition (like factorization) develops the skill of breaking down complex problems into smaller and more manageable parts, thus making even the most complicated task or problem easier to understand and solve.
To introduce your students to decomposition, begin by having them break down a simple task they do all the time, like brushing their teeth, baking a cake, making a sandwich or tying shoelaces. This will help them focus more on their ability to analyze and synthesize familiar information.
Next, introduce them to more complex problems/scenarios that are both unfamiliar and engaging enough to compel them to decompose them, such as investigating a crime scene, coping with the aftermath of natural disasters or planting a school garden.
Teachers who aren’t teaching traditional CS classes can help learners build their decomposition skills in their own subject areas by having them apply the concept to improving their writing, creating timelines, factoring quadratics or understanding living organisms. CS teachers can start building student capacity for decomposition with this CT lesson by Code.org. In this lesson, students assume the role of imaginary players and figure out how to play a game with no given instructions.
Element 2: Pattern recognition
Pattern recognition is a skill that involves mapping similarities and differences or patterns among small (decomposed) problems, and is essential for helping solve complex problems. Students who are able to recognize patterns can make predictions, work more efficiently and establish a strong foundation for designing algorithms.
You can introduce pattern recognition by presenting a slide with pictures of similar types of animals or foods, such as pizza or desserts.
Next, have learners map and explain the similarities/differences or patterns. The beauty of this technique is that once students can describe one category (animal or dessert), they will be able to explain the others by following patterns.
For example, the general characteristics of desserts are that they are all sweet; they can be fruit, custard, puddings or frozen; and usually are served at the end of a meal. One or more dessert may be pink, have fruit and served cold, while another type may be yellow, have sprinkles and not use fruit.
Then task students with either drawing or making a collage of their favorite desserts using the patterns they identified (like in the examples above) to help them. Also, have them reflect on how they’d have to start from scratch with either creating or finding each instance of a dessert if they hadn’t first identified essential patterns (classification, color, texture, ingredients).
The primary goal here is to get them to understand that finding patterns helps simplify tasks because the same problem-solving techniques can be applied when the problems share patterns (pattern recognition is also used in math, music and literature, human intelligence, history, weather, etc.).
Class projects can be more authentic by focusing application of pattern recognition in forensics, medical sciences, photo identification or behavioral patterns like web browsing and credit card spending.
Once students know what to do, have them map the patterns in some of the decomposed problems described above in Element 1. CS teachers will need to help students comprehend how computers use pattern recognition by numbers, text and pictures. Students using visual programming languages should also learn how the use of pattern recognition helps to find the commonalities of repetition in code for avoiding redundancy, and they can begin doing so with this Code.org lesson.
Element 3: Abstraction
Abstraction involves filtering out — or ignoring — unimportant details, which essentially makes a problem easier to understand and solve. This enables students to develop their models, equations, an image and/or simulations to represent only the important variables.
As the values of variables often change and can be dependent upon another, it’s important for students to be introduced to abstraction in relation to patterns. In the previous element, we noted common characteristics of desserts. Have students make a simple drawing of a dessert focusing on the important/common features (like classifications) and abstracting the rest (texture, fruit, sprinkles). The abstraction process will help them create a general idea of what a problem is and how to solve it by removing all irrelevant details and patterns (abstraction is also used in math and when creating models — the water cycle, the nitrogen cycle, the rock cycle, etc.).
CS teachers will need to help students focus on the layers (or levels) of abstraction they will want in the models they develop, along with correlations between abstraction and pattern generalization to figure out the right relationships between abstracted variables to accurately represent a problem. They also need to understand how abstractions are built with purpose and can represent an entire class of similar objects. CS students can become excellent coders using abstraction. Use this lesson to help them get started.
Element 4: Algorithm design
Algorithm design is determining appropriate steps to take and organizing them into a series of instructions (a plan) for solving a problem or completing a task correctly. Algorithms are important because they take the knowledge derived from the previous three elements for execution.
Keep it simple when teaching algorithms to students and have them create small plans using their newly learned CT skills, again using simple functions like brushing teeth, baking a cake, making a sandwich, tying shoelaces. Each algorithm must have a starting point, a finishing point and a set of well-defined instructions in between.
CS teachers will also need to help students understand that algorithm design builds upon the previous three elements — which moves a problem from the modeling phase to the operation stage. Students will also need to learn to design algorithms that are both efficient and allow for automation through the use of computers.
Also, by learning discrete math and how to create flowcharts, students can practice and build expertise in algorithmic thinking and design over time. Here is a great compilation of lessons for helping students bridge the gap between understanding basic algorithms to actual programming.
Resources to get started
Here are a number of resources to turn to for help:
- Code.org has developed an excellent beginners lesson on computational thinking with correlations to the ELA, math and the ISTE Standards for Students.
- The K-12 Computer Science Framework offers an extensive overview of computational thinking — along with resources and in-depth explanation of the correlations between computer science, science and engineering, and math practices.
- BBC Bitesize hosts a variety of teaching resources on their website for introducing computational thinking to students.
- Computational Thinking {and Coding} for Every Student: The Teacher’s Getting-Started Guide by Jane Krauss and Kiki Prottsman.
- Check out ISTE-developed resources and a practical guide for educators to get started.
Remember, learning has no finish line!
Take a moment to reflect on the words of Dr. Stephen R. Covey, “Though you may find some of it to be simple common sense, remember, common sense is not common practice, and I guarantee that if you will focus your efforts in these areas, you will find that great peace and power will come into your life.”
I believe these words can be applied to learning CT (and any new concepts or practices) as we help our students use what they already know to develop their CS superpowers!
This article is adapted from an original post on this link.
If you like this work, please give it some claps, follow our publication and share this with your friends and colleagues.
Jorge Valenzuela is a teacher at Old Dominion University and the lead coach at Lifelong Learning Defined. Additionally, he is a national faculty of PBLWorks and a lead educator for littleBits. His work is aimed at helping educators understand and implement computational thinking, computer science, STEM, and project-based learning.
You can connect with Jorge @JorgeDoesPBL via Twitter and Instagram to continue the conversation.
**Interested in writing a guest blog for my site? Would love to share your ideas! Submit your post here.
Looking for a new book to read? Many stories from educators, two student chapters, and a student-designed cover for In Other Words.
Find these available at bit.ly/Pothbooks









Kim Weber is a Transformation Agent for LINC, the Learning Innovation Catalyst. Before joining LINC, Kim worked for 20 years as a public and private school teacher in California and New York City. She is a presenter and coach for schools across the country who are embarking on school transformation projects that focus on creating classrooms that put students at the center of learning and help teachers become pedagogical problem solvers.




When you focus on a line, it closes the screen down to that one specific sentence, which you can also make narrower or thicker depending on your choice.


Libraries might seem dated, but they are in fact one of the best-kept secrets. We got library cards for our kids as soon as they could write their names. Today, cards can be used to check out everything from audiobooks to new release movies. Apps like Hoopla and Overdrive are amazing. With a library card, these two sites offer thousands of books, movies, and music. Giving kids the opportunity to borrow a stack of books without any cost is ideal for many families. Taking advantage of MEL, the state’s interlibrary loan program, allows people to request books from all over the state of Michigan and have them sent right to your local library. Showing someone how to use the library unlocks a world of possibility. Anything can be learned by using the public library. And, using the library saves a lot of money. Surrounding kids with books is one of the best things you can do to get them reading. The library makes reading an inexpensive activity. I am not alone when it comes to using the library. Several
A few years ago one of my boys really got into hockey. We found all of the Matt Christopher books about hockey in the library, and he eagerly read each one cover to cover. Last summer my daughter was obsessed with learning about swimming. We raided the library for any nonfiction book we could find on the topic. During the winter it was graphic novels, and today she loves to dive into anything related to fairy tales. Even though I have a pretty good idea about what each of my kids likes to read, I had experiences where I selected a book or two I thought might be perfect, only to have them not show an interest in what I picked out. I do not take it personally, since there is no cost associated with it, and know that as a reader I don’t read every book I take home from the library.
When I first started teaching, I would ask the parents of my really motivated readers who seemed to always be reading, “Tell me how you did it? What do you think has made the difference in getting your child excited about reading?” Almost every time I was given the same answer, “I suppose he just sees me reading all the time, and it just seemed like the thing to do. My nose is always in a book”.
Exposure to good literature and authors is one of the best gifts we can give our readers. I absolutely love sharing some of my favorites with kids. Just as we could taste cheese, wine, sauces, desserts, or other menu items, book tastings are a great way to try new things. I typically put a book in front of each place setting. Each child will get a chart to list the title he or she tasted along with the author, genre, and the likelihood that he or she might read the book. The tasting is timed to keep it moving. And so after a total of several, ninety-second tastings, kids are able to walk away with several new titles that could be considerations for future reading. This activity can be adapted to any size (I have had great success with it in the classroom).
There are times that I find my kids book hopping, and not finishing titles. I have also seen my kids plateau as readers. It is fun when we all work together and focus on completing a challenge that encourages reading and celebrating the success of others. It works well for us to keep a running list of books read on the refrigerator. We set a goal for a number of books to be read and immediately start brainstorming how to we will celebrate our success. It is nice to focus on working together and cheering each other on.





