Teaching Themes
As I have mentioned previously I have been working on the curriculum I will be teaching to the kids on the program. It has been really challenging to sit down and work through all the topics that need to be covered and how to cover them in an engaging way. What is interesting is that as I did this I lost sight of what I was originally thinking would be a good option and after numerous attempts at writing down how it is going to work I have come full circle back to my original thinking. Slightly frustrating given the amount of time I put into this, but at least now I have explored other options and found them wanting.
All I have as a reference point is how I learnt so I am drawing a lot from that. When I started programing it was purely out of necessity. I needed to build an e-commerce website for a venture I was planning. Turned out that I wasn’t equipped to get the idea off the ground. Through that process though I learnt a heck of a lot, and it was what really got me started in my programming career. What I was building was going to enable me to revolutionise the way goods were sold on-line and make me a lot of money and that gave me a real sense of purpose.
So getting back to how I am going to teach. After the sandbox (which has also seen some exciting developments) kids will go into this teaching phase. At the start we will talk about a project that they may want to do. Something interesting and relevant to them. Social networks are hot topics these days so maybe something along those lines – if the kids are really creative maybe we will even get a new concept out of them! In the first session we will work through some of these ideas and turn what they want to build into a series of stories that, well, tell the story of how it will work. Subsequent sessions will work through the process of how to build it. At each step a new concept will be introduced that they must grasp. These are some of the fundamental elements of programming and understanding these concepts will, I believe, set them up to be able to take on almost any programming task they will encounter in a normal business environment.
