You are in for a lot of work.
I actually did this with a 6th grade computers teacher. My project was designed to be very simple -- a networked pente game with graphics. Naturally, the
vast majority of the working code was written by me and my teammate. The children were to play with simple networking (which Python makes pretty easy) and sprites.
It didn't end too well. (In part because my teammate bailed on us.)
What happened is that I was able to get the children to implement some basic animations with sprites (making some really cool pictures -- think old-time "kaleidoscope" programs) using Python (with
PyGame). They enjoyed making the computer do what they want, react to their input, and understand basic flow control and variables.
As for language, both
Python and
Tcl/Tk are good.
I know nothing about
Scratch, but it looks like it is worth your time to peruse as well.
Remember
Make it stupidly simple. Pick a language where syntax is not going to be a significant issue -- where it can be picked up as you go.
Make sure it has some sort of fun feedback. Kids like seeing their creations do cool stuff. Like neko (
http://webneko.net/) -- meaning you'll want a SDL event system or equivalent.
For the grade level, dive right into projects. Make sure you have your smartboard/elmo/whatever you are using to show your students what you are doing -- type in the code that does stuff for them to see, explain (remember: stupid as dirt), then show it in action. Have the kids to the same kind of thing. Then let them play with it to see how they can modify the code to behave differently. (Remember: children will try a number of different things, and you will have to spend a lot of time working through what they are trying to do to help them. Don't be afraid to redirect if they want to do something not stupidly simple.) Then move on the next step.
Framework -- you must build everything. The children should only be handling small (stupidly simple) parts of the program. Make sure to design it so that they have some flexibility in program behavior.
Make sure to give them the libraries they need to do stuff. For example, a linear interpolation will be waaaay above their heads. Give them an interpolator and show them how to use it. How it actually works is irrelevant.
The only concepts they must understand are:
variables
input
program flow (if/case, loops, functions).
Apps? What kind of devices will they be programming? Not the standard PC desktop found in classrooms?