Ask HN: How do I teach 7th graders to program?
I'm going to be volunteering an hour of my time each week to teach inner-city 7th graders how to program. I've got about 15 interested in learning, and I'm trying to figure out the best way to approach this. They'll each have a laptop to use.
I'm not a teacher but have been programming for a long time. I was thinking about using python (not pascal or basic, which were the languages I first learned). Does anyone have any recommendations, ideas, good sites/resources? I was thinking about using repl.it, but am open to any suggestions or ideas. Thanks!
4 comments
[ 3.8 ms ] story [ 18.0 ms ] threadI have no idea what an inner-city 7th grader is into these days, but consider crafting a lesson plan that speaks to whatever that might be - if it's sports, maybe craft it so they slowly build some kind of sports team management software. If its cars, maybe something like inventory software for an autoshop.
Start with the basics, how math and string manipulation works, then slowly build upwards into more concrete work that they can apply to the real world.
Python is an excellent choice of language
Just my 2 cents
There is also a wealth of older programming materials available for older systems like VIC-20 and C-64. Maybe you could use those with one of the free emulators (Google is your friend).
If you want to use a more modern language, I agree that Python is an excellent choice.
Things that seemed to work well:
1) Find a basic computer game with available source code and have them play it for maybe 10-15 minutes to understand the game.
2) Teach them a basic Hello World type of app in the same programming language as the game.
3) Open up the games source code and start looking for any sections that seem "readable" in the sense of lines that can be manipulated to affect game play (eg: # of lives for a character, response of actions, speed of play, # of enemies, etc.). Walk through some basic edits, re-compiles (if required) so that they see the impact of code changes on a larger project. This is, IME, more rewarding to a limited attention span audience than starting from scratch.
4) Come up with a simple coding project than can be modularized. Assign 1 student or group different subroutine tasks and then pull it all together into a larger program that runs each subroutine. Simple ideas are things like a conversion app utility, expense tracker, etc.