I tried to teach programming many people, but most people have no desire to learn whatsoever. It's hard to teach someone if it feels like one needs to use a heavy hammer to finally get some knowledge inside someone's hard head. If someone wants to learn programming, then one has already done half of the job. It is pleasure to teach and help such people.
The other half of the job is to learn the necessary theory and use it in practice to make real programs, even as simple as an algorithm implementation. Programming is about the wise use of available tools (language syntax, CS theory, etc.) to get the desirable result. In the new programming course, the player in each level will firstly learn a small portion of theory by reading SatCom and then he will immediately be given a task to complete to use the new knowledge. After that, he will be given a more challenging task to stretch the brain and therefore put the newly learned skill in the long-term memory (hopefully). The next challenges should be build the way that encourage to use the new knowledge for revision. I think that is the most we can do at this point, the rest depends on the learner.
Most math books take this approach: first show theory, then give (a lot of) different exercises. Some facts are easier to remember by discovering them by yorself instead of just reading about it. The harder the exercise, the more it will be rewarding after figuring it out and you'll start seeing connections between several facts which you would not have discovered by pure reading. The most successful programming books in teaching take similar approach.
I've already done my research about teaching programming (in fact, I'm constantly discovering new approaches and interesting ideas in teaching) and I've based the current sketch on the most valuable (in my opinion) resources. I'm not sure if even the best teacher could help us. We are making a game here, there will be no real teacher during the process of learning. We should take an example from online courses, books and other applications/games focused on teaching. Sure, an advice from a real teacher would be really helpful (@Mrocza already gave us many tips), but that's not everything. There is a significant difference between teaching a person, teaching a group and writing a book for self-learners. Teaching is so hard because it depends on so many variables it's just impossible to create a perfect learning environment for everyone.
Either way, we already agreed on the current programming course. If some teacher wants to give us any advice or critique, he's free to do so, it's a public forum. If someone has access to a good CS teacher (I've met not many of the good ones in my life TBH, not even talking about the ones teaching programming), then we would be more than glad if one asked him to look at our course, but it's not that much necessary, especially that this is not a very popular open source project and the best people tend to not work for free.
The other half of the job is to learn the necessary theory and use it in practice to make real programs, even as simple as an algorithm implementation. Programming is about the wise use of available tools (language syntax, CS theory, etc.) to get the desirable result. In the new programming course, the player in each level will firstly learn a small portion of theory by reading SatCom and then he will immediately be given a task to complete to use the new knowledge. After that, he will be given a more challenging task to stretch the brain and therefore put the newly learned skill in the long-term memory (hopefully). The next challenges should be build the way that encourage to use the new knowledge for revision. I think that is the most we can do at this point, the rest depends on the learner.
Most math books take this approach: first show theory, then give (a lot of) different exercises. Some facts are easier to remember by discovering them by yorself instead of just reading about it. The harder the exercise, the more it will be rewarding after figuring it out and you'll start seeing connections between several facts which you would not have discovered by pure reading. The most successful programming books in teaching take similar approach.
I've already done my research about teaching programming (in fact, I'm constantly discovering new approaches and interesting ideas in teaching) and I've based the current sketch on the most valuable (in my opinion) resources. I'm not sure if even the best teacher could help us. We are making a game here, there will be no real teacher during the process of learning. We should take an example from online courses, books and other applications/games focused on teaching. Sure, an advice from a real teacher would be really helpful (@Mrocza already gave us many tips), but that's not everything. There is a significant difference between teaching a person, teaching a group and writing a book for self-learners. Teaching is so hard because it depends on so many variables it's just impossible to create a perfect learning environment for everyone.
Either way, we already agreed on the current programming course. If some teacher wants to give us any advice or critique, he's free to do so, it's a public forum. If someone has access to a good CS teacher (I've met not many of the good ones in my life TBH, not even talking about the ones teaching programming), then we would be more than glad if one asked him to look at our course, but it's not that much necessary, especially that this is not a very popular open source project and the best people tend to not work for free.