Software Review: Khan Academy - Intro to JavaScript

Guest post by Andrew from Match Next

Andrew here from Match Next, our 5th grade blended learning program. We’re back from winter break and underway here - expect to hear from me weekly about all things edtech.

Today: Khan Academy’s computer programing module. During our pilot last year, when our current students were 4th graders, I blogged about 3 different programs we tested to introduce our students to computer programming basics. We tried Codecademy (didn’t like it so much), Scratch (meh), and Tynker (liked it a lot).

We’re at it again this year. Let me caveat all this by saying – I’m not on the ‘every kid needs to code because it’s a 21st century skill’ bandwagon. Frankly, I think very very few people are ever going to need to write code in their lives. Sure, there’s probably a small gain in exposing kids to it as a ‘thing’ so that if they wanted to pursue it on their own or in college it wasn’t so scarily foreign that they wouldn’t consider it. But if none of our kids graduate knowing coding, I’m not losing sleep.

However, we do have a handful of kids who we’ve been able to get through the necessary Common Core math work faster than the rest of the class. And for that crew, we were looking for a high-quality ‘extra’ that still built on some math-style logical thinking skills. We landed on coding because there are so many promising programs for it.

Enter → Khan Academy: Intro to JavaScript


So what is it, and and how do we rate it?

I give it an 8 out of 10. I think it’s a very well done program and a good use of time as an ‘extra’ for a kid. It does a solid job teaching different JavaScript concepts and how to use the code. There are some videos and some really neat activities where kids actually do coding, getting harder over time. The activities are challenging enough to make kids struggle, but they’re not so hard that it’s impossible for the students to complete them. Also important, it’s fun. Our kids love it, and they haven’t really gotten bored of it since starting it at the beginning of the year.


How it’s organized

The “Intro to JS” curriculum is organized by topic. Each set of lessons focuses on a specific aspect of designing a program. Here’s what the layout of the lessons looks like:


  • The left side of the page (green letters) indicates the subject students are learning about

  • The right side shows the list of videos and activities students will complete for the topic

  • When the student completes the videos or activities, the pathway will highlight green

  • If a part of the pathway is white, then the student must still complete those particular activities

Here’s how students actually use the program

Using the program is really simple for students.

  1. At the start of each topic, they’ll watch an instructional video.

  • in each video, students learn how to certain lines of codes work

  • students also learn how to actually use the code, and they observe how to write it in order to create a command

  • here’s an example of a video a student would watch. in this video, they’re learning the basics of how to draw shapes using JavaScript. 


     2. After they watch the video(s), they’ll practice writing the line of code they learned about.

  • In the video above, students learn how to draw shapes using lines of code. Here’s the first activity students do after watching the video, where they need to write lines of code to arrange rectangles to form the letter “H.” The code is on the left, the image they drew is on the right.

That’s the most basic version, with the tasks getting incrementally harder as they introduce new coding ‘moves.’ Kids have of a bunch of chances to gain practice, and they can also apply the concepts by writing their own programs or “creations.”

  • Here’s an example of the lines of code one of our students used to create a piece of artwork. This took Jonathan a little less than an hour, tinkering with all the variables and figuring out which adjustments made the picture turn out the way he wanted.


One annoying thing about the program

When students are doing activities wrong, the program isn’t very good at helping them out, or sometimes tries to be too helpful when it’s not really wanted. I’ve seen it frustrate our students a couple times because it makes them think they’re doing something wrong when they’re really not. Here’s an example (I’ve added in red below)- as students start typing lines of code, the error message pops up even though students are on the right track. The error message pops up because whatever is on the screen isn’t totally correct, so it’s prematurely telling them they’re wrong.


How often do our 5th graders use it?

Right now, we’ve only got about a dozen or so students learning how to code from Khan Academy. On average, they’ll spend roughly 1-2 hours per week on the program. So far, it feels like a good amount. The lessons and activities can get pretty tough, and I’ll often see kids just staring at their screens trying to think through lines of code they need to fix.

Here’s a big question for us. All of these kids spent a significant amount of time using Tynker last year, which tries to teach students how to think like programmers without actually teaching them how to write lines code. I’m not totally sure how beneficial it was to them loving Khan Academy now, but I’m sure it helped. So here’s what I’d like to figure out: should everyone first use a program like Tynker that teaches them how to “think like a programmer,” or should they jump straight into a program like Khan Academy’s “Intro to JavaScript” that starts teaching them to write lines of code right away?


So what’s actually happening in the room?

When students are on Khan Academy, they’re working at their own pace. If they need to watch videos, they throw on some headphones so they don’t distract other students. If they’re doing an activity, they have notebooks they use to help them map out problems. They’re working solo about 95% of the time, and I’m just in the background observing and making sure they’re on task.

Early on in the process when things got tough, students would ask for me for help and things like “it’s too hard,” or that they “can’t figure it out,” etc. From the get go, though, my reaction has just been to let kids figure it out on their own.  At first they’d get really annoyed, but now they expect it. And it’s great, because instead of waiting for me to give them the answer, the kids know they just need to sit there and figure it out. They’ll go back and redo old activities to help them, re-watch old videos, or just stare and think until they get it. I may have helped out with some good hints just once or twice the entire year out of mercy, but they never expect it.

Early on, I tried getting some students to help out the other ones as “coaches.” If a student had an especially hard time with an activity, they could ask another student to help them out. I stopped doing this almost immediately because the “coach” pretty much always gave away the answer, instead of just nudging a kid in the right direction. The student who received help would go onto later activities, but couldn’t always do them because they didn’t know things they needed to learn earlier.


if you’d like to talk shop: