If you're seeing this message, it means we're having trouble loading external resources on our website.

If you're behind a web filter, please make sure that the domains *.kastatic.org and *.kasandbox.org are unblocked.

Main content

Programming content overview

We are strong proponents of teaching computing to students of all ages. What do we mean by computing? Many things:
  1. Using a computer to achieve goals, like being able to type, using a spreadsheet program, editing video, etc.
  2. Understanding how to program a computer using one of the many programming languages in the world, either to solve math and science problems or to create interactive apps, games, and experiences.
  3. Gaining a deep understanding of the science and engineering of computers, both on the hardware side (electrical engineering) and the software (algorithms).
We hope that just using Khan Academy will give students a little bit of that first aspect, and inside our Computing area here on Khan Academy, we're formally teaching the second aspect (Computer programming) and the third aspect (Computer science, Computers and the Internet).
In our Computer programming subject, we teach various ways of programming the computer. Our most popular content is Intro to JS: Drawing & Animation, but we've recently added on more ways, like Intro to HTML and Intro to SQL.
In our teacher's guide, we focus on how you can teach Intro to JS, is a fun and practical way for students to get started programming. These resources should help you teach programming in your classroom.

Content overview

Intro to JS: Drawing & Animation teaches the basics of programming in the JavaScript language, using the ProcessingJS library on top for drawing and animation. That means that we teach all the basic programming concepts in JavaScript, but our use case for them is visual. For example, when we talk about nested for loops, we demonstrate how we can make a grid of gems on our screen.
Topics covered, in order:
  • Basic statement syntax
  • Variables
  • Math operators, assignment operators
  • Strings
  • Functions
  • Logic and conditionals
  • Loops
  • Arrays
  • Objects
  • Object-oriented JS

Materials offered

Our course is made up of three types of materials:
  • Talk-throughs: These are our approach to videos, the way that we teach new concepts. Like Khan’s videos, they’re around 5 minutes long and teach one concept at a time. We present the code on the left, output on the right, and narrate as we write new code, while the output updates live. The student can pause the talk-through at any point, change the code, and see the new output, which is one way we encourage more interactive learning. The talk-throughs have transcripts for deaf students, and are partially translated into Spanish, French, and Portuguese.
  • Challenges: This is how we assess whether students understand the concept we just taught, and there is one challenge for every talk-through. Each challenge starts off with some code and has a series of steps with instructions and hint code for each step. We analyze their code as they type and offer messages to guide them in the right direction, when we see they’ve made a common mistake. When they complete the steps, they earn points and their progress is logged on their activity dashboard.
  • Projects: The projects are our opportunity to give students to be very creative with the concepts they’ve just learnt. They have a general set of guidelines but students can take them in their own direction. For example, after learning how to make shapes, students do “What’s for Dinner?”, drawing their favorite dinner on a plate using the shape commands. Those projects are peer evaluated from fellow online students (if the student is 13+). Many teachers also like to do their own separate evaluation of projects.
  • Review articles: These are a great way for students to review what they've just learned, both immediately after learning it and later on as a refresher.
The course currently consists of 40 talk-throughs, 35 challenges, and 10 projects. On average, the talk-throughs are 6 minutes long, the challenges take 5 minutes each to complete, and projects are often completed in 10-40 minutes, depending on how far the student wants to take them. In total, there is around 15 hours of content.

Prerequisites

The content is designed to be learnable by 4th graders and up. Math-wise, it requires the student to be comfortable with fractions/proportions, the idea of one number being a fraction the size of another, and that is a topic that is required in 3rd grade math in the US. Besides that, students should feel comfortable with typing.

Accessibility

Our programming content and interactive programming editor works on all modern web browsers. It works on the iPad, but students may find it's not as enjoyable to type on that keypad.
Do you have non-English speaking students? This content has been mostly translated to Spanish, with interactive subtitles for the talk-throughs (not dubbing). There is partial translation for Portuguese, Hebrew, Polish, and French. If you are able to help with translation, you may be able to sign up as a volunteer translator.
This content should be usable by deaf students. There is a transcript option available for the talk-throughs, which are the only aspect of the content with audio. Click the gear menu next to the play bar and select "Interactive Transcript". Students can pause if it is going too quickly.

Authors

