Developing Computational Thinking and Coding Self-Esteem
I recently read an article by the Nemours Foundation about how children develop self-esteem. Certain portions of the article jumped out at me as directly related to students learning to code:
“As kids try, fail, try again, fail again, and then finally succeed, they develop ideas about their own capabilities…Self-esteem is the result of experiences that help a child feel capable, effective, and accepted. When kids learn to do things for themselves and feel proud of what they can do, they feel capable. Children feel effective when they see that good things come from efforts like trying hard, getting close to a goal, or making progress.” (Nemours Foundation)
As I read, I recalled a recent conversation with a former employee of Sun Microsystems who after making a good living at Sun, left to teach high school computer science (that alone makes her a saint in my book). She said the biggest challenge she faces helping her students become proficient coders is helping them develop what she called “stick-to-it-iveness”, or a student’s willingness to try, fail, try again, fail again…all the while learning from their mistakes and then finally succeeding. A close second is developing a proficiency with the processes of algorithmic problem solving or computational thinking.
So why are these students – who have been raised with technology since they were born – struggling at solving problems with technology? For decades, coding and programming were something available in only certain schools and achievable only by the brightest of students…arguably those who already possessed a strong academic self-esteem with a can-do attitude toward learning anything.
How is coding self-esteem developed?
To take a note from the teacher I mentioned earlier, students need direct assistance in developing the foundational computational thinking skills needed to know how to solve problems. Direct instruction in concepts such as developing algorithms, modeling algorithms with flow charts, modeling data in a spreadsheet and with graphs, creating a prototype to test an idea, and testing an implemented solution for ways it can be improved is essential to helping students establish foundational computational thinking skills. Organizations like k12cs.org, ISTE, and CSTA have already developed frameworks and standards that incorporate these principles. Curricular resources such as Code.org, Scratch, and EasyTech can go a long way to helping students develop essential computational thinking skills.
Over the past five years, significant improvements and access to block-based coding have helped accelerate the development of core computational thinking skills of students. Though, only 25% of K-12 schools offer computer science instruction today. Certainly developing computational thinking skills is only one of many steps in helping students develop confidence in coding. Students also need early experiences in which they have success with real-world, text-based programming languages to develop their coding self-esteem before the insecurities of adolescence sets in.
Starting early is critical
Beginning as early as third grade, students are ready to learn text-based coding with simple programming languages. Curricular resources such as CodeMonkey, Codesters, and EasyCode help students make the leap from block-based coding to text-based coding. In EasyCode, for example, students learn to code in a computer language used by businesses today such as CoffeeScript and Python. Then, they apply those skills by building their own games, interactive stories, and other projects.
These solutions often use game-based learning environments which have proven to be highly successful in teaching students to write real code to solve small coding challenges. These game-like environments gradually get more complex, building confidence with students in their newly growing coding skills.
By taking it in small steps, students can quickly move from creating text-based code that simply sequences functions to creating code with complex conditionals, nested loops and that leverages mouse and keyboard input. Once students have developed these core skills, students can transition from learners to creators by building their own games through simple game-building environments – skyrocketing their coding self-esteem.
Coding skills are life skills
In today’s world, it is imperative that all students have experience in coding to be effective in any career today. I believe (and have seen) students of all ages develop aptitudes in digital literacy, computational thinking and coding regardless of their previous experience. But to do so, we must provide students with regular experiences that help students develop foundational computational thinking skills and coding self-esteem early so that students progress with “can-do” attitudes toward coding.
By learning to code in the early years, students develop a love for coding that can spark an interest in learning more as they move into high school and beyond. Whether students choose a career in computer science or not, exposure to real coding experiences and success empowers students to be able to solve today’s problems in any field.
If you would like to see our Coding and Computational Thinking curriculum in action, click here.