Tag Archives: Computational Thinking

Celebrating World Teachers’ Day on Manitoulin Island

This World Teachers’ Day, we’re shining a spotlight on a special Canadian teacher who is using CS First, a Grow with Google curriculum for elementary and middle school students, in the classroom. Our guest author is April Aelick, who teaches grade 8 at Little Current Public School, which is part of the Rainbow District School Board on Manitoulin Island.

Having taught for almost seventeen years on Manitoulin Island -- at the same school I attended from kindergarten to grade 8, no less -- I know how challenging it is to keep students engaged and excited in class.

That’s why I was so happy to come across CS First, Google’s free computer science curriculum that makes coding easy for teachers to share and fun for students to learn. Earlier this year, I signed up for an evening workshop to learn CS First, with the hopes of being able to introduce it to my grade eight students.
At the workshop, I learned about an interesting concept called ‘computational thinking’. It’s a systematic approach to solving problems through data that is at the foundation of computer science and can be applied to many other subject areas -- and careers -- that intersect with technology.

As a teacher in a rural community, I can see how CS First will allow my students the opportunity to explore ways in which computer science can fit into their interests and possibly lead them down a career path they didn’t consider before. '

Ask any student or teacher, grade 8 can be a difficult age to engage students in something new. Many students are self-conscious and are reluctant to take risks. They can also get frustrated when things don’t go right. Often, they think the easy way out is to just quit.

CS First uses computational thinking to teach students not just hard skills, like coding, but the soft skills they need to be successful in life.
Recently, one of my students worked very hard on a CS First project and, well, had a “tech fail”. His entire project was lost, and he was very disappointed to say the least. While some students would easily give up, this student went right back to work, rewatched the tutorials online and created something even better than before. CS First helped teach the class a great lesson that day, beyond just learning how to code: there will inevitably be “tech fails”, and it is how you overcome these problems that will help you succeed in life.

The beauty of CS First is that it is so accessible to all students. There is no requirement for peripheral materials. I am lucky that my students have 1:1 access to Chromebooks, but even if a class didn’t have this option, it can still be used effectively with offline lessons.

I think if you’re a teacher interested in expanding computer science into your classroom, give CS First a try, you’ve got nothing to lose! The amount of problem-solving and willingness to take risks I have witnessed so far from my students has been worth it. Even teachers who are not comfortable with coding can find success in their classrooms.

Education opens doors for people that may be otherwise shut. It is my goal to expose my students to as many opportunities as I can so they don’t feel limited by their circumstances or geographic location. I teach amazing students that will have big impact in our world, and I want them to recognize that.

Editor’s note: Want to see CS First in action? Watch this video featuring an elementary school from Waterloo! If you’re interested in CS First, check out our website for how to get started.

Careers with Code: A CS Magazine for High School Students



From the programmers behind Pokemon Go to the creators of chatbots, the impact of computer science (CS) is ubiquitous in our daily lives. This is because computer science education provides a way of thinking that focuses on problem solving, teamwork and a powerful way to express yourself - important skills for any career. And with a projected 1 million jobs going unfulfilled in computing-related roles by 2020, we need computer scientists from all backgrounds to bring their unique perspectives to solve real-world problems.

That’s why today, we’re excited to announce Careers with Code in the US, a free high school “CS + X” career magazine that shows how to combine your passions, your “X”, with computer science. We partnered with STEM specialist publishers Refraction Media to create a CS career magazine that illuminates the range of computer science careers and highlights the impact they have across industries. Readers can get to know people who use CS in their daily work in sometimes unexpected ways, such as Jonathan Graham.
A lifelong music fan, Jonathan learned to code as a way to mix live music on stage. One summer while visiting family in Pennsylvania, he was struck by the number of coal mines closing down in the region. Jonathan decided to put his CS skills to work by providing skill-based learning for laid-off coal miners, helping them explore new technical career opportunities. He is now the co-founder of the nonprofit Mined Minds Foundation, which aims to spur economic development by seeding technology hubs within the coal towns in Pennsylvania and West Virginia.

In Careers with Code, you can read more about Jonathan’s unexpected career pathway and learn about 40 other unique stories. And if you’re an educator or work with high school students, Careers with Code can be a useful tool for helping your student explore computer science with resources including:


