
Khan Academy: Computer Science - johns
http://www.khanacademy.org/cs
======
dag11
The videos for CS are brilliant. I don't think programming videos could
possibly be more perfect than this.

For example: <http://www.khanacademy.org/cs/booleans/839898911>

So you can scrub through the lesson and play and pause it, and the instructor
can type code into the editor directly causing it to output on your screen in
real-time. But the amazing outcome of this is that the viewer can pause the
lesson at any time and fiddle with the code directly, instantly changing the
outcome. The downside to this is that if the lesson is then resumed, your
modifications are kept and the code will be out of sync with the teacher's.

Another cool thing is that the teacher can draw directly onto the program
output section just like in normal Khan Academy videos.

Brilliant. I'd say it's almost just as good as having someone right _next_ to
you teaching you how to code. The virtual teacher is typing the code directly
into your computer!

~~~
jeresig
Awesome - glad you're enjoying it! One thing to note: If you make changes to
the code and then hit play again right now the user's changes are lost (making
sure that playback will continue to work). We definitely want to persist those
changes in some way, automatically, although in the worst case the user can
always make some changes and hit 'Save' and they'll be saved to their own
account.

~~~
raldi
Thanks for dropping in.

As long as you're here, I'd like to bring to your attention a UX issue that
might deeply impact first impressions. If you visit the site for the first
time and click the play button, there's a good chance that, immediately
following this click, the mouse cursor will stray into the code area.

This causes the code to turn white, and so the viewer just sits there
listening to the lesson and watching things change in the running-program
frame, oblivious to the fact that the code is invisibly changing, too (one of
the coolest parts of the product).

You might want to unfade the code and get rid of the "Pause" button if the
cursor hasn't moved in a while, to ensure first-time visitors don't miss the
awesome code-to-audio syncing.

Other than that, I'm super impressed with the site.

------
cantankerous
Methinks "Computer Programming" or "Information Technology" would be a better
title for this section than Computer Science. They are more general and
applicable to the content.

~~~
jeresig
I disagree. We're working towards the goal of having a comprehensive Computer
Science curriculum and this is just the first step. I talk more about our
reasoning and methodology here: <http://ejohn.org/blog/introducing-khan-cs/>

~~~
brown9-2
I really love what is being done here so far, especially the voice overs and
live code editor, but I think it might be helpful to first-time visitors to
put some more of that info on the khanacademy.org/cs page as well.

Right now, at first glance it just looks like the Khan "Computer Science"
curriculum is solely about learning how to make drawings and animations with
processing.js. It can be a bit confusing to the first-time visitor, who might
be asking "What is this page going to teach me exactly?".

~~~
dsawler
This. Exactly. I was really confused. I've been trying to learn JS on an off
for about a year. When I was shown the new CS program at Khan Academy today, I
was instantly confused because...I was drawing pictures using processing.js.
So..was I learning javascript or was I learning this processing.js that runs
on top of javascript? As a beginner, I think it's super important you clarify
this.

------
Groxx
Interactive numbers in the UI: seriously awesome. LOVE that they did this.
Hopefully we'll get live updates to code in more systems, it's wonderful.

Lack of a 'course' to go through: ? I have no idea where to start. Nor can
many of these be applied outside of the little editor with the 'tutorial'.
Elsewhere, KA has a nice 'do this, then that (or _that_ )' set of branching
paths that give you a reasonable path to take. I see none of that here. Am I
missing something?

~~~
lobo_tuerto
I don't see a problem here. I really like the playground feeling it has all
around.

Maybe I'm biased, but I prefer "pick the one that appeals more to you" style.

~~~
Groxx
Playgrounds are fun, and I've done a huge amount of learning in them (and
building them for my own play).

I'm not convinced that they develop great foundational knowledge about a
system; they tend to favor quick, narrow dives (to any depth), rather than
mucking around in all the boring bits that actually _make_ the whole system.
Great for getting the gears turning and keeping interest levels up, not great
for full comprehension.

------
recursive
This looks like it has more to do with programming than computer science.
That's a good thing, in my opinion, since I think programming is probably more
generally useful. But it's a little misleading as the title.

~~~
dullcrisp
I would really like to see something like a Khan Academy for introductory
computer science. As it is, it seems there's nowhere to learn computer science
basics at a below university level.

~~~
simonbrown
What about Coursera?

