Thursday, April 23, 2015

Check out awesome projects from Algorithms students!

In November, we released the algorithms course, a combination of articles, visualizations, quizzes, coding challenges, a few creative projects. Today we turned on the project evaluations page for algorithms, so that our community can see the neat projects that learners are coming up with, and help evaluate the projects. Here are some of my favorites I've seen so far:

A visualization of selection sort:

A rainbow-colored Sierpinski triangle:

Check out more on the project feedback page and give them your feedback!

Monday, April 20, 2015

How does our real-time editor work? Find out for yourself!

We now have a real-time, interactive editing environment on Khan Academy for JS/ProcessingJS, HTML, and SQL. Last year, we decided to make the editing environment open source on Github, to share how it works and encourage others to contribute. We've since had multiple contributors, and the most prolific, Kevin Barbarash, joined KA as a full-time employee.

If you're curious how it works, you can watch this talk from John Resig and this talk from me (Pamela Fox). You can also read this deep dive into the JS editor or browse through the code itself. If you're willing and able, we'd love more help in tackling the many complex issues that we run into when creating this cross-browser, real-time environment that's used by millions of students.

New classroom project idea: Make a music video

In our teacher's guide, we have a list of additional project ideas. I've just added another project to that, Project: Make a music video. That project is based on the Let it Code music video that I made with our online community last year, and it would be a lot of fun for a classroom of creative coders.

If you try that project or have other additional project ideas, let us know!

Tuesday, February 24, 2015

New course: Make interactive webpages with JavaScript

On Khan Academy, our two most popular programming courses are Intro to JavaScript, where you learn the fundamentals of JavaScript with the ProcessingJS library, and Intro to HTML/CSS, where you learn to create, style, and lay out a web page. But that's like having strawberries and chocolate in front of you, and not dunking a strawberry in the chocolate.

Why? Well, JavaScript was originally invented in order to bring HTML/CSS web pages to life, to make them interactive with events and animation. The language has become very popular since its invention and is now used outside of browsers, but still today, it is the only language that browsers natively understand and it is used by every interactive web page on the internet.

That's why we've put together a course on making web pages interactive -- combining your knowledge of HTML/CSS with your knowledge of JavaScript so that you can programmatically access parts of your page and modify them in response to all sorts of user events. With that knowledge, you can make slideshows, games, galleries, apps -- virtually anything you've seen on the web.


Get started with the welcome video and HTML/CSS/JS review quizzes, then get deep into DOM access, modification, events, and animation.

A big thanks to our early reviewers for all their great feedback:
Nicholas Zakas, Kevin Lozandier, @wbwalp, @SpongeJR, Katarina L., and @TheSwedishHutt. Now go make your webpages fly!

Tuesday, February 10, 2015

Earn rewards for your classroom with DonorsChoose.org and Google

We've partnered with DonorsChoose.org and Google on a program to help teachers earn rewards for their classroom while encouraging their students to learn programming. We ran a similar program last year, and since teachers and students both reported loving it, we're doing it again this year.

How does it work? Once teachers sign up for the program, they tell students to start working through Intro to JS, and in mid-March, we'll tally up how many students completed the course and send that to DonorsChoose.org. The teacher will then get a gift code equivalent to $100 for each student that completed, and they'll be able to use it to fund classroom technology projects on DonorsChoose.org - and all that funding is thanks to Google. Many teachers use the projects to buy things like laptops and robotics, so they can better teach computing in the future.

The funding rewards program is currently only available to public schools and high school students at this time, though of course, the course is available and free for anyone. If you're a teacher that's not eligible for this program but does want technology for your classroom, look through this list of technology grants that we've collected.

Saturday, January 10, 2015

Just released: sound effects for ProcessingJS programs!

The students of the Khan Academy programming community love making games, animations and mini-movies, and they've been clamoring for a particular new feature for the last year: sound. Their wait is over! Last week, we released a way for programs to play sound effects.

The code is as simple as this, purposefully similar to image():

playSound(getSound("rpg/metal-clink"));

The current sound effects in the picker are from an RPG pack:

We also have more sound effects coming soon, like a retro pack made by one of our top community members.

We've updated the program guidelines to specify that sounds should only be in response to user interaction, so that sounds don't become an annoyance. We'll hold a contest soon to challenge students to use the sound to enhance their programs in the most impressive ways. We hope that sound effects inspire even more creativity in our community!

Holiday contests: Lights, trees, snow globes, fireworks, and games!

In December, while millions of new students were trying their first hour of code, thousands of students in our programming community were creating amazing entries in four holiday-themed coding contests. I picked the top 5 for each one (it was sooo hard!) and made a few montage videos, too. Check them out!

Contest: Light up this house!

Check out the entries here and winners here. Here's a video montage that I made of the entries, synced to Pachebel's Cannon:



Contest: Animate this snow globe

Check out the entries here and winners here.


Contest: Tree decorating

Check out the entries here and winners here.


Contest: Snow game

Check out the entries here and winners here.


Contest: Fireworks

Check out the entries here and winners here. Here's a montage I made of the entries, synced to "Ride of the Valkyries":