Showing posts with label #xplap. Show all posts
Showing posts with label #xplap. Show all posts

Monday, July 8, 2019

Boss Battles with Google Forms and Sheets - An Update



I spent most of the last summer creating Boss Battles for my gamified classroom. Throughout the school year, I also shared with you a couple of tweaks I made to those original sheets, adding "first hit and first perfect hit", and then adding "shiny bosses".  My students really got into this whole idea of battling the bosses and I was really happy with the excitement they generated.

A couple of days ago, I began the painstaking process of clearing all of this work out in preparation for the new school year. While I would have loved to use them as they are, they no longer fit the game narrative that I am exploring for the upcoming year, plus, I reused Bosses across my grade levels. While this may not be a problem for most teachers, it is for me because I loop the students, so most of them would be re-battling the same bosses they already know. Perhaps they would not remember, but all it would take is one of them to check their student sheets (where the bosses are displayed), and the excitement of getting collecting the boss would be diminished. 

With all of this in mind, I started creating new bosses - we will be rescuing scientists - and clearing out the old forms/sheets tweaking the originals a bit, which is what I am sharing today.

Boss Battle Form (will auto copy)  - I have dummy-filled it with some data so that it is easier to explain. If you make a copy simply delete all the prefilled contents of "form responses 1"

Boss Sheet


While it looks basically the same, there are important things to note. 
  • Column L contains each of the Boss possibilities. Each is its own drawing (published to the web) and placed into the cell using 
=image("published address of your google drawing")
You may be tempted to make use of the new "insert image in cell" function. Don't. You will be calling the images into the boss battle pane and into the scores sheet. Google Sheets does not recognize images insterted that way as actual objects so until they fix that what will happen is that you get blank instead of the image you want to display.

  •  Cell F15 now contains a new formula:
=index('Form Responses 1'!$B:$B, match(true,isnumber(search("/",'Form Responses 1'!$A:$A)),""))
This formula looks at the timestamp looking for the first appearance of the slash symbol (/) in Form Responses 1 column A and reports the  matching contents of column B in the same sheet. This formula solves the problem of having to change cell references as the sheet is populated the first time around.

  • Cell F16 contains a similar formula:
=index('Form Responses 1'!$B:$B, match(true, 'Form Responses 1'!$C:$C=12, 0))
In this case, it matches the contents in column B with the first time the "perfect score" of 12 is achieved, and of course that can be changed to whatever number you is your "perfect score". 

Perfect Sheet

That sheet simply reports the contents of first hit and first perfect hit and assigns them a value. I bring that into my leaderboard using the Vlookup function as a way to give students an added incentive.
Formula that imports this into your leaderboard:

=IFERROR(VLOOKUP(A17,IMPORTRANGE("Boss Battle Google Sheet Identifier","Perfect!A:B"),2,0), 0)

Where the number 2 is the column number where those "extra points" are housed.
If you are interested in the Vlookup formula as it pertains to the leaderboard, visit my post "Assign XP automatically using Vlookup - Google Sheets"

Scores Sheet - AKA Where the magic happens


As originally, this is a pivot table that aggregates the data generated first by adding all the scores each student generates (Column B - Sum of Scores) and then by reporting the maximum score the student obtained (Column C - Max Score).

Column D (Counts the number of times a student achieved a Perfect Score)

I've been toying with the idea of having students "catch/rescue the Bosses". This collecting of the bosses had a great impact in engaging students to attempt the quizzes multiple times throughout a semester, regardless of whether it is an official Boss Battle day with the whole display of the Boss. In order to achieve this assigning of bosses I first needed to know how many times a student scored a perfect score. To do this, I added a Calculated Field to my Pivot Table:

If you click anywhere inside the already populated pivot table, the Pivot Table Editor opens. This already had the score summarization by SUM and by MAX.

The Times Perfect Score was added using by clicking Add values and selecting "calculated field". The formula is simply a COUNTIF, though you notice that the normal use of the quotations is eliminated.

