A Strategy for Motivating High School Coders
As coding tasks get more complex, how do you convince high schoolers to persevere?
Coding is a fun and exciting activity for students. This is especially true at the elementary and middle school levels with the introduction of the Hour of Code. Using programs such as Tynker, Scratch, and Bee-Bots as well as various online games and challenges, students are exposed to skills that include sequencing, problem solving, and estimation. In high school, attracting students to coding can sometimes be more challenging. Programming concepts may be more advanced, and students can get overwhelmed trying to learn languages that require debugging and troubleshooting while reading through long lines of code. This process tends to frustrate those who are less patient and need to devote more time to their projects.
Creating lines of code needs to have a purpose so that the students can transfer their skills in a meaningful way. Unless the outcome is something that pertains to a real-world adventure or a creative game, students can lose interest during tedious attempts to make a program run correctly. As with any curriculum, how do you inspire students to learn course content? What activities do you provide to engage them in the process? How do you encourage students to apply those valuable critical-thinking and problem-solving skills?
Using Alice gives my students the opportunity to explore some basic Java operations to create simple scenes with animated objects. It exposes them to object-oriented programming and allows them to tell a story, create a game, or share an animated presentation.
When dealing with any type of computer programming, the biggest challenge is keeping students with different interests and levels of skill on task. I’ve found that introducing topics they can relate to and integrating them into Alice lessons usually works to keep student attention. For example, using a sports theme, students created a scene with a very basic format that showed players moving across a court or field, throwing or kicking a ball. They used some generic procedures to make their characters move. However, how could I encourage them to take their animations a step further? How could I give them the opportunity to take their learning deeper? By introducing lessons that had them animating body parts so that their characters could become more human looking, with arms and legs bending and moving in a life-like manner, I helped them see that they would need to get more involved in working with the code.
To get students started with Alice, I assigned a lesson that required two characters to dance a waltz. Realizing that most ninth graders are not familiar with the steps in a waltz, I turned to YouTube to give them examples of how to perform this dance. I knew that my students would be thankful someday when walking into the prom having already mastered this experience!
At first, their characters were rigid and didn’t move in a natural way. Sometimes their body parts moved incorrectly or their steps ended abruptly. I challenged them to make their figures resemble real-life dancers. They researched the steps carefully and copied the movements of the dancers in videos by coding their characters with the proper timing and movements.
Maybe it was the challenge of the coding or maybe it was the competition to make their dancers the stars of the class, but once they saw their characters start to take on a more human form, they became engaged in the task. They compared their movements and collaborated on how they accomplished certain steps. For some, it was like noticing that they were in fact controlling their own Frankenstein. They worked through their problems, understood the outcomes, and reflected on what it took to create the perfect dance. Check out one student’s project.
Thinking of trying this with your students? Here are some suggestions:
- Start with simple coding tasks and small projects.
- Let students work in pairs or alone -- whichever makes them most comfortable.
- Assign projects that they can relate to and that are age appropriate.
- Give students directives and rubrics to follow.
- Add challenges to projects so that students use deeper critical-thinking skills.
- Give students feedback on their work.
- Allow students to self-reflect on what they have accomplished.
In the end, students learned how to animate their figures through coding and realized that their effort, perseverance, creativity, and critical thinking made all the difference in the finished product. They gave life to their objects, and they were in control of their learning.
Have any great class activities of your own? Share your experiences in engaging high school students in coding.