Minecraft to teach programming? Minecraft is very popular, and I know that it can be programmed/scripted.  I looked into it myself but was put off by the learning curve for the Java based version (it looked like it needed Minecraft, NetBeans, a library for my Java code to talk to Minecraft, and possibly setting up a server).  I later found https://www.learntomod.com/, which appears to have a Block-based programming UI (I haven't tried it personally).

My Question(s): Has anyone used Minecraft to teach an 'introduction to programming' type course (CS0 moreso than CS1)?  How did you make the tech work (did you use something like LearnToMod.com, or the whole Minecraft+NetBeans+Java+etc route)? What sort of lessons did you learn?  (I'm particularly interested in "Gee, I wish I had known about X, back when I started")
I am not so certain about teaching people to program by starting out with something like modding Minecraft. There are a lot of technical details that someone just learning to program shouldn't be required to understand or worry about. However, Minecraft can still be excellent playground to learn to program by using pre-made mods like ComputerCraft that add programmable blocks to the game.

In ComputerCraft users are given a couple programmable blocks: computers, which are stationary and have the ability to send serial signals; robots, which you can program to move, pick up elements from the environment, and perform actions; and both elements can communicate over a network. The computers and all the pre-packaged applications are programmed entirely in Lua (including the OS). This means there exists a large existing source code base for students to study. Lua is a very simple and elegant language and I have had no problem teaching it besides the fact there isn't really an introduction to programming book using it (Programming in Lua is written by the language author and is very good, but much like Programming in C in that it isn't meant for beginners).

Using ComputerCraft with blocks from other common mods would allow the students to build machines as well as programs; something more than the sum of its parts. This would allow them to see programs as a part of a greater design, which I believe most students don't get enough experience with in school. Personally, one of my favorite projects I've done in Minecraft using ComputerCraft was implementing a mail delivery system using several computers, ender chests, and pipes.