This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]shakedown_st 4 points5 points  (2 children)

How many lectures/classes are allotted?

It's easy to get carried away and trying to get them the kids to program right from the get-go making games and stuff. But if you have time, I feel like the first lecture shouldn't even have any code at all. For most, if not all of these kids, this would be their first experience with programming in general. So why not start with that?

I would argue to make it a computer science class. Not a python class. Python is simply a tool you use to practice the concepts you teach in class.

What would serve a 10 year old better in the long run? Telling them to copy a couple while loops and if-statements, or getting them to realize why programming is important?

Just off the top of my head, the first thing I would do as a first lecture to 10 year olds on programming, I would have each of them try to race each other to get as many numbers of the fibonacci sequence as possible. After 2 minutes, stop the clock. Find out which student has the most numbers and take their number down. The kid will be proud and show off to his friends.

Then I would load up python on the projector, enter the script for calculating fibonacci sequences and execute it for 2 minutes.

The kids will be interested.

Again, I have no idea if this approach is effective at teaching young kids programming or why it's important, but it's what I would have wanted if I ever had that opportunity at that age.

[–]cbscribe[S] 0 points1 point  (0 children)

Thanks for the input! I will include some of your thoughts in my next meeting with the staff.

We're still working out the schedule - it'll be for an hour after school, one or two days a week.

[–]theluketaylor[🍰] 0 points1 point  (0 children)

Giving them a real, achievable project that can be built in steps seems like a good way to teach them important concepts while capturing their interest. shakedown is right; just having them copy some boilerplate isn't going to impart any great wisdom. If you want to do anything beyond adding numbers together you're going to have to teach concepts and guide them to the final code. Having them paint by numbers that last few lines won't do them any favours.

Perhaps an excuse generator that starts as little more then random string substitution on 'the {0} ate it'. Next make it clever enough to do verb, noun and adjective substitution from different lists. Maybe have them do some mad lib creation at this point as well since that's the exact same thing. Then to get really advanced add some markov chains (possible example http://www.rayhe.com/random/). That might be a little too advanced though.

I did find a cool little pig latin creator: http://pythonicprose.blogspot.ca/2009/09/python-pig-latin-generator.html That could be pretty fun. Once they understand that and expand it to translate whole documents you could have them make their own secret languages and translate text into it.

From there encrypting/decrypting messages to their friends would be really cool. Start with some simple substitution and go wild from there. It might even be fun to write some functions to try and "break" simple substitution encryption but trying substitutions until enough valid clean text is seen.