Wednesday, November 26, 2014

Help translate our Algorithms course!

As we we recently announced, we are now teaching Algorithms on Khan Academy, thanks to a collaboration with two Dartmouth professors. We would love to have learners around the world benefit from their fantastic content - and that's where your help comes in, especially if you know Spanish, French, Portuguese, Polish, Danish, or Hebrew. We've had a few articles translated for Spanish (like the one shown below), but there's still much more to translate.


If you're able and willing to help translate, you can use the WYSIWIG in-context translation environment on translate.khanacademy.org:


Alternatively, you can pick the relevant language on CrowdIn and search for "learn.computing.computer-science.articles" on that page.

You might also want to check our FAQ about translation, but if you can also ask questions here specifically about translating algorithms.

Thank you for helping us bring algorithms to a global audience!

Wednesday, November 19, 2014

Learn how to make webpages with HTML & CSS on Khan Academy

I often get asked how I got into programming. Well, it all started with me forgetting to buy a gift for my mum. I was in 6th grade, and it was Mother's Day. We lived a few hours walk from the shops in town, and I had to walk by a high-security penitentiary to get to those shops - given the recent surge in prison escapes, I didn't feel like taking the risk.

I'd been browsing the web a lot recently, checking out the fan websites for my favorite boy bands and hanging out in pet-themed chat rooms. I always liked the idea of making gifts instead of buying gifts, so I thought "hey, I'll make my mum a webpage!"

I searched on Yahoo! for instructions (this was even before the days of Google'ing), and made a webpage for my mum with a big cheesy "Happy Mother's Day" GIF at the top (thanks, Microsoft Word Art!). My mum was happy that I'd taken the effort to learn something new; I was happy that I'd discovered how to get away with never buying gifts and I was left with a newfound curiosity for making things on the web.

And that's how I got into programming. I started off in HTML and then got into Perl, Java, JavaScript, PHP—anything I could get my hands that would enable me to share creations on the web.

Now, nearly 2 decades later, the web is ubiquitous and there are more than 1 billion websites on the internet. Every single one of those websites is built with HTML, and probably many of them include CSS for styling and JavaScript for interactivity.

That's why I'm thrilled that we can now teach HTML and CSS on Khan Academy. HTML/CSS is the first step on the path to being a web developer, plus it's also a skill that non-developers can hugely benefit from - like bloggers, marketers, and librarians - because HTML shows up in so many of their jobs, too.

You can try out our HTML/CSS environment here. It's interactive and real-time, just like our ProcessingJS environment, plus includes a color picker, image picker, and number scrubbers.



To help you learn how to make webpages, we've put together an Intro to HTML/CSS course. It's around 8 hours of talk-throughs, coding challenges, projects, and quizzes, and will give you a great basis in the most common HTML tags and a wide range of CSS selectors and properties.



For something more bite-sized, you can start with the Hour of Webpages, which is one of our Hour of Code offerings this year.



Thank you to the team for all their hard work in making this possible - John Resig, Brian Bondy, and Alex Rodrigues. Let's get more people hooked on HTML!

Monday, November 17, 2014

Algorithms on Khan Academy, a collaboration with Dartmouth College professors

What is an algorithm? It’s a sequence of steps that you follow to solve a problem. In everyday life, you might have an algorithm for hanging up your laundry, efficiently going through a shopping list, or finding an empty parking space in a lot. In computer science, an algorithm is a sequence of instructions that a computer program follows. Algorithms form the basis of the most interesting and important programs we use, such as the algorithm that Google uses to calculate driving directions, or the algorithm that Facebook uses to automatically tag you in a photo.

Because algorithms are so important to computer science, they are a core part of a computer science curriculum. The AP CS A class teaches object-oriented programming with algorithms,  every college CS student will have at least one algorithms class and encounter algorithms everywhere, and every software engineer interviewing for a job will review algorithms while they’re prepping for an interview.

Given how important algorithms are, we were elated when Dartmouth professors Thomas Cormen and Devin Balkcom suggested writing an online course on Algorithms, available to anyone for free, forever, on Khan Academy. If you’re a college CS student, you might recognize the name “Cormen” - he’s the “C” in the “CLRS”-authored Algorithms textbook, the most popular algorithms textbook used by college classes. Balkcom is a fellow professor at Dartmouth, and he’s actually rewritten their introductory CS class, so he’s an expert in teaching algorithms to new computer science students.

 We worked over the summer to create an introductory Algorithms class that’s highly interactive. Algorithms can be hard to wrap your head around, so we have both step-by-step diagrams and interactive visualizations to explain each algorithm:

We also want to give you a chance to try coding the algorithms yourself, so we’ve used our JavaScript coding challenge framework to create 20 challenges with unit tests (and you’ll have to write unit tests yourself!):

We’ve also sprinkled in a few quizzes, to make sure you understand concepts like asymptotic and graph notation:

This curriculum covers everything you’d find in an intro course - asymptotic notation, binary search, selection/insertion sort, recursion, merge/quick sort, graph representation, and breadth first search. There’s much more to cover, of course, including going more into how you can design your own algorithms, but we’re so excited about what we have now and how much it could help software engineers in all stages of life that we want to get it in your hands now.

Please dive into the course and let us know what you think - you can leave comments beneath the articles, or email us more detailed feedback at compsci-feedback@khanacademy.org.

Thank you again to Thomas Cormen, Devin Balkcom, and their supporting staff at Dartmouth for making this Algorithms class a possibility.

Saturday, November 8, 2014

BusinessInsider goes inside Khan Academy Computer Programming

BusinessInsider reporter Madeline Stone does a lot of reporting about the tech sector, so she decided to get a taste for it herself by going through an entire Intro to JavaScript course. She wrote up a great article about her experience, including a few areas where we can improve (and we're working on those!). Check out one of her projects:


I also answered a bunch of great questions for BusinessInsider about why I think learning to code is important, and what I love about teaching coding for Khan Academy.

Thank you to BusinessInsider and Madeline for taking the time to experience what so many of our students are experiencing. Let's hope even more folks get code-curious!