~~~
dullcrisp
I haven't checked out Coursera, but isn't it more of a college course that you
can take online? Khan's videos seem much more accessible and are mostly aimed
at a high school level. There are many people who browse through Khan's videos
who don't have the time, motivation, or ability to take a Coursera course.

I think that basic computer science (or at least basic theory of computation)
is at least as important to understand in the modern world as algebra or
calculus, and I don't like that it isn't more widely taught. I looked at Khan
Academy hoping to find a good introduction for someone and was disappointed
when I found that all it had was an introduction to programming.

~~~
nickik
Coursera is more like college course in that it has lecturs and after that you
have 'homework' but its much better then normal college stuff put on the net.
It is made for the internet not for offline and thrown on the net.

------
eranation
I'm checking CS on Khan academy every few weeks with hope for something like
this, the Python class was great, but this is really exciting, and having Vi
Hart do the videos is cool (or someone with a very similar voice...) -
correction: it's narrated by Jessica Liu, who is doing an amazing job too

~~~
mtgx
I wonder why they didn't do the Computer Science class in Python, especially
that now more schools are adopting Python. Isn't Python better for learning
than Javascript? Did they choose Javascript for this one just because they
already had a Python course and they wanted a Javascript one now?

~~~
dudey
I think that python is the better choice for an in-person class, but building
an in-browser js interpreter is a lot simpler than an in-browser python
interpreter.

~~~
aangjie
Hmm. that makes sense. because browser have been handling js for a longer time
and so there would be more support for a in-browser js interpreter. I have
seen some python in-browser interpreters, which are good though.

------
vlad
Great work, but I have some feedback about the first video shown to everyone
who visits the Computer Science page.

1) It jumps right into talking about syntax of programming instead of showing
screen shots of what a person will be able to build after completing the
lessons, the benefits of learning about Computer Science, some cool problems
they will know the answer to, etc, like Udacity does.

2) It is spoken way too fast. It's going to turn off almost all non-native
english speakers, as well as confuse many english speakers.

3) As if that's not bad enough, anyone who turns on closed captioning to get a
transcript will be even more confused, as YouTube's transcription is both
messy and flashes quickly. It's so useless, you should look into disabling the
CC button for the videos while looking into other approaches in the mean time.

Example:

"according to a common just by out of the two facets to the front and we call
this commenting out coat now the fun we skipped and sometimes this can get
away with the land was for".

4) When re-recording it, I hope the speaker (who is female) says "men and
women" rather than "dudes" when talking about programmers several times. Lots
of women have contributed to software development. Otherwise, she made some
great jokes!

[http://www.khanacademy.org/cs/1-welcome-to-
codecanvas/882454...](http://www.khanacademy.org/cs/1-welcome-to-
codecanvas/882454257)

~~~
dudey
Speaking slower would make the videos much longer, which would lose
viewership. I'm in favour of having the presenter talk quickly, thus making
the video shorter. The words are all spoken clearly; it's easy to pause and
rewind if you need to.

------
Atropos
That is really incredible work! I bet Codecademy is happy they already
received their $10m round...

------
sanxiyn
Pretty cool! Here's my first try:

<http://www.khanacademy.org/cs/1d-random-walk/968033552>

------
Kiro
So what's the difference between this and any other tutorials on the internet?

~~~
pjscott
Try it. Go here, have a look around for a minute or two, maybe fiddle with
some code:

<http://www.khanacademy.org/cs/tutorials/drawing>

It really improves on the classic style in two ways:

1\. It's very easy to get started. There's no setup; just click a link.

2\. The connection between the code and what it does is made very clear. The
picture depends on the code, and changes when you change the code. There are
sliders you can adjust for each integer literal. Bam!

This is exciting stuff.

------
laserDinosaur
I just noticed the Khan academy website has no logo

~~~
shocks
What website are you looking at?

~~~
laserDinosaur
Never mind, it's appearing now. Maybe Chrome messed up because it wasn't
appearing on any of their pages =/

Ha, too bad to. I thought it was a nifty idea of driving home the point that
information should be free :)

------
m0skit0
The "How to read documentation" link is dead...

~~~
m0skit0
[http://www.khanacademy.org/cs/how-to-read-
documentation/1102...](http://www.khanacademy.org/cs/how-to-read-
documentation/11025)

