The Best Coding Curriculum Uses These Five Strategies
Over the past few years, there’s been a lot of interest in helping students learn to code and equipping them with lifelong skills for future readiness. If you are thinking about introducing coding in your classroom, school, or district, here are five strategies for designing coding curriculum and programs that engage students in well-structured learning now and have lasting impacts for future readiness.
1. Start Teaching Coding for Students Early.
If you want to help all students gain interest in coding subjects, look for solutions that are age-appropriate and can be introduced to students in early elementary grades, so they begin to see themselves as capable coders early on.
This is especially important for equity in computer science. Alison Master performed a gender gap study with kindergartners in 2016, which surveyed students on their attitudes about coding and robotics. Then, she provided introductory instruction in coding and gave the students an opportunity to practice their newfound knowledge by programming robots.
In her research, it was found that six-year-olds held stereotypes about themselves that boys were better at robots and programming than girls. Those stereotypes were even stronger than those about math and science. However, after providing brief instruction and practical experience with coding a robot to perform tasks, those differences of technology interest and self-efficacy were eliminated.
2. Make the Transition to Text-Based Coding.
Block-based coding is an introductory programming language that allows computer programs to be built by dragging and dropping blocks. The block-based coding approach has made it possible for students to start learning and experimenting with coding concepts before writing lines of code.
However, while block-based coding environments improve access to computer science education, a study done at the University of Auckland identified that while block-based coding can help to establish early confidence, it can inhibit students from learning text-based coding later on and doesn’t offer the same real-world relevance.
Is block-based coding valuable to students? I believe the answer is a resounding yes. Block-based environments help spark an initial interest in computer science and programming careers. They also can help students see the possibilities of computer science, and it can help them grasp core concepts early.
Use it to build interest and make coding accessible to young students but transition students to real-world coding languages. By starting with languages with simpler syntax, such as CoffeeScript or Python, it can make it easy for students to learn text-based languages and develop their confidence in real-world coding languages. They can even be helpful as additional stepping stones to approaching more complex languages while building up confidence in coding skills.
3. Build Student Coding Skills Gradually.
Beginning as early as third grade, students are ready to learn text-based coding with simple programming languages whether or not they have had previous experience with block-based languages. To begin text-based coding, students just need to be comfortable writing text-based directions for completing a task before they can tackle text-based coding.
For those who have had block-based coding experience, curricular resources help students make the leap from block-based coding to text-based coding. Then, students can apply those skills by building their own games, interactive stories, and other projects.
Coding 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 and nested loops that leverages mouse and keyboard input.
4. Practice Safe Failures for Coding Self Esteem.
As students build coding skills and advance, they must accept failure as a part of the learning process and understand that failures in coding help the coder find the right solution. The more exposure students have to this concept in a safe environment, the more students will develop comfort in it. An article by the Nemours Foundation explains:
“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.”
Safe failures can take the form of debugging practices or coding challenges in which students are encouraged to continue to try until they have met the goal.
5. Move Students from Consumers of Technology to Creators.
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.
While there are many great offerings that include fun games and coding challenges that help to teach concepts of coding and help students learn syntax and structure, without providing a means for students to take that skill and apply it to make something relevant to themselves, the curriculum keeps the students as consumers of technology and not creators of technology.
More importantly, until students create something that reflects their own identities, few will see themselves as capable coders or see coding as a means to solve problems in any discipline.
To maximize learning and student potential, students must transition from consumers to creators.
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. 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 introducing students to coding concepts early on in their learning, students start to see themselves as capable coders, which is invaluable for future readiness, sparking 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.