I downloaded Scratch for Windows recently to see what the hubbub was about. I was really amused by what was going on in the left hand and middle panels. It resembled an IDE helper I'd cobbled up for Visual Basic many many years ago.
I was confronted with a cheating problem when I was teaching. All of us instructors were "encouraged" to produce exams with only multiple choice or T/F answers. Since this made it too easy for students to pass answers, the use of multiple test versions was "suggested". I could see this was going to be a major asspain, so I sat down one night and built myself a test generator in Access.
Each record contained a course module, exam topic and question subject header followed by a text references, the question, an alternate wording of the question, a list of possible answers with a radio button for the correct answer, and a BLOb field for an accompanying diagram if desired.
The report used the selected exam topic to generate three unique tests, each with a randomized order of questions with alternate phrasings and randomized answer order along with a key.
The first time I administered one of these, I wish I'd videotaped it. The reactions were hilarious. Heads swiveling, feet and pencils tapping, hands wringing, sweating and swearing. As I expected, when I graded them, only one student passed. I got called everything but a child of God. Then I informed them they'd get the real exam in two days and handed out copies of a study guide created from the question subject header and text references. Every instructor wanted to copy my tests, so I gave them all floppies with the Access database instead.
A few months later I was working on several VB projects and I took that same gadget and converted it into code library. It made it simple to select all of the function calls, procedures, lib dependencies and associated support code so I could create a preliminary code structure for my projects. All that remained was to connect the dots.
I was delighted when I saw Scratch, the left and middle panels do exactly what I'd wanted to do if I'd had the time to polish that custom IDE. The goal was to have a TOC tree in the left panel containing all available procedures and function calls, a drag and drop workspace in the middle and a display of the resulting code on the right.
I haven't done a lot of programming in the last ten years, so I'm not familiar with what development environments are out there. That's something I aim to correct in the near future, but I would hope in this day and age that there are IDE's like this that allow the user to focus more on the programming goal and less on the vagaries of syntax.
AND, it needs to either be interpreted or have some sort of run time emulation so that the code can be tested quickly and often.
I'm not trying to belittle the need for learning to create well structured, correct and commented code, but understand that if you want something to succeed in a classroom environment you have to do something to accelerate the learning curve. You're dealing with limited class time and the limited attention span of post-media-explosion minors who need to see results immediately to remain enthusiastic. Patience and precision only come with maturity. You just have to start with a paradigm that harkens to Legos or K'NEX (BTW, I think both boys and girls should be given some sort of construction toys at a very early age) and keep reminding them that big boys and girls don't need the crutch.
What language you choose, C++, Python or a structured BASIC matters less than the environment it's presented with. You need to start with the IDE like Scratch and take the student through a process of evolution that maintains that kind of structure. Remember that you ultimate goal is not to create a C programmer, or a Java programmer or Python, BASIC or Perl - you are trying to create a problem solver. It's more important to give them a development environment that helps build that "theater of the mind" where all programming scenarios will be played out in their future. The richer the tools you provide them to do that with, the more productive they will be in adulthood.