Don't Stress About Coding: Focus Shifts To Teaching Problem Solving Not Computer Skills

Educators look at coding in a new context, with computational thinking and basic computer literacy as the goal.

Illustration by T. M. Detwiler

When children in Homer, AK, come to storytime at the public library, they might hear Ezra Jack Keats’s classic The Snowy Day or Lois Ehlert’s Snowballs. As in such programs across the country, the kids are learning the building blocks of basic literacy. But at Homer storytime, they gain exposure to another critical skill. Librarian Claudia Haines doesn’t just read the well-loved books, she uses them to teach computational thinking.

“Robot Claudia,” as Haines calls herself during these sessions, asks young patrons to give her step-by-step instructions to build a snowperson. Haines explains to the parents that this is preparation for becoming fluent in the languages of computers.

In an effort to prepare the next generation for the future, school and public librarians, as well as teachers and educators at community-run and for-profit camps, have answered the call to teach kids code. But many now recognize it’s not enough for students simply to know how to write code. The capacity to build a product or solve a problem requires an entirely different literacy.

With this in mind, the focus of coding education is shifting from teaching the specific skill of coding to teaching computational thinking—or the ability to follow a step-by-step process to solve a problem. Technology education programs from CSforAll to Code.org to the International Society for Technology in Education (ISTE), as well as employers such as Google, all embrace this new context and focus.

The future workforce will require a solid grounding in the discipline of thinking computationally, says Chris Stephenson, Google’s head of computer science education strategy. She compares this moment to the epistemological shift that happened before the Enlightenment, when scribes guarded reading as a skill only for the chosen few.

“We think of coding not as a skill but as a literacy. We don’t teach reading because we believe everyone will write War and Peace,” she says. “And we don’t teach computer science with the belief that everyone will be a computer scientist. We teach it because it is increasingly a skill we need to operate in and understand the world around us.”

Libraries have always been a place to find resources, whether print or digital, to answer questions and solve problems. This shows in the popularity of maker spaces and hackathons that are right at home in libraries across the country. Libraries also come without the academic stress of a traditional classroom, making them a perfect place for students to experiment with coding.

“Libraries can be used to experience this wide range of tools that apply to computer science without the pressure of failing,” says Mega Subramaniam, an associate professor at University of Maryland’s iSchool and the director of the Youth Experience certificate program. “Failing is attachment wp-att-247163">completely fine in a library setting. You are not being graded in any way, so it is a safe environment for young adults to experiment. We’re not teaching people to be coders, but teaching people to have this mental tool to solve problems.”

Coding or computational thinking?

Much like students learn to read and then read to learn, coding and computational thinking are intertwined. Computational thinking will be fundamental to many of today’s students’ careers and interests in the same way that knowing how to read is fundamental to everything they do in school.

ISTE, which refreshed its Standards for Students in 2016, doesn’t mention coding specifically as an essential skill. Instead, computational thinking, defined as the ability to “develop and employ strategies for understanding and solving problems in ways that leverage the power of technological methods to develop and test solutions,” is listed as one of the seven standards students should master.

According to Code.org, there are more than 503,000 open computing jobs nationwide, but only 35 states allow students to count computer science courses toward high school graduation, and fewer than half of U.S. schools teach computer science.

With each state implementing computer science differently, many organizations are stepping in to fill the gap. Code.org offers teacher training and student courses, such as Hour of Code. The National Science Foundation, in partnership with Computer Science for All, has pledged $120 million to train teachers to help kids “learn computer science and be equipped with the computational thinking skills they need to be creators in the digital economy, not just consumers, and to be active citizens in our technology-driven world.”

Much like reading, it’s important for students to learn the basics of computational thinking early, by the third grade ideally, especially for girls. As computer science increasingly becomes integrated across the disciplines and grades, access will become more equitable. For now, it is often left to nonprofits or one-off programs, or for individual teachers or librarians to integrate into their work with students.

With all of the options available and the shift to coding in the context of computational thinking, educators may not know which are best or where to begin. Is Scratch or Blockly worth using now? Is Hour of Code effective in this new context?

The good news is that many of the major coding programs and activities are still useful and it’s relatively easy to integrate these higher-level skills into lessons across disciplines.

Thinkstock/BananaStockResources

Here are some of the many professional development resources available to teachers and librarians who wish to share coding and computational thinking with their students.

BBC Bitesize: Variety of resources on teaching computational thinking.

Code.org: Several beginners’ lessons on computational thinking are available on the website, as well as free or low-cost training for educators with no background in computer science.

CSforAll: A consortium offering specific information based on age group and setting.

ISTE: Offers standards for students that include computational thinking. Website is also a source of articles and professional learning networks on all things edtech.

The K–12 Computer Science Framework: Detailed overview and resources on correlations between computer science and other subjects.

Coding to solve a problem

To make coding a useful skill, students have to put it to use. Students who identify a problem and create a computer-based solution are more likely to pursue coding, even those who don’t consider themselves “good” at math or science, says Jan Cuny, program director for computing education at the National Science Foundation, which has funded research into the teaching of and development of instructional materials for computer science. “There are tons of problems kids can think of to solve in their world,” she says. “That connects it to the things they really care about and brings a level of excitement.”

