ScriptCraft in Classrooms

829 views
Skip to first unread message

Walter Higgins

unread,
Feb 11, 2014, 6:58:35 AM2/11/14
to scriptcraft---sc...@googlegroups.com
So I've volunteered to do something for a forthcoming 'Bring Your Kid to Work Day' ( I work in software development ) and plan to run a ScriptCraft workshop for kids aged 8 to 12.

I've created a milestone in the GitHub project which lists some of the things I'd like ScriptCraft to be able to do...


From past experience (at coderdojos and 3DCamp) getting kids up and running with their own CraftBukkit installs may not be realistic in a short space of time so letting them join an existing server (mine) and do some quick hacking might be the saner approach given a short time.

If anyone has experience using ScriptCraft in a classroom setting, please chime in.

Walter

Cal Jacobson

unread,
Feb 12, 2014, 2:32:06 PM2/12/14
to scriptcraft---sc...@googlegroups.com
Walter,

First, thanks for all your work on ScriptCraft!

I'm one of the founders of a nonprofit here in Colorado called Aha! Labs (https://ahalabs.org), and we started introducing ScriptCraft to kids in late January as part of a 2-hour session held every other week.  We took the approach of having the kids (16-19 per session) run CraftBukkit on their individual systems, rather than a central server, so they could leave with a working environment that they could play with at their leisure. 

I'm still convinced that this is the right approach for anybody without a dedicated lab or hosted server.... but your fears are well-founded.  Set-up took a considerable amount of time in the first session (about 45 minutes, given a mix of operating systems, attention levels and familiarity with basic operation of a computer), and even though we didn't have a lot of turnover between events it still required significant review and attention the second time around.

The good news is that if you can show the kids what they can do with ScriptCraft early on, they'll stick with you through the painful configuration process.  The ability to instantly spawn castles and rainbows captures their attention, but it's the power to shoot lightning arrows and create huge TNT structures that gets most salivating.  The ScriptCraft website tutorials are a great resource which I keep touting (and listed on a "cheat sheet" handwout we made) but I think it'll be another session before I get a sense of how many students are investigating and experimenting on their own, since they're encouraged to bring their own creations to show off at each meeting.

Walter Higgins

unread,
Feb 12, 2014, 5:27:54 PM2/12/14
to scriptcraft---sc...@googlegroups.com
Thanks Cal,

Your 'Javascript as a First Programming Language' is interesting reading. https://ahalabs.org/2014/01/javascript-first-programming-language/

Walter

Jon Ippolito

unread,
Feb 13, 2014, 3:50:40 PM2/13/14
to scriptcraft---sc...@googlegroups.com
As I may have mentioned in another thread, I'm teaching ScriptCraft to college sophomores as well as to my own 13- and 16-year-old. I'll probably try out the Classroom module for the undergrads, but I've been working with a single Craftbukkit server for my son and daughter and their friends.

My experience with the undergrads is a lot like Cal's; there is a lot of configuration time, which can be frustrating to newbies. At home it's a different story: my kids are Minecraft fiends so they are unimpressed by many of the simple structures I've hacked together. Exploding arrows and snowball games, on the other hand... :)

I also appreciated Cal's essay, which hits many of the same notes as my department's choice of JavaScript as a programming language across the curriculum. (Feel free to crib from the table if it helps justify your choice BTW.)

For my next classroom foray into ScriptCraft in a few weeks, I'm hoping to make things easier:

* I'll pair experienced Minecraft users with neophytes on the same machine.

* Students will work from a "make a lot of randomly positioned objects" JavaScript they've already used in other contexts, such as HTML, OS X widgets, and Photoshop.

* Afterward students will create ScriptCraft tutorials for future classes. My department is rolling out a collection of these tutorials, complete with interactive screencasts and badges. I'll share any that come out OK.

I'm excited about integrating ScriptCraft and so are my students!

jon

Jon Ippolito

unread,
Feb 13, 2014, 4:11:45 PM2/13/14
to scriptcraft---sc...@googlegroups.com
BTW I was looking forward to trying this release because the notes said there was some update to the Classroom module:

http://scriptcraftjs.org/download/2014-02/v2.0.4/

Unfortunately when I double-clicked on the .jar, a dialogue box told me "Cannot open." There were no errors in the Console. I'm on a 2012 MacBook Pro running OS10.9.1 on a 2.5GHz Intel Core i7 with 8GB RAM :/

Walter Higgins

unread,
Feb 13, 2014, 5:33:47 PM2/13/14
to scriptcraft---sc...@googlegroups.com
Hi Jon,

Thanks for the comments. Re: the problems with the latest jar, if you right-click and then save the scriptcraft.jar file to the craftbukkit/plugins directory (removing any previous scriptcraft.jar file) then run craftbukkit, it should be fine.