The content was developed by full-time Khan employee Pamela Fox, with some talk-throughs voiced by Sophia Westwood and Jessica Liu. Before Khan, Pamela taught JavaScript for GirlDevelopIt, and she based the Khan Academy sequencing on the CC-licensed curriculum she created for  those GDI workshops. She is also a volunteer instructor for GirlsWhoCode and she regularly visits classrooms that use Khan Academy to learn more about how it can be improved.
The platform for delivering the content was developed by full-time Khan employee John Resig. John is well known for having created jQuery, the most popular JS library in the world, and is very active in the JS community.

Want to join the conversation?

  • male robot johnny style avatar for user Cj Hanser
    Do you have actual lesson plans for each topic? Perhaps tied to Technology standards? What about additional activities for enrichment?
    (4 votes)
    Default Khan Academy avatar avatar for user
  • blobby green style avatar for user Laura Dillon
    We are considering using Kahn Academy for our coding clubs this fall (https://msu-cse-outreach.github.io/technovation/). Our clubs are run by a handful of MSU students, who all need to be able to see the progress of club members as they work through exercises. I doesn't appear that a course can be set up with multiple 'coaches' or 'teachers'. Would you recommend instead sharing the credentials for a single teacher account among the MSU student coaches/teachers? If so, can multiple people log into the same teacher account at the same time? Also, is it possible to add homegrown assignments to a course?
    (2 votes)
    Default Khan Academy avatar avatar for user
    • stelly blue style avatar for user Evan Lewis
      It's not possible to have multiple teachers in a class, so sharing a single login for all of the teachers is the suggested workaround. Multiple people can log into the account at the same time.

      You can't build your own courses or create custom assignments on Khan Academy. However, if you come up with your own programming assignments, you can have students complete them using our code editor. You can view all projects that students create, so you would be able to see their work and review it, you just won't be able to create custom assignments that are automatically marked as completed like the course projects are.
      (2 votes)
  • mr pink red style avatar for user patricia clark
    I am looking at a variety of curricula to be used both at the middle school and high school levels.
    In terms of being a middle school CS course, would you consider Khan CS to be a standalone course whose duration is a) one semester, b) a full semester, c) a full year, d) multi-year?
    In terms of being a high school CS course, would you consider Khan CS to be a standalone course whose duration is a) one semester, b) a full semester, c) a full year, d) multi-year?
    Thanks!
    (2 votes)
    Default Khan Academy avatar avatar for user
  • leaf green style avatar for user wnazworth
    I am a homeschool mom. My son is 16. I am wondering what constitutes a full high school credit in computer programming? This year my son completed the following sections: Intro to Js. Drawing and Animation, Intro to HTML/CSS: Making Webpages, Intro to SQL:Querying and Managing Data, Advanced JS:Games and Visualizations, HTML/JS: Making Webpages Interactive, HTML/JS: Making Webpages Interactive with jQuery, Meet the Professional and 27 out of 74 in Advanced JS: Natural Simulations. Would this count as a complete highschool credit?
    (2 votes)
    Default Khan Academy avatar avatar for user
  • aqualine ultimate style avatar for user DevinM
    The content was developed by full-time Khan employee Pamela Fox, with some talk-throughs voiced by Sophia Westwood and Jessica Liu. Before Khan, Pamela taught JavaScript for GirlDevelopIt, and she based the Khan Academy sequencing on the CC-licensed curriculum she created for those GDI workshops. She is also a volunteer instructor for GirlsWhoCode and she regularly visits classrooms that use Khan Academy to learn more about how it can be improved.
    (1 vote)
    Default Khan Academy avatar avatar for user
  • hopper happy style avatar for user Enni
    how did you multiply the numbers
    (1 vote)
    Default Khan Academy avatar avatar for user
  • blobby green style avatar for user mark.rector
    Is there any plan to offer CS other than JavaScript for animations? I had hoped to learn pHp for CMS in social media. I am self-taught in basic HTML, js, cgi and so forth; am teaching myself HTML5.
    Also, I would like to offer basic training for Webmastering, which is now a lost art.
    This is probably posted in the wrong string, please accept my apologies. mit freundlichen grüßen/best regards, mark rector.
    (1 vote)
    Default Khan Academy avatar avatar for user
  • aqualine sapling style avatar for user Maria Laura Abreu Toribio #2
    How can I take these challenges without waiting 15 hours?
    (0 votes)
    Default Khan Academy avatar avatar for user
  • starky tree style avatar for user Franklin, Rachael
    Are the intro JS drawing and animation lessons aligned to CCSS math standards?
    (0 votes)
    Default Khan Academy avatar avatar for user
  • blobby green style avatar for user b hiatt
    I am 64, and just got a computer for my birthday. now, how do I use it?
    (0 votes)
    Default Khan Academy avatar avatar for user