For example, Stephan Green grew up in a New York City immigrant community where residents spoke many different languages. As a high school student, Green watched his neighbors struggle with language barriers during doctor’s visits or teacher conferences. Professional translators were too expensive and online translators didn’t work well in those kinds of conversations, so he wanted to build an app that would connect his neighbors with a local bilingual person who could provide translating services while earning a little money, too. While at a Code Interactive Hackathon in 2015, Green and his team did just that.

“A project gives coding a reason to be done, a context,” says Tom O’Connell, Code Interactive’s interim executive director. “While coding is one tool that helps solve problems using computers, if you’re hoping to introduce computer science in an equitable and impactful way, it can’t be the only ingredient.”

To lay the groundwork for future problem solvers, no computer needed, Subramaniam recommends starting with pattern recognition for the youngest ages. Paula Langsam, a librarian in the District of Columbia Public Library system, asks kids to create a pattern from cards that have different shapes and different colors, for instance, finding all blue squares. This pattern recognition activity can add layers of difficulty such as combining shapes and colors that have two or more differences.

Alaska’s Haines uses monkeys to teach about algorithms in the “Happy Maps” coding exercise. She tapes out a grid on the floor and puts some bananas in one square. Then, children take turns giving instructions to help the “monkey,” usually her or a child, find the bananas. “Forward,” “right,” “repeat” are all important vocabulary concepts in coding. Finally, the kids draw out the instructions using arrows on the wall.

Another quick and easy algorithm exercise for young kids is to ask them to tell a partner, step-by-step, how to tie a shoelace without showing them. An added bonus in this exercise is that it includes making a loop, which is a coding principle.

To get children started using programming languages, Cuny recommends beginning with visual programming language such as Scratch and Blockly, because they are specifically intended to be accessible to engage students with quick results. “Starting with a relatively easy drag-and-drop programming language that lets kids create something that aligns with their own personal interests is empowering,” she says.

Once they start with robots, things get fun. Using RoboLab or VEX Robotics, they can really get creative. At a Seattle library, a Finch Robot and block-based coding are used to create a robot that can make art on paper by attaching pens perpendicular to the Finch tail.

Kids can also practice on Arduino boards—relatively low-cost electronic circuit boards that utilize open-source software—to learn how code and interact with physical components. For example, students write a line of code and watch a light on the board light up or flip a switch on the board and see their code change. Begin with the tutorials, recommends Jorge Valenzuela, an educational coach who writes about how to develop computational thinkers; this will allow students to see patterns in the code and how it manipulates hardware, reinforcing the decomposition aspect of computational thinking.

By middle or high school, students are typically ready to start using programming languages such as JavaScript and Python. They may find that they have trouble moving from one to the other, but this is where a good grounding in computational thinking really pays off. They will recognize the concepts that translate across platforms, making an unfamiliar language more accessible. There are limitations within any language and learning to think computationally will help students work around those limitations.

Kids can solve a lot of problems when they understand the language and process of computing. Letting those problems be real, and identified by the children themselves, keeps students engaged and trying. Technovation and the Verizon App Challenge are two initiatives that ask students to identify a problem in their community, research existing technology, and design an innovative app to solve the problem.

“If we want kids to be comfortable learners and creators, for their own interest or as part of the workforce, they need a basic understanding of how computational thinking works,” says Haines.

“If a child is able to talk about how something is made or built, then when something doesn’t work right, they can debug it or tweak it. Our job as librarians has always been to support young kids as they start exploring bigger ideas and provide the tools they need to be able to do that.”

Jennifer Snelling writes about the way technology is changing education.

Comment Policy:
  • Be respectful, and do not attack the author, people mentioned in the article, or other commenters. Take on the idea, not the messenger.
  • Don't use obscene, profane, or vulgar language.
  • Stay on point. Comments that stray from the topic at hand may be deleted.
  • Comments may be republished in print, online, or other forms of media.
  • If you see something objectionable, please let us know. Once a comment has been flagged, a staff member will investigate.


alison statton

Important for anyone to read who is involved with STEM teaching. It is all about the process of learning computational thinking. For more information read this article by educators involved with Scratch programming language http://scratched.gse.harvard.edu/ct/defining.html

Posted : Apr 25, 2018 05:33


Carrie

Great article. Code.org incorporates this into their curriculum and it's a great model for guiding students through the problem-solving process. Here is a link to a lesson for inspiration https://studio.code.org/s/course3/stage/1/puzzle/1

Posted : Apr 10, 2018 08:26


Lori Barbato

Fantastic article. I agree that we need to teach students how to think critically to solve problems as well as how to leverage tech to find solutions efficiently and effectively. Thank you for the list of resources.

Posted : Apr 06, 2018 08:43


RELATED 

ALREADY A SUBSCRIBER?

We are currently offering this content for free. Sign up now to activate your personal profile, where you can save articles for future viewing

ALREADY A SUBSCRIBER?