I have to admit, it took me 10 mins to figure out the best place to put it, but as this subject is going to be top of the agenda for many geekers' pretty soon I figured it'd be best served here.
I'm looking at setting up a Wiki for our school full of useful information, to be used as a reference and for study alone with programming tutorials and ideas for users to try themselves. I'll have areas where students can submit their ideas and code or ask others for help solving problems or debugging and a link page which students can contribute to for resources and tutorials. It will also be useful for the ICT staff I'm sure being able to build up a library of easily searchable work, now I just need to brush up on my programming! So far i've just turned the attention of our ICT teachers to codeacademy.com and the w3c pages and validators. Those who have completed their year 11 coursework can have asked to look at the code and get an idea of what bits mean, play with CSS and mess around to see what affects your changes make using live view in DW, all their current work is entirely dreamweaver created and riddled with multiple layers of tables hashed together. When a student or ICT teacher asks me to take a look at their work and solve the problems they have created I 9 times out of 10 go straight to code and they look on puzzled asking 'whats all that?'
Having given my 16 year old brother a HTML and CSS book he read the first few chapters then started messing around, downloaded a template from themeforest.com and tweaked it to make his own site, a good way to begin learning I think adjusting code, he has asked for help a couple of times and I have pointed him towards solutions but let him work them out himself and while getting annoyed at times he has always managed to work it out, its also worth noting he is dyslexic and often struggles with his reading, spelling and staying on task but has really enjoyed the learning curve and likes to show up his teacher at times with the code way to do things.....the horrible thing is while his current ICT teacher encourages he trys new things and learns this way his previous teacher tells him not to touch code and he will loose marks because of it. He is also getting into the habbit of testing multiple browsers for comparability, something he never did when using dreamweaver, if it ticked the IE box all was fine. This shows students are willing to learn this way, I have had students here ask me how do they make changes and having showen them how to edit the css they preferred that way!
His website btw: http://www.joewphotography.co.uk/
I think java will be the best beginning point for teaching fundamentals of programming then progress to OO java before introducing other more advanced concepts, I think reviving some of my university work and programming fundamentals workbooks could help here!
Use of access should still be taught to understand databases structure and concepts. Scenarios for them to build in access then document and convert to SQL would be a good way of breaking the boundrys between their current Office GUI and the powerful underlying tech for database systems. Merging different units together would be grand too, begin websites incorporating SQl databases and java applets for late years e.g. a visual booking system for cinema seats.
However our ICT department have not mentioned anything to me other then they are worried they wont be able to teach depending on the curriculum requires.
PS: sorry for that hijack!
Where to start? As some from the umm.. "dark side" (Computer Engineering) I think I'm missing DOS & serial ports. Reason: You could get a minute amount of x86 assembly to send data out of a serial port and if the other end of that is something shiny that does pixels then you've covered a lot of fundamental territory at a nearly direct level, which might be a good thing to do *before* diving into the relatively abstract-from-computer high-level stuff. I'm not a teacher though so that might be *very bad*, but I do think some stuff needs to be learnt before you throw high-level programming at folk.
On "graphical": Sprogette played with Scratch a lot until I gave her Kodu which was from her perspective, a lot more fun because of the 3D etc. The problem with that is Scratch is clearly closer to real programming languages than Kodu.
Interesting article on The Register regarding skills needed today:
Reading this? You're probably planning to skill up on mobile in 2012 ? The Register
We truly are entering a world of pain with all this. For a start, who the hell is going to be teaching this new curriculum?
The long answer -
You don't need to be a programming expert to teach programming, you need to get the kids enthused about the idea and then back off and give them space to experiment and learn.
My teacher for A Level Computer science back in the late 80's was a Physics teacher, had no knowledge of programming and basically taught himself alongside us as it was his first year of teaching it and had been given no formal or academic training on programming. What he had in abundance was enthusiasm to get us to experiment and learn, he also encouraged us to teach each other and show off new ideas and techniques. Out of a class of 12, 9 of us got A's and that was in an era when getting an A at A level was extremely difficult.
Not sure if anyone else has mentioned this: http://www.codecademy.com
I've not used it personally but I here good things about it to the point where I may take a look to see if it benefits the work I do.
I really bang my head against a brick wall over this obsession in education with grades and targets anyway and tbh couldn't really care less if someone copies a chunk of code off a google search. That's how we learn in real life anyway, plus you still have to understand how the code works to integrate it with the rest of your code.
A few ways, do a search for part of the code, check the commenting and with one to one conversations.
For my uni course we had a viva for certain modules where we had to go through a printout of our code and pick out certain functions, describe exactly what they did and then answer some questions. Questions such as how would I change the function to do x or if I needed to do y what could I add to the code. They know that potentially most of the code is ripped off examples and tutorial sites but they want us to prove that we understand what is going on, process and how to modify examples. The other type of question is about variable names so if you have taken an example whole sale, not gone through it properly and kept the standard variable names they won't possibly make much sense in the context you are using it.
You can look at the different code options ... after all, there are multiple ways of doing the same or similar things and part of the learning process is looking at why the choice of one routine might be better than another, especially when they start to plan large projects.