Answers.Body: <p>I am currently using Minecraft (especially Minecraft realms) to teach my developers (not starters but folks who have already covered some distance) how to work in team and also to improve their spatial and logical thinking. Also math, to some extent. So, first up, I am using Minecraft to teach, but not the basics of programming.</p>
  
  <p>If you wish to introduce someone to programming though, I would say Minecraft is useful but not with the whole MineCraft + NetBeans + all that jazz route. If you are going to all that trouble of configuring that for a freshers batch, you might as well just setup the real developer environment which would be simpler. </p>
  
  <p>When in comes to newcomers, I have found that Minecraft is more useful in bringing people into the world of computer based thinking. For instance, a lot of girls where I live are afraid and/or hesitant to get into programming. Many would find the concept of using their computers for anything other than watching a movie or checking email, extremely alien.</p>
  
  <p>In such scenarios, Minecraft would help. If you were to check the Minecraft Education site, that is also what Microsoft is doing with the program. </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-09-01T08:33:07.287Z
Answers.LastActivityDate: 2017-09-01T08:33:07.287Z
Answers.UserDisplayName: Jay
Answers.Body: <p>First, a caveat: I usually teach software design, and have only taught basic programming to maybe 150 to 200 students.</p>
  
  <p>That said, I'm not a huge fan of visual devices in teaching basic program structures (like selection, loops, and variable manipulation) because the art of programming involves <em>writing</em> at its core. Doing that feels like I'm teaching somepony to write short stories by having them rearrange photographs of sentences. I want to show students how to write, and if the algorithms are very simple, the results are something all students can be taught to visualize and follow (provided they're around the sixth grade level or higher).</p>
  
  <p>I have tried using the Alice visual programming language to teach young girls once or twice. I suppose the theme for the language (which is aimed at girls) is based upon a theory that girls will be more interested in programming if it looks less sterile, or some other nonsensical shot in the dark about why we fled the science decades ago when computers first became boy toys. I'd honestly rather have a lesson on syntax followed by very simple programs with output that students can play around with directly. Let them change things in an IDE that will catch syntax errors and see what happens that way. They need to think in terms of written descriptions eventually, why not start them out like that? Diagrams and pictures are important, but I prefer to save them for the lesson itself, or as a tool on paper to guide composition.</p>
  
  <p>(For the record, I also have no idea how to get more of us interested in programming, but pandering to gender stereotypes ain't gonna be it.)</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-09-05T00:52:55.427Z
Answers.LastActivityDate: 2017-09-05T00:52:55.427Z
Answers.UserDisplayName: Trixie Wolf
Answers.Body: <p>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 <a href="https://www.computercraft.info/" rel="nofollow noreferrer">ComputerCraft</a> that add programmable blocks to the game.</p>
  
  <p>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 (<a href="https://www.lua.org/pil/" rel="nofollow noreferrer">Programming in Lua</a> is written by the language author and is very good, but much like Programming in C in that it isn't meant for beginners).</p>
  
  <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-09-02T12:30:45.210Z
Answers.LastActivityDate: 2017-09-06T15:23:06.437Z
Answers.LastEditDate: 2017-09-06T15:23:06.437Z
Answers.UserDisplayName: ktbarrett
Body: <p>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 <a href="https://www.learntomod.com/" rel="noreferrer">https://www.learntomod.com/</a>, which appears to have a Block-based programming UI (I haven't tried it personally).</p>
  
  <p><strong>My Question(s):</strong> 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")</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-09-01T08:27:22.703Z
Comments.Text: I just asked a similar question with different end goals last week and it was down voted till it was deleted.  Oh well, I am simply glad that another person is talking about Minecraft in the site. Welcome to the site man.
Comments.UserDisplayName: Jay
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-09-03T18:10:01.333Z
Comments.Text: My guess would be, if you tell your students "we can do this in the classic way, or modding Minecraft -- if you can set up the environment until next Friday", you'll have all the stuff set up one day early.
Comments.UserDisplayName: Raphael
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-09-04T13:00:50.070Z
Comments.Text: One can program Minecraft also in Python: http://www.instructables.com/id/Python-coding-for-Minecraft/ and http://www.instructables.com/id/Interactive-Python-Programming-for-Minecraft-Pytho/
Comments.UserDisplayName: Aivar
Tags: <cs0><minecraft>
Title: Minecraft to teach programming?
ThreadText: # Minecraft to teach programming?
  
  (Asked by: username_0 on 2017-09-01)
  
  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")
  
  **Tags:** cs0, minecraft
  
  > **Comments:**
  > **username_1**: I just asked a similar question with different end goals last week and it was down voted till it was deleted.  Oh well, I am simply glad that another person is talking about Minecraft in the site. Welcome to the site man.  
  > **username_2**: My guess would be, if you tell your students "we can do this in the classic way, or modding Minecraft -- if you can set up the environment until next Friday", you'll have all the stuff set up one day early.  
  > **username_3**: One can program Minecraft also in Python: http://www.instructables.com/id/Python-coding-for-Minecraft/ and http://www.instructables.com/id/Interactive-Python-Programming-for-Minecraft-Pytho/  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_5 on 2017-09-02. Score: 5
  
  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](https://www.computercraft.info/) 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](https://www.lua.org/pil/) 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.
  
  
  ---
  
  ### Answer by username_1 on 2017-09-01. Score: 3
  
  I am currently using Minecraft (especially Minecraft realms) to teach my developers (not starters but folks who have already covered some distance) how to work in team and also to improve their spatial and logical thinking. Also math, to some extent. So, first up, I am using Minecraft to teach, but not the basics of programming.
  
  If you wish to introduce someone to programming though, I would say Minecraft is useful but not with the whole MineCraft + NetBeans + all that jazz route. If you are going to all that trouble of configuring that for a freshers batch, you might as well just setup the real developer environment which would be simpler.
  
  When in comes to newcomers, I have found that Minecraft is more useful in bringing people into the world of computer based thinking. For instance, a lot of girls where I live are afraid and/or hesitant to get into programming. Many would find the concept of using their computers for anything other than watching a movie or checking email, extremely alien.
  
  In such scenarios, Minecraft would help. If you were to check the Minecraft Education site, that is also what Microsoft is doing with the program.
  
  
  ---
  
  ### Answer by username_4 on 2017-09-05. Score: 1
  
  First, a caveat: I usually teach software design, and have only taught basic programming to maybe 150 to 200 students.
  
  That said, I'm not a huge fan of visual devices in teaching basic program structures (like selection, loops, and variable manipulation) because the art of programming involves *writing* at its core. Doing that feels like I'm teaching somepony to write short stories by having them rearrange photographs of sentences. I want to show students how to write, and if the algorithms are very simple, the results are something all students can be taught to visualize and follow (provided they're around the sixth grade level or higher).
  
  I have tried using the Alice visual programming language to teach young girls once or twice. I suppose the theme for the language (which is aimed at girls) is based upon a theory that girls will be more interested in programming if it looks less sterile, or some other nonsensical shot in the dark about why we fled the science decades ago when computers first became boy toys. I'd honestly rather have a lesson on syntax followed by very simple programs with output that students can play around with directly. Let them change things in an IDE that will catch syntax errors and see what happens that way. They need to think in terms of written descriptions eventually, why not start them out like that? Diagrams and pictures are important, but I prefer to save them for the lesson itself, or as a tool on paper to guide composition.
  
  (For the record, I also have no idea how to get more of us interested in programming, but pandering to gender stereotypes ain't gonna be it.)
  
  
  ---
  
  