I'm planning to run a short workshop for about 20 kids just to introduce them to programming in javascript in minecraft (it will unfortunately be really short).

I'll have the kids connect to my own server...
 
 Exercise 1: Simple math: /js 1 + 1, /js 5 - 3 , /js 6 / 2 etc. Purpose: demonstrate that javascript expressions can be executed at the in-game prompt.

 Exercise 2: Function calls: /js echo ('Hello world'), /js echo(self) Purpose: show syntax for calling functions.

 Exercise 3: Autocompletion: /js bloc <Press TAB key> (blocks and blocktype() appear as possible completions), type s then press TAB key again. A list of all possible minecraft materials appears. Type blocks.go <press TAB key> choose blocks.gold then hit enter. (result 41)
  Purpose; Using the TAB key to autocomplete. demonstrate the in-game autocompletion which makes it easier to type global variables/functions without making mistakes.
Related: Materials in minecraft (like most things in the world of programming) are just numbers. blocks.gold is just another way of saying 41

 Exercise 4: A little bit of alchemy: A ring of dirt blocks is set up. Students line up and pick a dirt block. The goal is to use javascript to turn the dirt block into a block of gold. (reminded of the broomstick training scene in the harry potter movie) . This is a directed exercise to introduce the Drone functions. Students must target the dirt block facing them and type /js box( blocks.gold ) to turn it into gold. 
Purpose: reinforce function calls, parameters. Introduce the 'box()' method and how to build in Minecraft using the drone functions (you must target a block before invoking a drone function).

 Exercise 5: (If i have time that is) More alchemy: Building across, up and deep. Introducing basic 3D geometry, the width, height and depth parameters for the box() method and what they mean. Build a yellow-brick road, 3 x 1 x 20.

This workshop is going to be short (about 45 minutes and 20 kids involved) so I don't know how much of the above I'll cover. Any comments or suggestions are welcome.

Walter

Jon Ippolito

unread,
Feb 14, 2014, 11:41:18 PM2/14/14
to scriptcraft---sc...@googlegroups.com
Thanks for the tip, Walter, and for sharing the prospectus for your workshop. I'm sure the kids will be excited to "hack Minecraft"!

With the caveat that I'm new to ScriptCraft (and to a lesser extent, Minecraft), here are some thoughts on your proposed exercises:

Computer scientists seem to think they'll impress beginning programmers with the ability of code to do math or print "Hello World." In my experience, kids think that's boring--they'd rather see code do something audiovisual or kinetic, especially if it's something hard to do as a regular (say) game player. 45 minutes isn't much time, so if possible, you might want to start with something more "tangible" in-game, and then show how changing the syntax gives you more options.

For example, you might start with exercise 4 and ask them to turn various dirt blocks into gold. Then you could move to exercise 3 in the context of /js box (blocks.*) and show them they can easily turn the blocks into different materials using the TAB key.

You could then move onto exercise 5, and if you have time, show them some things that are hard to do in Minecraft, like arrows.explosive() or arrows.firework().

If you want to talk through more advanced programming concepts like functions, loops, and random numbers, you could give them a script like this:

plantOrchard = function( material, blocksPerEdge ) {
    // Create a random field of boxes of your choice.
    // Plant materials like: Melons (103), Pumpkins (86), Torches (50), Jack-o-lantern (91).
    // Then destroy with materials like dynamite (46), then  Fire (51).
    for ( var plantsCounter=0; plantsCounter < 30; plantsCounter++ ) {
        var distanceX = parseInt( blocksPerEdge * Math.random() ) ;
        var distanceZ = parseInt( blocksPerEdge * Math.random() ) ;
        up( 1 ).fwd( distanceZ ).right( distanceX ).box( material ) ;
    } ;
} ;

Finally, if you have time you could try the snowball game--it's a real crowd-pleaser.

I also prefer to give students "alert" over "echo", since the former method will work in other JavaScript environments.

I hope I'm not being too presumptuous in making these suggestions. What you've done in making ScriptCraft is far beyond my abilities, but I'm very excited about applying it in the classroom!

jon

Walter Higgins

unread,
Feb 15, 2014, 6:30:10 AM2/15/14
to scriptcraft---sc...@googlegroups.com
Hi Jon,

It's been more than a year since I last ran a workshop so this is all good information. I take your point about the first 2 exercises and using alert over echo. 

