Live data from Hacker News

Khan Academy: Computer Science

khanacademy.org

181–188 of 188 posts

Re: Khan Academy: Computer Science

#181
post #91

Earlier quoted context omitted.

Good point. That's why I am big fan of teaching "Computational Thinking" before any specific programming language. Personally used Scratch (from MIT) to teach my nephews and niece. It worked well to cement their core concepts. http://scratch.mit.edu/ http://info.scratch.mit.edu/sites/infoscratch.media.mit.edu/...

Do you know of a basic introductory course using Scratch so I don't have to ad-hoc it so much? We're supposed to be building a game but I need something, like KhanAcademy, that I can give my primary-aged son space to explore by himself without me hovering over him.

You may want to refer to the curriculum link I posted in the thread below. I don't think it is sufficient for what you are looking for. In fact, these days I am spending time on developing such a course (actually it is more than just programming; it includes intro to hardware and communications). Happy to share it with you when it is done. Also, would be open to receiving suggestions for it (based on your experience)

Re: Khan Academy: Computer Science

#182
post #78

Earlier quoted context omitted.

In my head, I reserve the word "let" for immutable bindings. Or at least local bindings that people probably aren't going to mutate. I read it as "x equals five". So, between three of us, we saw that simple line of code in three different ways. I wonder what other people see in more complicated code.

The point is that if you pronounce if(x=5) and if(x==5) both as "if x equals 5", then you are making things confusing for students. You as the teacher are saying the exact same words, but mean two completely different things. Kahn made this mistake and there are student comments showing the confusion. Not correctly understanding assignment is one of the biggest failure points for beginners learning programming. The '…

I pronounce "==" as "equalsequals", sort of slurring the two words together for speed, so they sound like all one word. This is consistent with the way I treat the bitwise-versus-boolean operator confusion, e.g. "&" is "and" while "&&" is "andand".

I agree with your main point, though, that failure to understand assignment is one of the biggest failure points for beginners. What programmers need to be able to do is trace through the execution of a program in their head, thinking "once this statement executes, the state will change in so-and-such way."

If I had to teach introductory programming again, I would focus more on having people fiddle around with variables in a REPL, just to get a feel for that sort of thing.

Re: Khan Academy: Computer Science

#183
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 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. It's a lot better than some of in-person lectures I've taken, but maybe that's just me. I've been encouraging my peers to use online videos as a source to learn stuff they have a hard ti…

> "I was freaking out when I couldn't solve some Project > Euler questions, and pretty much lost all of confidence in > my programming abilities for a while.

I've read way too many people online suggest Project Euler as a way to "teach yourself programming". This is almost a sadistic suggestion. Project Euler is way too hard to teach yourself programming.

Evidence: nearly 180,000 people have solved problem #1. Only 76,000 have solved problem #10. Losing 60% of your audience by problem #10 is pretty bad question design for learning.

Anecdote: I've been programming for over 25 years. I was near the top of my class in a top-10 computer science university program. And I've solved 30 Project Euler problems in the last 3-1/2 years. But I still can't solve problem # 18. I've worked on it off and on since December 2007. Only recently, quite by accident I learned that it is probably a "dynamic programming" question, which is something I've never done before.

Never lose confidence in your coding ability because Project Euler stumps you now and again.

Re: Khan Academy: Computer Science

#184
post #132
post #75

Earlier quoted context omitted.

It has a very low barrier to entry, and it's not a bad first language. Also, while this has nothing to do with JavaScript per se , I'm reluctant to bet against John Resig.

Come on, it's the Basic of this decade.

Exactly. Just think how many people got started programming because BASIC was right there, and easy to get started with. JavaScript is a strictly better language, and I would bet that the Khan Academy guys are planning to make JS as instantly rewarding as BASIC was back in ancient times.

Re: Khan Academy: Computer Science

#185
post #180

Earlier quoted context omitted.

I'm pretty much winging it with the Middle Schoolers. Normally I throw a quick demo up on the big screen, talk about it for a couple of minutes pointing out what it does that they were struggling with in the last class. Then they work on doing something interesting while I answer questions and ask "What happens if...".

In case you are interested, there is a curriculum that ScratchEd team has developed. http://scratched.media.mit.edu/resources/scratch-curriculum-... Personally, I also "wing it". I encourage them to come up with ideas for games, animations that implicitly requires them to cover all aspects of "computational thinking". It's implicitly because I don't want them to think of this as too academic; let them have fun while…

Looks interesting -- they posted that a week or two after I was searching. We're heavily into animations and games right now, including one where the student is building up space invaders, one complication at a time.

Re: Khan Academy: Computer Science

#186

Earlier quoted context omitted.

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…

navigating the internet and reading through some basic documentation seems like a pretty basic requirement for a 'programmer'. It might be unintelligible at first, but a little struggle is a better teacher than constant hand holding.

The old cruel IRC days of RTFM made me a better, more independent problem solver.

Re: Khan Academy: Computer Science

#187
post #69

High school CS teacher here. I really hate taking shots at Khan Academy, because I love what they do and his other videos have really helped a lot of my students in chemistry, economics, etc. However, he's moving through the material MUCH more quickly than I've ever been able to do as a teacher. And I get nearly 5 hours a week of face time with my students. For example, his third lecture is on for loops. My students,…

I wish I had a CS teacher go that in-depth before covering loops. My first CS class was in c++ and the material came off as extremely unintuitive (like what the hell is int main()?!?!). Learning CS is definitely a slow process. Actually understanding CS took me as long as understanding music theory enough to be able to improv/solo on a musical instrument (piano and guitar in my case).

Re: Khan Academy: Computer Science

#188
post #166
post #103

Earlier quoted context omitted.

Interesting schedule. My school's AP Comp Sci A class (also teaches Java) is designed for people who are completely new to programming, but we are introduced to loops fairly early. After first being introduced to the different variable types, mathematical expressions, and how to read user input, the students jump directly into boolean, if, switch, and then the for/while/do-while loops.

How many kids take the class? How many do well? I have 75 kids in three sections, and I'd have 100 kids in four sections if they'd open up a fourth section. And all of my students except maybe the bottom 5-10% are moving confidently through the material at their own pace. I'll bet your school either has 1) a lot fewer students 2) a much more hand-picked set of kids, or 3) is leaving a much higher percentage of kids b…

We only have 12 students. I'd estimate that of those 12, about 6 do well in the course. Of the remaining 6, only 1 or 2 are actually struggling with the course.

My school is a small (~130 per grade), but renowned international school in Shanghai, China. Your first two guesses are very much spot-on, but I'd have to disagree with the third. Those of us that are ahead help out with the one's who are struggling and in the end, I'd like to think that it all works out well.

With that in mind, however, your numbers are indeed more impressive. Because our class size is so small, we're constantly involved in face-to-face interaction with our instructor and with our peers. I doubt our pace would translate into the same success in your school. Is your course designed for the AP exam?

Post reply on HN