=COUNTIF (Score, 12)

The number 12 obviously corresponds to the "perfect score" in this particular case and could be changed to whatever suits your needs.

If you are recreating your own, also make sure that you select Summarize by Custom and Show as Default.

That got me the number of times a student got a perfect score. You may be wondering why this was important. The answer is that I did not want to give out the Boss simply based on the number of points. My students are notorious for finding the easy way out and often would rather take a quiz 100 times scoring 1 each time than getting 100 the first time.

Column F (Where the Shiny Bosses come in)

With that number of "perfect scores" aggregated by student, it was time to move on to the "catching/rescuing" of the boss.

When working to pivot tables, you can still add formulas to the columns that are not being used by the pivot table itself. I added a title to Column F and called it boss obtained. To give the illusion of randomness to the catch, I decided on the following formula

=IF(D2>=10, Boss!$L$9, IF (AND(D2=9), Boss!$L$8, IF (AND(D2<=8,D2>=6),Boss!$L$9, IF (AND(D2<=5,D2>=1),Boss!$L$8," "))))

which gives the Boss in Cell L9 or L8 of the Boss sheet depending on the number of perfect scores. You would think that you could use the RAND (random) function, but unfortunately, it is what is called a volatile function, which means it refreshes each time and I did not want students to have a new boss catch simply by opening the sheet.

The formula is just copy/pasted down through the sheet so that each row gets its own student reference. The results of this column are again imported to my Leaderboard using VLOOKUP as mentioned in Perfect Sheet above. The key here is to remember that VLOOKUP references the column number:

=IFERROR(VLOOKUP(A2,IMPORTRANGE("your sheet identifier","scores!$A$2:F"),6,0), 0)

where the initial A2 - is what it is looking for (e-mail of my student),
"scores!$A$2:F"- the sheet and range where the data is housed
6 - really column F where the bosses caught were "assigned"

Column E - Maximum Possible Score: the end to "grinding"

Last year, some of my students greatly inflated their leaderboard standing by retaking boss battles over and over again. While in principle this would be OK with me, there is a point where enough is enough. I know that I can simply close the form, but that leaves the student who may need the extra practice out of the loop, and opening and closing a form manually means that I must remember to do so. Taking this into consideration, I opted for writing in a formula that reports a set number of points out to my leaderboard (again with the VLOOKUP formula) to my leaderboard once the maximum is reached.

=if (B2>40, 40, B2)

