Programming case study: Teaching an elementary school class

To give fellow teachers an idea for how they can teach our curriculum in a classroom setting, we are creating case studies. Here's one case study of how Feltwell Elementary School in the United Kingdom is using our curriculum in their classroom.

About our class

Photo of students in classroom with teacher
Our class was a combination of 20 students across 4th and 5th grades. Our school’s S.T.E.M. program decided to teach computer programming with the help of a volunteer web developer.  We met twice per week for 45 minutes each for three months.

Why Khan Academy?

We knew we wanted to teach computer programming, but also knew that we'd be teaching it to a younger audience than most schools. We had to pay extra attention to how our students were responding to the content. We needed to be prepared to change, adapt and scrap strategies altogether.
We decided to experiment with the most challenging approach first - teaching programming with an actual, syntax-based programming language. We knew we could always switch to a more visual, drag-and-drop approach later.
KA fit perfectly within our goals. All of KA's introductory lessons use an actual programming language - JavaScript. We knew about many other options that used visual drag-and-drop approaches to teach programming. We were prepared to abandon KA for these visual approaches if the students were not able to grasp JavaScript.
Fortunately, the students had very little trouble using JavaScript so we kept using KA as our guide and could not be more pleased. The quality and flow of the KA lessons is unmatched. We quickly realized this, because our students were begging their other teachers and parents to let them use Khan Academy to program outside our scheduled weekly meetings. When students are begging to do extra homework, there is something very special about the learning content.

Our daily schedule

We felt that a frequent and long lecture approach was not going to be effective for elementary level students. Our daily class schedule looked like this:
  • Optional lecture (5min)
  • KA lessons or project work (30 min)
  • Student technical presentation (5min)
A lecture would be focused on one specific topic, for example ‘What is a variable?’ A small portion of it would be discussed by the instructor, then the question/topic would be discussed by individuals from the class and explained to their peers.
After lecture, we would begin our actual coding work. For the first half of the quarter, students worked on the lessons at their own pace in class. Many of them also worked on them at home. For the second half of the quarter, students spent that time doing projects together.
For the projects, students worked in pairs or groups of 3-4, and switched the controls of the keyboard halfway through our time block. The project teams always worked off of the student account with fewer points. This was a good way of catching up students who were not progressing as fast as others. It also allowed the students with more points the opportunity to reinforce their learning by teaching their partners.
Finally, towards the last 5 minutes of class, one student would give a technical presentation to the class and explain either a project they had been working on, or a lesson they found interesting. We had many students begging to speak each day, so there was no shortage of presentations! The presenter held a Q&A session afterward for other students and educators to ask them for more information.

Guest speakers

Photo of students watching guest speaker
Beyond the normal class agenda, we had special days where a guest speaker would attend via Google Hangout. We’ve had one of the founders of the popular Raspberry Pi computer give a talk and take questions from our students. We’ve also had a prominent npm Inc. employee teach us about how robots can be programmed with the JavaScript programming language we were learning.
For our guest speakers, we really wanted to showcase how diverse and dynamic the entire technology industry is by inviting people from different countries, cultures, ethnicities and gender.
We also created a simple website and blog to give parents and administrators updates on our progress and speakers.

Showcasing student work

For the last 4 weeks of our pilot class, we created groups of 3 to 4 students to work on final projects. These projects had to be completely original and worked on by all members of the team. In the end, they presented their projects as a team to their parents and the school administration as part of our “Parent Day.”
We are very proud of all the hard work the students have put into the class and their projects. Here's a sampling of their creative work:
Screenshot of 6 student programs