I also plan to demo arduino integration (I have an arduino hooked up to the server, there's a photoresistor housed inside a box made of lego with a lid, when the box is opened, the sun rises. The more light detected, the higher the sun rises. This will be an end-of-workshop demo to show what you can do with arduino, simple electronics circuits and scriptcraft. 


Thanks again for the comments. It's great to hear from someone who's already done this.

Walter

Jon Ippolito

unread,
Feb 15, 2014, 11:52:49 AM2/15/14
to scriptcraft---sc...@googlegroups.com
Walter,

That's stunning! It's probably too complex for beginners to understand everything going on "under the hood," but demos like this are a great teaser to get kids to come back for the next workshop.

Again I don't want to oversell my experience. I continue to have many questions about ScriptCraft syntax and how it relates to the JavaScript I'm more familiar with. If you don't mind, I'll start another thread with some basic questions--hopefully some of the other users will answer them so I don't occupy all your time with minutiae.

Keep up the great work.

jon

Jon Ippolito

unread,
Feb 25, 2014, 9:28:34 PM2/25/14
to scriptcraft---sc...@googlegroups.com
Walter and Cal,

I'm preparing my first in-class Minecraft assignment this term, and I want to get my students prepared. They will be working at home in between classes, and it sounds like Cal has been in a similar situation. I'll definitely try the Classroom module.

My question is: do my students need a paid login? This "Parent's Guide to a Minecraft Server" suggests the best approach is to run the server in offline mode and then install a bunch of security plugins--but it sounds a bit complicated and I am wondering if the Classroom module obviates any of those precautions.

Thanks for any advice!

jon

Jon Ippolito

unread,
Feb 25, 2014, 9:29:46 PM2/25/14
to scriptcraft---sc...@googlegroups.com
Whoops, forgot the link to the Parent's Guide in my previous post.

Walter Higgins

unread,
Feb 26, 2014, 8:47:16 AM2/26/14
to scriptcraft---sc...@googlegroups.com
Hi Jon,

For the workshop I did on Friday last, I looked into this 'offline' mode. I ran the bukkit server in offline mode in a LAN with no outside connection. However, prior to the session, students had to have logged in using their accounts. From what I can tell, running the server in offline mode doesn't mean students won't have to have their own accounts. For example, I had set up my own account on a couple of machines but if more than one person tries to login with the same credentials then the other gets booted out of the server.
Bottom line: I think it's safer if the students have their own accounts. I'm not even sure the setup suggested in that link would work. They recommend using Single Player mode but I'm not sure that works with Bukkit (I could be wrong).

Walter

Jon Ippolito

unread,
Feb 26, 2014, 12:58:32 PM2/26/14
to scriptcraft---sc...@googlegroups.com
Thanks, Walter, your first-hand experience is very helpful here. I'll try to convince my students to spring for $25 :)

I hope to share more details of my plan when it's further worked out. I hope your session went well!

Jon Ippolito

unread,
Mar 17, 2014, 9:16:18 PM3/17/14
to scriptcraft---sc...@googlegroups.com
FYI here's the first of a series of screencasts my students and I will make on ScriptCraft:

.webm (Firefox and Chrome)

.mp4 (Safari and Chrome)

Assuming there are no glaring errors, I'll probably add some interactivity and a digital badge to the tutorial.

Walter Higgins

unread,
Mar 18, 2014, 4:27:00 AM3/18/14
to scriptcraft---sc...@googlegroups.com
Wow. That's an excellent screencast Jon. Would you mind if I shared it on Twitter/G+ ?


Jon Ippolito

unread,
Mar 18, 2014, 7:08:28 AM3/18/14
to scriptcraft---sc...@googlegroups.com
Thanks. If you don't mind, I'll add the interactivity first, then you can decide which link is best to share. (It's part of a site of free online tutorials made at my university.)

I'm also happy for you to re-post or re-use however you feel like it--it's your work, after all!

Jon Ippolito

unread,
May 1, 2014, 11:25:56 AM5/1/14
to scriptcraft---sc...@googlegroups.com
Hi Walter et al.,

Sorry to be out of communication for the past month, but my students have been working on ScriptCraft mods and will be exhibiting them tomorrow at my department's New Media Night. I've asked them to create screencasts of their own explaining how they used JavaScript to automate Minecraft, and hope to have these online following the event.

I think they came up with some fun stuff--more soon.

jon

Walter Higgins

unread,
May 1, 2014, 12:01:56 PM5/1/14
to scriptcraft---sc...@googlegroups.com
Hi Jon,

Looking forward to seeing what the students have done.

Walter

Walter Higgins

unread,
Aug 22, 2014, 10:32:52 AM8/22/14
to scriptcraft---sc...@googlegroups.com
There's a good post on using Minecraft to teach Javascript Programming here:

Thierry Chantier

unread,
May 26, 2015, 7:29:18 AM5/26/15
to scriptcraft---sc...@googlegroups.com
All of these looks very interesting to me.
With a group of 10 people, we are running small kid's workshop called MixTeen in France.

Until now, we used Scratch and Algoid +  a side workshop to show computing techniques without computer (binary coding, ascii art...)

What we started with the older kids with Algoid was very promising and we would like to try others languages and environment.

Using Minecraft makes sense, kids like to see in a visual and noisy way what they code ;)

My main concern is on the licence point: all kids need a Minecraft licence?
Or is it possible to have a pure LAN server/clients for free?

I don't mean in any sense to avoid to pay what is due to the work behind Minecraft, but we don't organize workshop on a weekly or monthly basis with the same kids each time.
We try to provide recycled computers for the one without access to one, so asking a fee is not part of our goal.

If it's the only way, we'll see if licence budget become a priority to our little funds.

PS: by the way, thanks for Scriptcraft, it's a wonderful tool.

Walter Higgins

unread,
May 29, 2015, 11:00:46 AM5/29/15
to scriptcraft---sc...@googlegroups.com
All kids need a minecraft license.

Marco Vigelini

unread,
Feb 21, 2016, 9:07:08 AM2/21/16
to ScriptCraft - Scripting Minecraft
I'm also a CoderDojo champion here in Italy and I'm going to introduce javascript programming language in the next sessions.
Now kids are really involved in some arduino projects so I would like to propose your path in the opposite way: from Arduino to Minecraft and then to javascript.

I was looking at this page (31 Jan 2015):
and I was able to load the scriptcraft plugin to the CanaryMod server.
Then I start to study how to include arduino on Minecraft and read this other page (25 Jan 2014):

At point number 7 you talk about Craftbukkit server. So if I want to use arduino I need to configure the Craftbukkit and if I want to use javascript I need to use CanaryMod (from your page the combination scriptcraft+CanaryMod seems to be more user friendly)?
Is there no way to use sc-mqtt with CanaryMod?

Ciao!
Marco

Jon Ippolito

unread,
Mar 3, 2016, 9:26:54 AM3/3/16
to ScriptCraft - Scripting Minecraft
Hi Walter et al.,

I am beginning a unit on ScriptCraft in a sophomore level class at my university and am happy to share my experiences or resources with others. Having Walter's book (I require it of my students) is a great help. I'm currently in the process of updating my server-installation instructions to work with Spigot instead of Craftbukkit.

In the meantime, I noticed that the current version of ScriptCraft available at

http://scriptcraftjs.org/download/2014-11/20141114-v3.0.1/

doesn't seem compatible with Minecraft 1.9. I was able to run it with the previous version of Minecraft (1.8.9).

My Minecraft launch screen also tells me I'm running an old version of Java and that I should use the new, non-Java launcher. Do you recommend this?

Thanks--jon

Marco Vigelini

unread,
Mar 4, 2016, 2:34:03 AM3/4/16
to ScriptCraft - Scripting Minecraft
I'm interested in your experience Jon.
Are you planning to follow exactly Walter's book? 

Ciao!
Marco

Jon Ippolito

unread,
Mar 4, 2016, 12:47:25 PM3/4/16
to ScriptCraft - Scripting Minecraft
(Re-sending as apparently it didn't take the first time:)

Ciao Marco,

Thanks for your interest. I am using Walter's book as a resource, but the
class is structured in an unusual way. We study the same JavaScript applied
to multiple platforms--the Web, widgets, ebooks, Photoshop, and now
Minecraft. It's essentially a loop that distributes objects randomly across
a space and then sets up a user/s interaction with them.

I'm revising the lesson now to accommodate Spigot, but as soon as I'm done
I'll be happy to share my materials with you and hear your feedback!

jon

Jon Ippolito

unread,
Mar 28, 2016, 8:40:37 PM3/28/16
to ScriptCraft - Scripting Minecraft
Hi everyone,

I'm trying to run a ScriptCraft server in my class of a dozen students that everyone can join. We're all on the same Wifi network. Today I started the server and modified the server address to match my IP. About four students were able to join, but the rest received error messages about connection throttling or invalid sessions.

Is there some setting I can change to allow more students to join?

And what exactly does classroom.js do?

Thanks!

jon

Jon Ippolito

unread,
Mar 30, 2016, 8:18:47 PM3/30/16
to ScriptCraft - Scripting Minecraft
FYI I was able to handle about 10 kids on my ScriptCraft server in class today. I checked with my university's IT department to see if there was a security protocol inhibiting my shared server, but they said it was more likely that my laptop was bogging down and that I should restart Minecraft. This did seem to help, until (predictably) someone blew up a 100x100x100-block cube of TNT ;)

(For the record, I'm still not sure what classroom.js does.)

I created another screencasts as preparation, which I'll share with you all. Cheers,

jon

Marco Vigelini

unread,
Mar 31, 2016, 3:27:59 AM3/31/16
to ScriptCraft - Scripting Minecraft
I'm interested in and I will follow your updates.

Ciao!
Marco
Reply all
Reply to author
Forward
0 new messages