Which authoring system is best for teaching programming concepts?

I will be teaching a class of students how to make an IF game. There are two goals though. They should develop their craft of storytelling, while also learning the logic behind programming. Some specialty systems seem so high-level that I doubt it would be a valuable learning experience for the students, as they basically just drop a bunch of room descriptions in a text file and won’t learn loops and functions, etc. Is there an authoring system that would be ideal for that?

Alan and Hugo probably qualify as easy languages to learn. Alan comes with an IDE and thus makes it easy to get started. With Hugo you need to use your own editor and compile the source code in the command line, and then manually run the resulting game file in an interpreter (you can use a command line interpreter or a graphical one.)

Hmm, if you really want to teach programming skills, you may want to forgo an authoring system and stick to Python. Have them stick to simple two word parsing, which isn’t too difficult for beginners.

This way they end up with skills that are generally applicable.

First have them write a simple adventure using if statements.

After they’ve had fun with that for awhile, point out that if they try to write a really big story this way, they will quickly get bogged down.

Then introduce them to Colossal Cave Adventure and explain the table driven approach used with this game.

Then introduce them to arrays and loops and have them re-engineer their original story.


Having taught a series of classes for young and (relatively) older, I can say that for the exact situation you describe, I had the best experience with TADS 3 because I could relate just about everything in the language directly to constructs they see in languages like Java and C#.

I wrote a bit about that here: Using TADS 3 for Teaching Programming.

Note the Github link mentioned in that post is down for now but in that series of posts I did make available a zip file of the rough template I was using. I was able to use the command line and Atom and, with that editor, I used my own syntax highlighting (https://atom.io/packages/language-tads3).

I did use Inform 7 for a very different style of teaching, mostly around testing and design thinking (as covered in my blog posts: http://testerstories.com/category/exploration/interactive/). But that was definitely not with a focus on programming.