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.<p>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!
I did something like this a long long time ago.<p>Things that seemed to work well:<p>1) Find a basic computer game with available source code and have them play it for maybe 10-15 minutes to understand the game.<p>2) Teach them a basic Hello World type of app in the same programming language as the game.<p>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.<p>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.
You might want to try to custom tailor your lesson plans to things they're already interested in, and not rely on "automated" or pre-generated lessons. You'll need to really engage them and make them see the benefit of programming and how it can be applied to real world situations<p>I 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.<p>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.<p>Python is an excellent choice of language<p>Just my 2 cents
It seems Alice and Greenfoot are popular in 10th grade (at least where I live). You might start there.<p>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).<p>If you want to use a more modern language, I agree that Python is an excellent choice.