Sunday, September 22, 2013

Improved Scheduler



This system has been updated here

So, I’ve been tinkering with the 6-day schedule spreadsheet I blogged about last week, and I cleaned up a bunch of the issues that I mentioned in that post.  Most notably, I reworked the sheet to allow for asynchronous schedules (thanks to feedback from Christine Hartooni.)  Now you can create a signup sheet that has a different schedule on each day of the six day cycle, if needed.  I also cleaned up some of the sheet mechanics.  Each month's sheet is now populated by a query and doesn’t need any manual adjustment (that will be great next year.)  The period schedule is populated via a VLOOKUP and no longer needs an ARRAYFORMULA. BAsically, it's just cleaner all around.


Here is a link to the new and improved scheduler.


Set Up:

To use the sheet, simply fill out the faculty list page with your own users and emails.  Then, set up your own 6 day cycle and add the HTML link to your calendar on the “6 Day Cycle” sheet. Next, customize the period start and end dates on the “Teacher Schedule” page. Finally, you want to set up Form Mule.  You can copy and paste my workflow into the script , or you can set up your own. Either way, you’ll want to set a location for the calendar and paste in your calendar ID into step 2b of FormMule.


Create a Teacher’s Schedule for the Year

I had mentioned that I would probably wait until next September to make these fixes, and then I discovered that my design was too limiting and prevented me from using it, too!  Sorry about that.  These changes allowed me to make another sheet that doesn’t use sign ups at all, instead it will plot a teacher’s schedule for the year across a 6 day cycle.  Basically, this modification uses VLOOKUP to populate entirety of each month sheet from the “Teacher Schedule” sheet.  Worked great.


Here is a link to the Teacher Schedule sheet.


Iteration is so important.  I feel like our students don’t get the time to iterate thanks to overpacked curriculums.  But that is a post for another day, isn’t it?

Saturday, September 14, 2013

Creating a Sign Up system with FormMule and Google Spreadsheets



I think we are beginning to leave the era of the computer lab. The specter of the common core tests have done at least one good thing: motivate a progression towards one to one computing in schools.  That said, schedules and sign ups are still the arteries that make schools tick. The lab and cart schedule are no exception. Google calendars helped to update the conventional sign up sheet, but there are parts that just don’t fit school culture. Google Calendars don’t support 6 day cycles (many schools, including mine, are reliant on this awkward format) and a calendar without time slots is too easy for teachers to abuse (you know who you are.) Last year I tried appointment slots, which work well from some schools, but I found it complicated for my teachers to change or delete events. It turns out that my teachers change events a lot.  


Thankfully, Google Scripts provided a solution this summer. PushData and FormMule have allowed me to customize a system that will “just work,” and best of all, I don’t have to think it about it (much) once it’s set up.  I have four schedules for various lab carts and rooms and the PushData script migrates the schedule, the six day cycle, and my faculty list to each.  When a snow day changes the 6-day cycle, all I have to do is make one change on the master 6-day cycle sheet and all the schedules update.  Once on the schedule, various functions move the data around to automatically populate and organize a vertical agenda for each month.  Teachers can select their name from a validated drop down list, add a description to their event, paste in a relevant Google Doc URL and invite a guest.  Thanks to FormMule, the schedule automatically adds the event to a Google Calendar and sends reminder emails to participants.  If a teacher needs to modify or delete an event, they just record the change and make a note in the “Update/Delete” column, then POOF the calendar is fixed.


It took me a little while to figure out how to configure the Spreadsheet to behave correctly.  I wanted to share it here just in case it's useful for someone else.  All of the settings will copy with the spreadsheet - you'll just have to add a calendar ID.  A really big thank you goes out to Andrew Stillman whose awesome scripts made the whole thing possible.


Click here to open the Demo Schedule sheet.  Read on for setup notes and other things.


What you need to do to set this up:

    Settings for FormMule step 2b

  • Copy the sheet.
  • Create a Calendar to sync
  • Copy the calendar ID
  • Run the FormMule Script.
  • Configure the FormMule Script (See the screen capture for step 2b above.)
  • Paste calendar ID into the appropriate spot of the FormMule settings window.
  • Add your own faculty to the Faculty sheet.  I push this out with Pushdata so that changes are easily maintained.
  • Set up your triggers: - I added a one hour trigger to the manualSend handler because I am not using a form submission and I want teacher to be able to see the schedule when they sign up - I added a clearRange handler that will reset the “update/delete” column on each month’s sheet.  This will reset the edit condition for multiple revisions. I set a daily trigger that fires every morning at 2AM.
  • Populate the “Faculty List” sheet with your teachers and their google account emails. I used PushData for this because I have several schedules and don’t want to keep track of multiple edits.
  • Edit the six day cycle sheet to reflect your calendar.  I use PushData for this, too.
  • Edit the time slot sheet (Yup. PushData.)
  • I have named ranges for all the rows and columns with formulas, you may want to protect these if you use it in your school, just in case a teacher accidentally changes something.
  • Hide all the sheets that aren't labeled for a month.

