Slashdot Mirror


Khan Academy Launches Computer Science Curriculum

joabj writes "Expanding beyond math and the physical sciences, Khan Academy has added a set of computer science courses to its popular collection of learn-at-home instructional videos. For the project, Khan tapped jQuery creator John Resig, who chose JavaScript as the first language to teach students. The initial set of tutorials cover drawing, programming basics, animation and user interaction."

6 of 146 comments (clear)

  1. Re:Mighty broad definition of "language" there by grumbel · · Score: 4, Informative

    JavaScript can be an ugly language to work with, but the interactive editor they have looks really good and nicely works around all the issue one frequently runs into when using raw JavaScript (catches missing semicolon, catches typos of function names, allows editing color values via GUI, automatically runs the code on each change, etc.).

  2. Re:Mighty broad definition of "language" there by Intrepid+imaginaut · · Score: 4, Insightful

    Every language has its ups and downs. Javascript has the advantage that it bears some similarities to non-scripting languages and will produce instant results without getting too heavily into theory.

  3. Re:Mighty broad definition of "language" there by timeOday · · Score: 4, Funny
    Heh, I noticed that too.

    .

    Real Programmers must spend their first year writing Pascal code to create hypothetical schedules for students at a university, followed by implementing every data type in a fat textbook from "Associative Array" to "Weight-Balanced Tree." Second year, the same thing - in Scheme. Final year, same thing - in assembler - and with runtime complexity proofs.

    Congratulations, the both of you remaining are done.

    What is this? Use of libraries? Graphics? User interaction? Heresy I say!

  4. SICP by Orgasmatron · · Score: 4, Interesting

    There is still no finer introduction to computer science than Structure and Interpretation of Computer Programs by Abelson and Sussman. Also, be sure to watch the videos.

    Computer science is about processes and structures, not computers, and not programs. LISP is still the ideal vehicle for learning about the important parts.

    On a personal note, a friend of mine had a CS 101 intro course some years ago that was Javascript based. It was absolutely terrible. I know that it was terrible, because I ended up re-teaching him each of the concepts using random old textbooks that I had lying around. He had no problem learning concepts in other languages (Fortran, BASIC, C, even some MIX when I used Knuth) and then applying them to back to the Javascript that he had to do the problems in.

    I know that Javascript wasn't entirely to blame there, but it sure didn't help. But why try to polish that particular turd?

    --
    See that "Preview" button?
  5. Re:Mighty broad definition of "language" there by Darinbob · · Score: 4, Insightful

    This really doesn't sound like "computer science" when you read the description. Where are algorithms, data structures, computability, complexity theory, etc? Programming != computer science. Even if they really meant that they were teaching programming, teaching a fad language used at an application level (not same as high level language) is not really the best way to teach programming. And what does "drawing", "animation", and "user interaction" have to do with programming or computer science?

    Way to go Khan to dumb down computing even more than it already is.

  6. Re:Mighty broad definition of "language" there by WankersRevenge · · Score: 4, Interesting

    Let me tell you where I'm coming from ... I hated JavaScript ... HATED IT ... for ten years, I endured it. A while back, I decided to finally wrap my head around it and actually study it the same way I studied languages like Java, C, and Objective C. Once I dropped the notion that it wasn't a class based language and that I needed to think differently in order to use it, I found it remarkably freeing.

    In fact, I grew so accustomed to it that I actually find class based languages constricting.

    Yes, it does have some dangerous gotchas, so the trick is to avoid those areas of the language, and then use static analyzer like JSLint for backup. It also helps to "use strict" on all your scripts

    The true irony is once I've come to enjoy the old dog, I've decided to move out of development. Maybe next lifetime :)