http://www.shodor.org/interactivate/
I came across this site while doing some website reviewing for work. I don't have a middle schooler, but I thought this was such a good resource for students and teachers of this age.
It has tools, practice problems and activities, lessons and others.
I think it's probably good for students who need help, as well as those who just enjoy it. Teachers can get lots of info here.