Monday, May 11, 2015

New course: Learn SQL interactively on Khan Academy

There are millions of SQL users around the world. Who are these people, what is SQL, and what are they all using it for?

SQL stands for "Structured Query Language" and it's the standard way to interact with relational databases, a way we store data in apps and websites. Like if we actually had a database of all the people in the world and the things they use, we could find out the exact number who use SQL with a query like this:

SELECT COUNT(*) FROM people WHERE things_they_use LIKE "%sql%";

It's not just the database admins that are using it; it's the engineers that are writing code to send data to it, it's the product managers that are making decisions based on it, it's the marketing managers checking if their campaign was successful.

So that's why we decided to teach SQL on Khan Academy. We think it's the kind of skill that a huge range of people can use in their everyday life, and even if they don't, it's a great introduction to data storage and manipulation.

We started with just an Hour of SQL back in December, and based on its popularity, we're releasing a full introductory SQL course today. You'll learn more ways to query complex data, how to join data across multiple tables, how to update and delete data, and see a lot of real world examples along the way. And of course, like with all of our programming courses, you'll be writing the SQL yourself in our interactive editor.

Whether you're learning SQL for work or play, we hope you'll join us! Get started with the welcome video, or if you already did the Hour of SQL, jump in on the advanced queries tutorial:

Monday, May 4, 2015

Step 1) Learn English, Step 2) Learn to code ?

I just watched this TEDx talk where a kid shares his story of learning English and then learning JS on Khan Academy (fast-forward to 4:20):

It's awesome how much people can learn on the internet with enough motivation. Hopefully, we'll keep building out our translations so that more people can learn to code before they even learn English.

Wednesday, April 29, 2015

New article: Classroom debugging tips

I'm starting weekly programming office hours for the Khan Lab School, and today was my first time down there, helping the mixed age students with their challenges and projects. As I helped them debug their programs, I realized that other teachers and TAs could benefit from my strategies for debugging programs together. That's why I ran home and wrote this classroom debugging guide. Enjoy, and let me know if you have any tips to add!

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!