Live data from Hacker News

Khan Academy: Computer Science

khanacademy.org

11–20 of 188 posts

Re: Khan Academy: Computer Science

#11

That's awesome, but I think it would be much more accessible for newbies if they included download links and installation steps. I have friends who might be interested in this for whom just the installation could be a daunting hurdle.

http://codepad.org/

Click on Python.

I'm not sure how many of the Khan Academy tutorials you could get through...

Re: Khan Academy: Computer Science

#12
post #8

Interesting that he uses Python to teach the examples. Python is what I learned first. Does anyone have an opinion on whether Ruby or another language is better suited for teaching basic programming concepts?

For starting out programmers, I think it really doesn't matter which language that's used, as long as the language supports strong type safety, the ability to create data structures, and, ideally, also has garbage collection. Java, Python, and Ruby all work for this. In a perfect world, the language would also support C-style pointers, but GC is more important feature for a brand new programmer. Initially, the goal s…

Actually research has shown that it does make a difference: [Why complicate things?: introducing programming in high school using Python](http://dl.acm.org/citation.cfm?id=1151880)

They found that students who were taught Python instead of Java scored higher on their tests. Languages like Python and Ruby make it far easier for people to jump straight into the code. If I'm learning about linked lists why do I need this main method? Ruby and Python have lots of abstractions which make it easier for someone learning to be able to focus on the problem at hand.

Re: Khan Academy: Computer Science

#13
Khan Academy is interesting but imo it's not complete. Technology enables us to make learning an interactive experience -- either interacting with another person or with a REPL interface (like Codeacademy). Just posting videos online in one place is kind of like the obvious step that took a surprisingly long time to get to. It's definitely a step forward, but I can't imagine people are learning enough about, for example, Biology to be able to do something significant with what they've learned.

Computer science is a little different, because people have been learning CS online since well before Khan Academy.

Re: Khan Academy: Computer Science

#14
I've never used a Khan Academy video but that's out of pure negligence on my part, not skepticism.

That said, I have always wondered how effective video is as a teaching tool for programming? I guess when I think about it, it's the same delivery tool as an in-person lecture, but in some ways, more effective since you can pause, rewind, etc.

See the comments on this article about how to do a Fibonacci recursive example (which seems to be well done; the teacher takes it as slow as humanly possible): http://www.khanacademy.org/video/recursive-fibonacci-example...

The top comments are from people not knowing the difference between the equality and assignment operators:

"Why do I get an error with a single equal, but not with a double? This is what hung me up for a while."

...I don't know the history of this particular user, it's possible he/she skipped a bunch of the basic lessons and decided to learn recursion...but I wonder if there's a better way to somehow make sure people get the basics down, in an online teaching environment.

Re: Khan Academy: Computer Science

#15
post #8

Earlier quoted context omitted.

For starting out programmers, I think it really doesn't matter which language that's used, as long as the language supports strong type safety, the ability to create data structures, and, ideally, also has garbage collection. Java, Python, and Ruby all work for this. In a perfect world, the language would also support C-style pointers, but GC is more important feature for a brand new programmer. Initially, the goal s…

Actually research has shown that it does make a difference: [Why complicate things?: introducing programming in high school using Python]( http://dl.acm.org/citation.cfm?id=1151880 ) They found that students who were taught Python instead of Java scored higher on their tests. Languages like Python and Ruby make it far easier for people to jump straight into the code. If I'm learning about linked lists why do I need t…

Indeed.

As someone taking a data structures course in post-secondary school where the facilitation language is Java, I've struggled more with the Java development environment than I have with actually understanding the data structures and the implementations. Even the Java specific implementations are simple once you can get your package and classes playing nice and compiled to bytecode.

This is not a slam on Java, just an observation from personal experience that some interpreted languages like Ruby and Python tend to make it easier to do casual programming exercises or tasks than those needing any compiling prior to execution, such as C, C++, and Java.

Re: Khan Academy: Computer Science

#16

That's awesome, but I think it would be much more accessible for newbies if they included download links and installation steps. I have friends who might be interested in this for whom just the installation could be a daunting hurdle.

http://www.python.org/download/

Right, but do you understand how unintelligible that page is for most people? My dad is smart enough that I'm sure he could learn how to program, but I'm almost certain that he wouldn't know what to do on that page. Also, I think last time I encouraged a non-compsci friend to install python, they had issues with the PATH not being set right, and quickly lost interest.

Compare that to the Firefox download page, where it auto-detects everything it needs to know about your computer and gives you one simple, unambiguous giant "download me" button that just works. If this was a conversion funnel, python would be losing most of their money (i.e. potential users) at this step.

Re: Khan Academy: Computer Science

#17
post #14

I've never used a Khan Academy video but that's out of pure negligence on my part, not skepticism. That said, I have always wondered how effective video is as a teaching tool for programming? I guess when I think about it, it's the same delivery tool as an in-person lecture, but in some ways, more effective since you can pause, rewind, etc. See the comments on this article about how to do a Fibonacci recursive exampl…

I remember I first bought a Java book to learn to program when I was around 15-16. I tried for days but couldn't figure out why the first example program wouldn't work, it was because it wasn't System.out.print1n but System.out.println. In the font the code was written in, I couldn't tell. Because of that it wasn't until at least a year later that I didn't try again.

Re: Khan Academy: Computer Science

#18
post #8

Interesting that he uses Python to teach the examples. Python is what I learned first. Does anyone have an opinion on whether Ruby or another language is better suited for teaching basic programming concepts?

For starting out programmers, I think it really doesn't matter which language that's used, as long as the language supports strong type safety, the ability to create data structures, and, ideally, also has garbage collection. Java, Python, and Ruby all work for this. In a perfect world, the language would also support C-style pointers, but GC is more important feature for a brand new programmer. Initially, the goal s…

I agree with your short list of goals for students new to programming. Language should not matter for learning the basics of programming and Computer Science concepts. That being said, certain languages do make exploratory programming much easier than others:

The biggest issue I've faced with my courses where Java is used to teach the material is having to deal with Java IDEs and boilerplate code required to test tiny bits of code and the resulting behaviour. Interpreted languages or those with REPLs tend to not have this problem from what I've observed.

Note: I know about BeanShell, but I've had poor results with it. Maybe my environment is at fault, but it seems to miss functionality as basic as command history, which makes editing commands very tedious.

Re: Khan Academy: Computer Science

#19
post #17
post #14

I've never used a Khan Academy video but that's out of pure negligence on my part, not skepticism. That said, I have always wondered how effective video is as a teaching tool for programming? I guess when I think about it, it's the same delivery tool as an in-person lecture, but in some ways, more effective since you can pause, rewind, etc. See the comments on this article about how to do a Fibonacci recursive exampl…

I remember I first bought a Java book to learn to program when I was around 15-16. I tried for days but couldn't figure out why the first example program wouldn't work, it was because it wasn't System.out.print1n but System.out.println. In the font the code was written in, I couldn't tell. Because of that it wasn't until at least a year later that I didn't try again.

Exact same thing happened to me when trying to do my first cs problem set. It was some filename that I was sure had a 1 in it but it was an l. It's almost as if courier tries as hard as possible to make the two look the same.

Re: Khan Academy: Computer Science

#20
post #14

I've never used a Khan Academy video but that's out of pure negligence on my part, not skepticism. That said, I have always wondered how effective video is as a teaching tool for programming? I guess when I think about it, it's the same delivery tool as an in-person lecture, but in some ways, more effective since you can pause, rewind, etc. See the comments on this article about how to do a Fibonacci recursive exampl…

I've wondered this too. I wonder whether "doing" with some hints like Code Academy or watching videos and then doing is more helpful for programming and then how that applies to other disciplines like writing, math, etc. Seems like eventually we'll find a way to converge where I can do both side by side.
Post reply on HN