So far with my studies I'm finding an inherent problem with trying to teach, and I'm sure its something that anyone who has ever attempted to teach multiple people - especially in a group - has encountered. The problem is that everyone is different. Particularly for teaching, everyone has different skill levels, ability to learn, willingness to learn, and also different levels of interest in the taught subject. This makes it very hard to fit the curriculum around a group of people, because some will excel and some will struggle, and some just wont care.
You even see this in everyday life. Computer programs often have a 'quick-start guide' to explain the basics to the people who don't have a clue. Video games have easy, medium and hard settings to suit the n00bs up to the hardcore players, and mobile phones will have an 'Advanced Settings' menu that only the brave should dare to venture.
The reason I type this is because while I am researching easy ways for people to prototype, and entry level routes into coding and App building, I cant help but think about 2 things;
One, are these basic introductions applicable in industry? Would you let a brick layer build a house if all you've taught him is Lego?
Two, what if some of the people this is teaching are far beyond this - find it child's play, or simply want to investigate further in their own time?
These resources should open up as many doors as possible and not restrict people to only the basics. They should encourage curiosity and let imaginations a skills flourish, prepare them for the real world but still not forget about the people who just want to complete the task so they can pass their degree module.
So this is why bridging the gap is so important, and why I'm looking at services like App Inventor as good examples. Just the other day I found out about the App Inventor to Java bridge, which is doing a great job at flattening the learning curve between simple block-interface coding and Java, the primary protocol used for coding Android applications. But not only that, it introduces the concept of having an Interface Builder separate from the code writing elements, and how they interact with each other. This is the same as in xCode when writing iPhone applications. So along with a few other parallels between the two approaches, students can relate what they learnt with the basic system to what they would encounter when tackling the more advanced tools.
On the ladder of learning, there should be many rungs so students of different skill sets and abilities can jump on when they want. The resources should be there to support this.