As Jane Margolis, author of Stuck in the Shallow End, puts it: “Computer Science can be about using the power of technology to create meaningful things for your community.” We hope that Careers with Code will inspire students to do just that -- and equip educators, librarians and counselors to celebrate and support them along the way.

Computational Thinking from a Dispositions Perspective



(Cross-posted on the Google Research Blog.)

In K–12 computer science (CS) education, much of the discussion about what students need to learn and do to has centered around computational thinking (CT). While much of the current work in CT education is focused on core concepts and their application, the one area of CT that has not been well explored is the relationship between CT as a problem solving model, and the dispositions or habits of mind that it can build in students of all ages.

Exploring the mindset that CT education can engender depends, in part, on the definition of CT itself. While there are a number of definitions of CT in circulation, Valerie Barr and I defined it in the following way:
CT is an approach to solving problems in a way that can be implemented with a computer. Students become not merely tool users but tool builders. They use a set of concepts, such as abstraction, recursion, and iteration, to process and analyze data, and to create real and virtual artifacts. CT is a problem solving methodology that can be automated and transferred and applied across subjects.
Like many others, our view of CT also included the core CT concepts: abstraction, algorithms and procedures, automation, data collection and analysis, data representation, modeling and simulation, parallelization and problem decomposition.
The idea of dispositions, however, comes from the field of vocational education and research on career development which focuses on the personal qualities or soft skills needed for employment (see full report from Economist Intelligence Unit here). These skills traditionally include being responsible, adaptable, flexible, self-directed, and self-motivated; being able to solve simple and complex problems, having integrity, self-confidence, and self-control. They can also include the ability to work with people of different ages and cultures, collaboration, complex communication and expert thinking.

Cuoco, Goldenberg, and Mark’s research also provided examples of what students should learn to develop the habits of mind used by scientists across numerous disciplines. These are: recognizing patterns, experimenting, describing, tinkering, inventing, visualizing, and conjecturing. Potter and Vickers also found that in the burgeoning field of cyber security “there is significant overlap between the roles for many soft skills, including analysis, consulting and process skills, leadership, and relationship management. Both communication and presentation skills were valued.”
CT, because of its emphasis on problem solving, provides a natural environment for embedding the idea of dispositions into K-12. According to the International Society for Technology in Education and the Computer Science Teachers Association, the set of dispositions that student practice and internalize while learning about CT can include:
  • confidence in dealing with complexity,
  • persistence in working with difficult problems,
  • the ability to handle ambiguity,
  • the ability to deal with open-ended problems,
  • setting aside differences to work with others to achieve a common goal or solution, and
  • knowing one's strengths and weaknesses when working with others.
Any teacher in any discipline is likely to tell you that persistence, problem solving, collaboration and awareness of one’s strengths and limitations are critical to successful learning for all students. So how do we make these dispositions a more explicit part of the CT curriculum? One of the ways to do so is to to call them out directly to students and explain why they are important in all areas of their study, career, and lives. In addition educators can:
  • Post in the classroom­­ a list of the Dispositions Leading to Success,
  • Help familiarize students with these dispositions by using the terms when talking with students and referring to the work they are doing. “Today we are going to be solving an open-ended problem. What do you think that means?”
  • Help students understand that they are developing these dispositions by congratulating them when these dispositions lead to success: “Great problem-solving skills!”; “Great job! Your persistence helped solve the problem”; “You dealt with ambiguity really well!”.
  • Engage students in discussions about the dispositions: “Today we are going to work in teams. What does it mean to be on a team? What types of people would you want on your team and why?”
  • Help students articulate their dispositions when developing their resumes or preparing for job interviews.
Guest speakers from industry might also:
  • Integrate the importance of dispositions into their talks with students: examples of the problems they have solved, how the different skills of team members led to different solutions, the role persistence played in solving a problem/developing a product or service…
  • Talk about the importance of dispositions to employers and how they contribute to their own organizational culture, the ways employers ask interviewees about their dispositions or how interviewees might respond (e.g. use the terms and give examples).
As Google’s Director of Education and University Relations, Maggie Johnson noted in a recent blog post, CT represents a core set of skills that are necessary for all students:
If we can make these explicit connections for students, they will see how the devices and apps that they use everyday are powered by algorithms and programs. They will learn the importance of data in making decisions. They will learn skills that will prepare them for a workforce that will be doing vastly different tasks than the workforce of today.
In addition to these concepts, we can now add developing critical dispositions for success in computing and in life to the list of benefits for teaching CT to all students.

