dark mode light mode Search Menu

Teaching Programming in the Classroom

CDI Brazil on Flickr

Although Computer Science shares commonalities with the other core subjects, it proves to be a challenging field for most students, including parents and teachers as well. Below are some common challenges that computer science teachers encounter on a daily basis and potential tips for overcoming them.

Tackling Fixed Mindsets – Highlight Mistakes, Not Just Successes

Programming is a unique skill that requires a particular mindset when being learned and applied. In programming, “bugs” or errors in code are expected. All major software companies recognize this inevitability and as a result, hire quality assurance engineers to troubleshoot and debug code. Apple, for instance, routinely finds bugs in its iOS software, hence the reason why many iPhone users are constantly prompted to update the software on their devices every few months.

In the computer science classroom, teachers will often valorize student successes and forget to equally highlight their mistakes. This assists in creating a classroom culture in which mistakes are instantly correlated with failure and frustration, instead of being seen as tools for highlighting holes in students’ thinking. Learned helplessness is common in the computer science classroom when students face repetitive and consistent errors in their code and have no tools for fixing these errors. Because mistakes and the associated frustration are inevitable when programming, teachers should nurture students’ mindsets around expecting errors and equip them with strategies for identifying their mistakes and tools for debugging them.

Teachers can help students develop a debugging mindset by first teaching them about the common types of bugs in programs and how to identify them. When working with text-based programming languages, there are two major types of bugs: syntax and logic errors. Syntax errors are bugs that hinder a program from compiling and running (i.e. missing a semi-colon after a command, improper capitalization, etc.). Logic errors are bugs that produce an undesired output or outcome. By identifying the type of error in their code first, students can then systemically choose an appropriate debugging strategy to fix their program. The question tree below can be used to help students identify the type of error in their code.

Breaking Down Adverse Stereotypes – Emphasize Collaboration Through Projects With Social Application

Programmers and software developers are frequently stigmatized as nerds, as socially awkward, and as predominately male. Much of this stigmatization stems from the unfortunate portrayal of programmers in the media, often as men coding in siloes; think about Sheldon Cooper from The Big Bang Theory. However, much of the work that software developers do opposes this traditional stereotype as their work requires strong collaboration between team members and across departments.

Many teachers unintentionally perpetuate these stereotypes in the classroom by structuring their lessons in a way that underutilizes authentic and collaborative discussions and group work. In many computer science classrooms, you will find students working independently on their computers with little to no opportunities to discuss their code or work with others in developing code. This reinforces reclusive behaviors that potentially deter female student interest in computer science, as research often references socialization as a factor in female interest in STEM studies.

MIT App Inventor is a web-based program that allows users to create simple apps for Android devices. The platform uses block-based programming, similar to that of Scratch. To promote discourse and collaboration in the computer science classroom, teachers can encourage students to complete coding projects in MIT App Inventor that attempt to solve a social issue. For instance, students may do research and realize that students at their school are having difficulty studying for a particular class. Using App Inventor, the students can create an app that helps users test their knowledge of that particular subject.

Investing Parents or Guardians – Encourage Parents/Guardians To Be Learners

If you think students struggle with programming, try teaching their parents or guardians how to code. Programming is a relatively new subject area in elementary and middle schools and many parents believe they possess little to no capacity in helping their children with computer science. A lack of comfortability with the subject matter, coupled with a lack of access to appropriate resources, renders many parents helpless in supporting their children with coding. As computer science continues to grow, it is important that teachers provide spaces for dialogue that support parent investment in computer science and provide parents strategies for supporting their children at home.

One way parents or guardians can support their child is through cultivating their child’s curiosity and confidence with coding. Teachers should provide parents with online learning resources (i.e. Codecademy, Code.org, Khan Academy, BrainPOP, etc.) where they can learn to code alongside their children. While coding together, parents could model how they push through short-term failures and debug their code to their children. This helps reinforce grit-based mindsets that students could further develop in the classroom.