

Ask HN: How do I teach 7th graders to program? - dlauer

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!
======
brk
I did something like this a long long time ago.

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.

~~~
FreebytesSector
This is a great suggestion because this is how I first became involved in
programming. We had these books with code for BASIC in school, and I typed the
code. After drawing random circles and stuff, I kept modifying the code to
make it do different things. From that point, I started writing little games,
and I would work on those while we had our computer lab time. (Most of the
kids would simply play games during that time.) I would work on code within
notebooks at home and was anxious to bring it to school so I can type in my
code and see the results.

------
manuscreationis
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

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.

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

------
rman666
It seems Alice and Greenfoot are popular in 10th grade (at least where I
live). You might start there.

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.