What I want to make better:
I just don’t have time to fix all the things that work, but could work better.  The time slots are currently rendered to the month sheets using the ARRAYFORMULA function.  This works, but it is inelegant. I did this because I needed to account to holidays and the daily repeat of the schedule, doing it manually was the easiest path.  In the next iteration I want this to account for holidays and the daily schedules automatically.


I also push the dates to each month using ARRAYFORMULA (This is in hidden rows at the top of each sheet.  I used the formula to quickly develop the rest of the sheet and now I don’t really have the time to go back and fix it.  I’d rather something like VLOOKUP here.


The next time I work on this (probably next September) I will address these issues.  If you get to it before then, let me know! As far that goes, let me know if you see a better way to do anything else!

Something I learned:

Go easy on time based triggers. I added two triggers to Andrew’s FormMule.  I wanted changes to schedule to be quickly reported on the calendar so I made the trigger fire every 5 minutes. This created an error after I used up my allocated CPU time.  I have since changed my triggers to fire every hour and it works much better.

Tuesday, January 1, 2013

Minecraft Possibilities Part 3




It’s always about choices, isn’t it?  Choices are wonderful and dangerous.  They complicate things, and for a Minecraft newbie like myself, they introduce risk.  The first big choice involved with using Minecraft in instruction is choosing a server platform.  The vanilla server (from the Minecraft folks) was never an option; it just isn’t extensible enough to create an usable place for students.  From what I have seen, the options boil down to CraftBukkit, a Minecraft server with an enthusiastic community of developer support, and MinecraftEdu, a server fork developed specifically for education.  This particular choice reminds me of the difference between using a service like Edublogs and installing your own Wordpress server.  With your own server you can do anything, but you can also break your installation and make things really complicated.  Edublogs can be restrictive, but the learning curve is shorter and the knowledge that things will “just work” is comforting and important.  
I decided to install the Bukkit Server for my home LAN because it was free and I was impressed by the available plug in options.  There are actually too many, and this is further complicated by differences in plugin quality and version compatibility.  I used a combination of “Top Plugin” lists to sort through the choices and come up with four that would meet my goals:


  • Multiverse - This plugin allows a server to host multiple worlds.  I envision a “creative” server where students can build without worrying about things like hunger and monsters.  That said, these are the aspects that make “survival” servers so much fun.  A simulated community would want to be built on a survival server, I think, and multiverse allows both of these things to happen.
  • Minecraft Essentials - Essentials provides too much to list.  The command list provides an opportunity to control the in-game environment and moderate the players.  It also creates a permissioning system which would be necessary to create levels of users, perhaps introducing an opportunity to involve students across the grades.
  • World Edit - This is a super powerful plugin to modify the landscape and build structures.  It has a hefty learning curve, but introduces some opportunities to teach geometry.  As always, YouTube was quite helpful (I found it interesting, though not surprising, that most Minecraft "How-To" videos are produced by kids.)  
  • Towny - This plugin creates a simulated community environment.  Towny does heaps of useful things, including granting students a plot on which they can build and providing a foundation for government.  There are mechanisms for economy, elections, taxes, towns and city states.
While installing the server and plugins weren’t too difficult, using the system as an admin takes some work.  I think I’ll wind up printing out the dozens of commands which work from the command line within the game.  This complexity does add a barrier and makes me realize why the Minecraft Edu server exits.
Minecraft Edu includes nice in game interfaces and many special features for classroom use.  I think some of the features, like the special blocks, can be reproduced with Bukkit mods but Minecraft Edu is so much simpler to use.  While I haven’t played with it yet, it appears as though the admin functions all have an interface, no command line needed.  For that alone I think the Edu server is worth exploring.  There are trade-offs. The plugins that work with Bukkit will not work with Minecraft Edu and the opportunity to create rich and immersive digital environments provided by plugins like Towny are lost.  
As a teacher, I think the simplicity of Minecraft Edu for instruction is important.  But to get everything I want would require setting up two servers and I’m not sure I can pull that off.  I am leaning towards starting with a Bukkit server because I am most likely piloting the game in a school club.  I won’t necessarily need the structure of the Edu server and I would want to have conversations about the community with club members, then build the world accordingly.  I think the flexibility of Bukkit server would lend itself better to these needs.   I should disclose that I also have experience with installing two Wordpress servers.  Both of which are broken (in fairness, my last blog was taken down by Russian hackers) and I now find myself writing a third blog using Blogger.  Hmmm.

Monday, December 31, 2012

Minecraft Possibilities Part 2




For the last few days I have been experimenting with various aspects of Minecraft.  I have discovered that the Minecraft ecosystem is a lot bigger than I thought.  The folks at Mojang have kept their platform open enough to inspire a faithful community of fans that mashup and repurpose their game.  Different server platforms have been made, hundreds of plugins have been created to change the game play, and complete worlds have been built for others to enjoy.  
I was impressed to find a wealth of fan created content, including texture packs, custom maps, even new ways of playing the game.  Some users use Hunger Games inspired maps to play their own version of this dystopian survival competition.  I was impressed that they even include Sponsors (interesting way to inspire fan fiction during English class, right? ) Other users have created maps with dueling pirate ships, complete with working cannons that have been created using the in-game machine parts.  I think building a working cannon with levers, pistons, and switches would be a nice complement to a simple machines or circuits unit.  
I was originally interested in providing a virtual environment for students where principals of government, needs and wants, community, and citizenship could be explored.  Ideally, students would have opportunities to let their imaginations run wild or explore and build places with a context, such as creating a colonial village.  When I discovered fan-created adventure games using Minecraft as a platform, I realized even more possibilities.  These games include involved storylines, puzzles, and quests.  I’m currently playing Inkstar and it is pretty amazing for fan content.  Could students write  collaborative story arcs that other students could play in Minecraft?  This could potentially take the Ant Farm idea to the next level.  
Minecraft's open-game platform has created an outlet for a dedicated fan base to repurpose the game in interesting ways.  I think this has also created opportunities for education, but I’m discovering that exploiting these opportunities will take some work.  The question I am currently wrestling with is, "Will the work be worth the return?"  Fortunately, this work feels a lot like play and I guess that's the big idea, isn't it?


Ant Farms

SD800-10619
Photo attributed to ThrasherDave

One project that students and teachers really enjoyed that I would like to bring to my new district is the Ant Farm.  Teachers worked with students in ten schools to create an "Ant Farm" wiki (a.k.a "Choose Your Own Adventure".)  This lesson plan from "Read, Write, Think" describes one method for creating this type of story collaboration.  It is known as an Ant Farm because there are many paths (ant tunnels) for the reader to take.  Wikis are ideally suited for these projects and require students to work very closely together, negotiating, planning, and compromising.   This particular project was fashioned around the historical fiction genre.  Students researched the disappearance of the Roanoke Colony and then crafted an ant farm story about John White's return to the island.  The project was designed as a unit and provided opportunities to build background knowledge, provide immersion into the new adventures.

The Mystery of Roanoke Ant Farm

Monday, December 10, 2012

Minecraft Possibilites

I have been interested in the classroom implications of Minecraft since being introduced to the open world game by Gerry Ardito.  I'm curious about the possibilities of a virtual environment in education, especially when the virtual space is already embraced by students.  I've taken informal polls of my 3rd, 4th, and 5th grades and found that about 25% of my kids play Minecraft at home.  That's pretty good for an indie game. Student buy-in isn't enough to make a game useful for teachers, but Minecraft has some features that I think make it different.

One of the things that separates Minecraft from similar sandbox-style games (such as Second Life) is the ability to host server installations.  This allows teachers to restrict participation to the school community and control permissions.  In addition, this also allows teachers to customize game servers with plugins.  These community built modifications allow administrators to set up towns, in-game economies, and even teach programming.

Having control over a school server has other advantages.  Outside of school hours can be established and game play can be restricted to those times.  Moderators can be chosen or elected from the student body, or from alumni.  Curriculum such as needs and wants, elections, community interdependence, the importance of laws, and introductory programming can all be addressed in a way that engages the learner and encourages independent exploration.

I really don't know what this would look like but I am excited about the possibilities.  I hope to experiment with the idea in an after school club and see where it goes.  Because Minecraft has an open-world approach, the possibilities are exciting.  Just check out the video below of the  Minecraft built 16-bit computer - Crazy.  I'll keep you posted.