Computational Thinking for All Students



(Cross-posted on The Huffington Post and the Google Research blog.)

Last year, I wrote about the importance of teaching computational thinking to all K-12 students. Given the growing use of computing, algorithms and data in all fields from the humanities to medicine to business, it’s becoming increasingly important for students to understand the basics of computer science (CS). One lesson we have learned through Google’s CS education outreach efforts is that these skills can be accessible to all students, if we introduce them early in K-5. These are truly 21st century skills which can, over time, produce a workforce ready for a technology-enabled and driven economy.

How can teachers start introducing computational thinking in early school curriculum? It is already present in many topic areas - algorithms for solving math problems, for example. However, what is often missing in current examples of computational thinking is the explicit connection between what students are learning and its application in computing. For example, once a student has mastered adding multi-digit numbers, the following algorithm could be presented:
  1. Add together the digits in the ones place. If the result is < 10, it becomes the ones digit of the answer. If it's >= 10 or greater, the ones digit of the result becomes the ones digit of the answer, and you add 1 to the next column.
  2. Add together the digits in the tens place, plus the 1 carried over from the ones place, if necessary. If the answer < than 10, it becomes the tens digit of the answer; if it's >= 10, the ones digit becomes the tens digit of the answer and 1 is added to the next column.
  3. Repeat this process for any additional columns until they are all added.

This allows a teacher to present the concept of an algorithm and its use in computing, as well as the most important elements of any computer program: conditional branching (“if the result is less than 10…”) and iteration (“repeat this process…”). Going a step farther, a teacher translating the algorithm into a running program can have a compelling effect. When something that students have used to solve an instance of a problem can automatically solve all instances of the that problem, it’s quite a powerful moment for them even if they don’t do the coding themselves.

Google has created an online course for K-12 teachers to learn about computational thinking and how to make these explicit connections for their students. We also have a large repository of lessons, explorations and programs to support teachers and students. Our videos illustrate real-world examples of the application of computational thinking in Google’s products and services, and we have compiled a set of great resources showing how to integrate computational thinking into existing curriculum. We also recently announced Project Bloks to engage younger children in computational thinking. Finally, code.org, for whom Google is a primary sponsor, has curriculum and materials for K-5 teachers and students.

We feel that computational thinking is a core skill for all students. If we can make these explicit connections for students, they will see how the devices and apps that they use everyday are powered by algorithms and programs. They will learn the importance of data in making decisions. They will learn skills that will prepare them for a workforce that will be doing vastly different tasks than the workforce of today. We owe it to all students to give them every possible opportunity to be productive and successful members of society.

Project Bloks: Making code physical for kids



When we were kids, physical things like toys and blocks helped us learn—inspiring curiosity and imagination in a fun, playful way. We think there’s no reason that shouldn’t also be possible when it comes to Computer Science.

When kids learn to code, they’re not just learning how to program computers, they’re learning a new language for creative expression and developing computational thinking: a skillset that will help prepare them to solve all kinds of problems. Making code physical — known as tangible programming — offers a unique way to combine the way children innately play and learn with computational thinking.

Earlier this week we announced a new research initiative called Project Bloks. The project is a collaboration between Google, IDEO and Stanford’s Paulo Blikstein, inspired by — and building upon — a long history of educational theory and research in the field of tangible programming.

The ultimate goal of Project Bloks is to create an open hardware platform for physical programming experiences to help kids develop computational thinking through play. By creating an open platform, Project Bloks will allow designers, developers and researchers to focus on innovating, experimenting and creating new ways to help kids develop computational thinking. Our vision is that, one day, the Project Bloks platform could become for tangible programming what Blockly is for on-screen programming.

As a first step, we’ve created a system for physical programming and built a working prototype with it. We’re sharing our progress before conducting more research over the summer to inform what comes next.

Want to get involved?
We are currently looking for participants (educators, developers, parents and researchers) from across the globe who are interested in helping shape the future of Computer Science education by remotely taking part in our research studies later in the year. If you would like to be part of our research study or simply receive updates on the project, please sign up here.

For more detailed information about the technology behind Project Bloks, check out our recent post on the Google Research Blog and our position paper. And to learn more about our other initiatives aimed at driving CS education forward and helping kids develop computational thinking skills, check out programs like CS First and Made with Code; and tools like Coding with ChromeBlockly and Pencil Code.