Looking at the formula, it simply reads if the contents of cell B2 (where the scores are added is greater than 40, report 40, otherwise report the number present in cell B2. The formula is copied down Column E.

That is it for today. I hope this inspires you to keep working on your leaderboards and perhaps make some additions or modifications. And as always a big shout-out to Mr. Powley who although has moved on to standards-based grading and may be letting go of the Dread Sheets inspired this whole Boss Battle process.


Saturday, March 16, 2019

Reviewing Content with Shiny Bosses



By far, the greatest successful addition to my game this year was the Boss Battles. Piloted at the end of last year, and fully implemented this year, I've even had students present this form of testing during Student Exhibition Nights. This boggles my mind since the Boss Battles are in reality nothing more than the normal tests and quizzes I would normally have, but as we all know, beating the Boss, and even better, adding each to our collection of "perfect bosses", is so much better than simply taking a test.


My boss battles have undergone a couple of minor tweaks over the course of the year, with the addition of the first hit and first perfect hit, and Google Sheet's new (to me) shuffle question order, but other than that they have remained the same as when I first created them. 

With CASP dates approaching, I started to think about pulling questions from this already created "bank" of questions to create new battles for review. However, I did not love this idea simply because, I did not think this far along in the school year when I set up the individual student sheets, and thus did not leave myself extra places for more than a couple extra bosses. The other issue I had was that each unit is tied to a race of aliens we encounter through our narrative so it would not make much sense for a "robot" boss (matter) to suddenly ask questions about earth systems, for example. 

I was pondering this one morning while on my daily Pokemon Go walk (yes, I still play) when the idea to make shiny bosses came. If you are unfamiliar with the term, a shiny Pokemon is a variant of a regular Pokemon that has a slightly different coloration. It does not give anything new out nor does it have any special attacks, it is simply different. So I set about trying to figure out how to make that happen without having to recreate (copy) a multitude of forms and sheets and do a bunch of work with changing cell references in my evergrowing leaderboard. Most importantly, I did not want to touch the student ranking sheets. So here goes - Fullscreen link




If you are presenting the shiny boss battles as a stand-alone thing for review, you are done, but if like me, you were already pulling data into your leaderboard, you will need to make some other adjustments. 




 As with most of the gamification set-up tasks, the joy for you may be in creating the first shiny boss, and the rest of the process may become tedious, but remember, once done you do not have to do anything other than enjoy your students as they confront the shiny boss. As you see below, the figuring things out ends up being done by Google Sheets so there is no time wasted in looking up individual students to see if they got the shiny boss or not.



What do you think? Any other ideas to make review a part of your game or narrative? I'd love to hear about them.

Tuesday, November 20, 2018

First Perfect Hit - The Match Function


A couple of months ago I shared with you how to create Boss Battles using Google Forms and Sheets and assign XP automatically using the Vlookup function. I spent most of my summer creating all the Boss Battles I intended to use this school year and tweaking my individual student sheets so that if a student scored a "perfect" hit on the boss they would capture it and add it to their collection.


The response of my students to this whole idea has been very encouraging. They actually look forward to Boss Battle days, literally rushing to class to participate in what you and I would actually call a testing day. However, there were a couple of little nagging issues that my more hardcore gamers immediately asked for: Extra XP for "first hit" and/or for "first perfect hit". Apparently, this is a "thing", and while they were satisfied with my answer at the time "Don't know how to do that other than scouring the sheet, which I do not want to do. If you figure it out, we can implement it", it stayed in the back of my head. 

A couple of days ago, I once again sat down to try to figure it out, and it finally crystallized.



On one of my existing Boss Battle Sheets I added:

- First hit: Easy, since you only need to bring up the first entry on the form
='Form Responses 1'!$B$2
- First perfect hit: This formula looks up the e-mail of the student Form Responses sheet (column B) and returns the value found in column C when it equals 10 (the perfect score for this Boss battle). Once it finds the first one, it stops.
=index('Form Responses 1'!B:B, match(true, 'Form Responses 1'!C:C=10, 0))  
These two formulas made the students happy since at least they now had the "bragging rights". The addition of extra XP for those two instances can be done manually, or by adding a "Perfect" sheet to your BossBattle (as in the example), where you again report those two values and input whatever XP you wish for them. You can then use the Vlookup function explained in my previous post to have Google sheets find the value for you. That formula in your leaderboard would look something like:
=IFERROR(VLOOKUP(A2,IMPORTRANGE("GoogleSheetID","Perfect!A:B"),2,0), 0)
I now have to add those formulas to all my Boss Battles, but I know that it will be a nice surprise when we come back from break. What about you, any other tweaks to share?

Tuesday, August 7, 2018

Beat the Teacher - Back to School Edition



On many occasions during the game-based learning and gamification Tweeter chats I participate in, we've talked about game skins (#games4ed, #XPLAP). For those of you that may be unfamiliar with the term, a game skin is a cosmetic change to a game that does not change the basic gameplay. Much like what I shared when I talked about my FLUXX Mod project, or what @MrPowley shared in his Skin in the Game post the idea is not to create a new game from scratch, but simply to change the topic of the game adapting it to specific situations.

As I was going through my collection of board games thinking about what I could do to start the 2018/2019 school year I happened upon the Spin Master game called "Beat the Parents". As I remembered, the gameplay was pretty easy, but being a full-on trivia game it did not make my family's game-night rotation too often. However, after dusting it off, I figured that it would be perfect to mod as a Back to School game, giving my class the opportunity to review expectations, policies, procedures, and locations of classroom items, while allowing me to get to know my student's trivia and preferences.


Thus, I started by creating the board (click to open the file), which I plan to project to the class, using post-its as tokens (mover pieces) so that the whole class can play at once.
Normally, I would have created and laminated the necessary cards, but I decided against it for this skin since I want the students to come up with their individual "getting to know you" trivia questions. The plan is to provide each student in my 5 periods with a couple of index cards where they can write questions like "What is my (the student's) preferred nickname?", "How many siblings do I have?" or "What is my preferred sport/book/content area?", really anything that would be traditionally asked in a student interest survey. On the other hand, I prepared a file with the teacher questions that are specific to my class (sharing to give you ideas in case you also want to try this out).

Since I was not going to create physical cards, I then had to figure out a way to create digital wild-cards. These became the numbers 1-20 at the top and bottom of the board you see above, and the plan is that when we land on a wild card, I will roll a 20 sided dice and click on the corresponding card. The wild cards linked on the board are simply links to individual slides in this slide deck.


I tried to make the wildcards somewhat generic, but if you find that they are too specific or you are interested in creating your own set, just remember that you can obtain the links to individual slides in any slide deck as explained here.

The gameplay itself is exactly as the original (Beat the Parents instructions), except that there will always be only one question per turn (in the original there are up to three). The game is so easy to play that once you have the board, you can have students create questions for a topic at any point during the school year for an impromptu review and quick game of Beat the Teacher.

While I am certain that the students will beat me when I present this as part of my getting to know you activities, before knowing the new students very well or at all, I think they will get a kick out of beating the teacher, and who knows, maybe I'll surprise them.

Tuesday, June 12, 2018

Individual Rank Sheets - Google Sheets to the Rescue



Over the last couple of years, as my game has grown, so has my need to add elements that improve the sharing of ranks, perks, and standings with my students. Up until now, I have published our leaderboard two ways:

  • a "combined" leaderboard that displays the Top 15 students among all 170 of them.
  • each grade level gets their own, which ranks all 34 students for that particular class.
I also publish a Badge Sheet for each class, where students can go and see which of the badges they have earned. All of this already populates automatically from the "master leaderboard" I shared a while back (Leaderboard and Badging with Google Sheets).

This works well to inform the students of their standings. However, it requires that students navigate between several web pages and do some scrolling, often complaining about not "finding themselves" within the data. I also often worry about the students who are at the bottom of the leaderboard since these placements within the ranks are public to all my students. As I pondered these problems, I also thought about a way to give students some control about what information is shared with all and what is "just for each one".

In searching for an answer, I came across two blog posts that should be mentioned as the inspiration for the sheets I came up with, @MrMatera's "Standards Based Grading Gamified and Googled" and @MrPowley's "XP Grading: Video Blog". As always, these two masters of the gamified classroom had already come up with solutions that better informed the students of their progress - The Individual XP Sheet. With a name in hand, and knowing that it was possible to share individually with students, I set about creating one that made sense for my classroom, using a combination of IMPORTRANGE and conditional formatting so that everything would auto-populate without me having to open up a whole bunch of individual sheets. Remember I have 170 individual sheets to maintain.


Just like in the VLookup post I published a few days ago, I would love to simply give you a template to use tomorrow. Unfortunately, even if you use what I share in the set-up procedure that follows, the references for the cells will need to change as soon as you create a copy.

Before I go into explaining the set-up and scare you (it is time-consuming, but you only have to do it once!), let me show you the magic. In the following mini-video you see my leaderboard, my "Teacher Master Sheet" spreadsheet, and a Student Individual XP Sheet



Now that you've seen it in action, let me explain what to do to set this up. It all starts with the Leaderboard, where I need to be very consistent in the placement of the information, especially student names and Emails so that things do not become complicated down the line. In order to accomplish this, the first three columns on the Leaderboard sheet are the only ones where I actually type names and e-mails. The first three columns (A:C) in every other sheet on the leaderboard, where I will type in or import scores, get:

=arrayformula(index(Leaderboard!A3:C36))

With that in place, it is time to create the Teacher Master  Sheet template. I created mine using Alice Keeler's TemplateTab so I would not have to duplicate each student tab myself. If you open the Teacher Master  Sheet template, you will notice that it includes 4 tabs instead of Alice's 2. The Heraldry and Standing tabs, which are imported from the Leaderboard using TRANSPOSE(IMPORTRANGE) and IMPORTRANGE respectively, were necessary for my purposes since I wanted to display elements of both but limit the delay it could cause as I was importing the other elements.


The mini-leaderboard is set to always display the owner student in the middle and two students above and below. It combines some manipulation of conditional formatting and If- Match statements in order to not get errors when the student is at the top or bottom of the class leaderboard. This is why I had to add the Standing sheet.

Once my template was done, I used IMPORTRANGE to add the names to the roster and ran Alice's TemplateTab script. Since I ran the script after I had added the Heraldry and Standing sheets I ended up with a couple of sheets that were mislabeled. If this happens to you, simply discard them and/or duplicate and rename what you need. You will only run the script once for each Teacher Master sheet.

Then comes the onerous task of referencing each of the correct cells from the Leaderboard, as C3 will need to become C4 and D3 will become D4, etc. I wish there was some way to automate this, but I have yet to find it. However, it more painstaking than anything else, and just like the script, I only need to do this for the set-up, and never again. I opened the leaderboard, and for each name, I found the row where it was located and changed the numbers accordingly.


Once I had finished all of them and had the Teacher Master (sharing one where all the numbers have been changed for 34 students, though if you use it you would need to change the leaderboard reference), it is time to create the individual sheets. One would think that you can just open up a spreadsheet and copy/paste, but that does not preserve the format that I painstakingly created, plus I want them to all update automatically, so instead there are a couple more steps.

To preserve the formatting, I first created a new spreadsheet (I called it Student Template). Then I chose one of the student sheets in the Teacher Master. I clicked on the arrow next to the name and chose duplicate sheet. It asked where you want it, and of course, I selected Student Template. Once it is duplicated, I went to the Student Template and saw it had added a tab called Copy of "Name". I deleted Sheet 1, and instead of selecting and deleting the cells in Copy of "Name", I selected and cleared the cells. This preserves all formatting, including all conditional formatting.


Of course, since the referenced sheets were no longer there, it looked like there was an error, but I knew what the final step was...

I made a copy of the Student Template, renaming it with the correct name for my first student (Name 1 in the example), and went back to my trusty =IMPORTRANGE formula.

=IMPORTRANGE("URL of TeacherMaster","'Name 1'!A1:M14")

Notice that Name 1 includes single quotes, this is because the sheet name has a space between name and 1. This is not needed if there are no spaces in the Sheet Name.

After doing this final step 34 more times, I had my first complete set of Individual Student Sheets.


I use the same basic sheets for all my 5 classes, but I do have five leaderboards (where the badges differ) and also like to keep the Teacher Masters separate. This means that I had to change the leaderboard URL to create each of the Teacher Masters before running the Alice's TemplateTab script.

The last step is to share each Individual Student Sheet with the student "owner", which I accomplish the regular way (share, type e-mail, can view). 


Those individual links can also be added to a spreadsheet or blog post where names are sorted alphabetically and since only the student "owner" and myself have access, the risk of oversharing is minimized. Now, for those students that perhaps do want to share their badges or rank insignia, there is always the possibility of creating mini-sheets within their individual sheet. Using =arrayformula(index('Name of student sheet'!C2:E6)) you can select specific cells to share. If you publish just that mini-sheet to the web, students can then get the embed code and publish in their blogs or e-portfolios.