Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Best strategies, analogies and/or scenarios for teaching kids CS skills?
4 points by discorunner on March 6, 2015 | hide | past | favorite | 1 comment
We're currently working on developing a teaching platform based around our BASIC interpreter DiscoRunner, and we would love to hear from HN readers as to what methods they've used in the past to teach kids computer science concepts -- which worked, what didn't, and why.

This will obviously be invaluable to us when it comes to working out the lessons that will be taught in our fight-to-save-the-world-from-evil learning environment, and we would be eternally grateful for any scraps of wisdom you could toss our way. =)

Thank you!



I spoke last week to 50-60 middle school students (ages 12-14) during a day long S.T.E.M demo day. There were 4 sessions with 10-15 kids in each hour-long session. My theme was "Learn to Program" and why everyone should learn to read and write code.

For the first 20 minutes, I reviewed some slides (the "who", "what", "why" of programming). For the rest of the time, we built a Flappy Bird game using the tutorials on code.org. This made everything "click" for them, since it was hands on and practical. Suddenly, abstractions like variables and events make sense when you think of them like "background scene" and "click".

After they loaded their personalized Flappy Bird game to their iPhone, we spent the rest of the time going through CodeCombat. Lots of kids really liked this because it was a game you play with code.

I wish I had a bit more time to do something purely creative (there's a "Frozen" movie art tutorial on code.org, but it's slower paced and would've taken up too much of my time)

---

A few takeaways:

1. You HAVE to make it interesting. Kids today need to go from zero to awesome in 2 minutes or less. I don't see this as a bad thing. When I learned to program, I wanted the same thing. Being able to write some stuff in Notepad and see a webpage in Internet Explorer in 1995 is what got me interested in programming in the first place. I wanted them to get that same feeling.

2. Focus on them. How is computer science going to help them? Basically, these kids (or their parents or teachers) are your customer and you have to make the benefits obvious. I talked about the creative aspects ("stretching your mind"), the career path aspects ("Bill Gates and Mark Z started when they were in middle school"), and the long term impact on the world ("Bill and Mark are two of the most generous people on the planet"). Again, this is aimed at middle schoolers so I'm not going to get into the politics of anti-trust lawsuits or over-reaching privacy concerns.

3. Only about 10% of the kids in a classroom are going to be really enthusiastic about learning this stuff. You'll have 80% that are indifferent and 10% that are bored/lost. That's okay. Not everyone is going to be interested in computer science just like not everyone is into music.

4. I didn't get too deep to quick, just focused on helping them seeing results. I didn't get into any nitty gritty like is JavaScript better than Python or anything too technical at all. Keep it as high-level as you possible can.

5. I also let them work things out. "Oh, your Flappy Bird isn't flapping when you click your mouse? Hmmm, which piece of code do you think handles when you click your mouse? Do you see any actions that you could attach to that event that might make your bird flap?"

---

Overall, it was well received and there were a few kids that used their "Genius Hour" (a set time where they could further explore the STEM topics they learned about on their own) to go through more CodeCombat lessons.

I would definitely do it again, but really needed a nap afterwards. Teaching is HARD!! :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: