Quickly Make Bulletin Board Words

Marc Seigel is always doing great things in his classroom and he tweeted out a great picture of a bulletin board that now lives at the front of his room.

I’m working on making my Word Wall (more on that some other time) and my biggest beef is how long it takes to go through and make each word look nice. Selecting each term, changing the font, changing the style…way too long.

So, here’s a script that will do the same thing.

The script has an array of the most readable fonts in the Google Font library. If you want to add others, just add it’s name in single quotes on line 20.

Words go on their own line in the Google Document. When you add the script, reload the doc and a special menu will appear at the top where you can run the script. It loops through each line, applies a random font style, changes the font size to 48px, and then randomly applies bold formatting.


You can grab a view-only version of the document for your own drive. Instructions are also in the document.

More Scripts to Make Life Easier

It’s been an intense week of teaching, church band practice, and Google Apps Scripting. I’m really focusing this year on using the computer to do what it does well so I can focus on doing my job better. In particular, I’m using the desktop to do repetitive, marginal jobs as efficiently as possible.

This week, I’ve got two new tools in my belt to help out.


I happen to have a higher number of ESL students this year, some of whom are brand new to the country. Besides feeling more and more awkward about only speaking one language myself, I needed to find a way to help them with the language barrier.

After speaking with our ESL specialist, she gave the okay for me to print Spanish on the back of my English notes pages. (I was concerned about creating crutches, but she assured me that it would be more helpful than harmful in the long run. I need to learn Spanish.) Taking my notes, one by one, and putting them through Google Translate would have taken way too much time. So, I turned to a script.


// This function converts a document from English to Spanish quickly.
// The post from http://stackoverflow.com/questions/25509159/how-i-can-get-the-textwrap-image-in-google-doc/25509591#25509591
// was helpful for creating the logic to check for images in the document.

function translate() {
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();

  // Add a page break for the translated material.

  // Get the number of elements in the document
  var elements = body.getNumChildren();

  // Use the number to loop through each element in the document.
  for( var i=0;i

This script is still a little incomplete, but it does the trick. You can read through the code to see what exactly each section does. I’m probably going to turn this into a Doc Add-On in the future, but that’s a little fuzzy right now because I can’t imagine when I’ll have the time to do that at this point. Some things to pay attention to:

  1. All images and drawings have to be inline for it to work. Googles Apps Scripts can’t see other types of images yet. It’s faster to make the copy and then reformat how you’d like.
  2. Formatting isn’t always carried perfectly. Again, it’s about the minimum-viable-product right now. Spot check the translation for format errors if that matters to your doc.
  3. This is document-specific…at the moment. You’ll need to recopy the script each time you want to use it.

I had a fluent Spanish reader check the grammar (Google Translate can be notorious for some weird translations at times) and he gave it a thumbs up, so take that how you will.


Whiteboarding is a big part of this year in class. I want students investigating, collecting information, manipulating it, and building an argument. A lot of times, class ends before they have a chance to get clean work on paper. I needed a way for them to send photos of their work in at the close of class.

Of course, email is out. I guess that makes me old now.

We’re barely scratching the surface of Google Apps for Education at school – teachers are starting training this semester and student’s haven’t had their accounts opened up yet, so sharing back and forth isn’t really possible yet.

Some Googling turned up a great alternative, still using Google Apps, to create a public dropbox with scripts. In 20 minutes of finnagling, I had a working dropbox page which allowed students to submit things straight to my Drive with three taps. I’ve modified mine slightly from the blog post linked above. Unlike the translate function, this one requires two files.




Student Work Submission


    This is based on the template shared by Amit Agarwal (@labnol) on
    the blog, Digital Inspiration. The original post with instructions:

// Find the form that is collecting the information to upload.
function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('form.html');

function uploadFiles(form) {

  // Check for a folder called "Student Files" in Drive. If it's not there,
  // create one.
  try {

    var dropbox = "Student Files";
    var folder, folders = DriveApp.getFoldersByName(dropbox);

    if (folders.hasNext()) {
      folder = folders.next();
    } else {
      folder = DriveApp.createFolder(dropbox);

    // Once the folder is found, create the new file
    // The file is named by attaching the Period Number to the Student Name.
    var blob = form.myFile;    
    var file = folder.createFile(blob);
    file.setName(form.classPer + form.myName);

    // Display a success message to the user.    
    return "File uploaded successfully. You can now close this window.";

    // If it fails, display the error message.
  } catch (error) {

    return error.toString();


Those blocks of code turn into this:


Pretty easy to figure out what to do.

If you’re interested in using either of these scripts, let me know on Twitter – @bennettscience and I can help you get them set up. Like I already mentioned, I think the translate function would work well as an Add-On, and if I get there, I’ll write another post with instructions on how to get it.

More on the scripting I’ve been doing lately…

Updated Student Response Template

A while back, I wrote about a new Google Sheets response system I created for use in class. I suggest you go back and read that first if you haven’t read it yet.

First, I uploaded the template in to the gallery. That’s the best place to download and use the spreadsheet because everything copies over correctly.

The biggest update is in the setup process. Rather than posting a URL on your board, it will now create a QR code automatically for your students to scan.


Notice the tab at the bottom wasn’t there before clicking the button – it adds the code to a new sheet. You only need to do this once because the other functions (outlined in the first post) clear out responses in the template with each question.

QR Codes Everywhere

In my continuing effort to make things more available for students, I’ve started rearranging my Google Drive files. I’ve realized that thinking of Drive as a traditional file system isn’t as effective as using it more like a topical organizer and then power searching for quick results. Because of this change in mindset, I’m getting rid of all of my old unit packets (as traditionally defined) and moving individual pages (notes, assignments, etc) to one big “Handouts” folder. The main reason for this is so I can quickly and easily create a la carte handouts for students missing papers, school, etc. No more trudging through packets and printing one page before hunting for another.

From the last post, I’m also rebuilding my class website to make it dead-simple to find information. In short, lots and lots of descriptive links.

Everything is going to be fed through the individual document this year.


From the document, if they’re accessing on their phone, the title of the page jumps them to a YouTube video for help. On the other hand, if it’s a handout they get in class, the QR code does the same thing. Access. It’s important.


Since I have a lot of handouts and a lot of videos, making a QR code for each one is time consuming. But, thankfully, Scott MacClintic came through in a big way. He shared a blog post which outlines making QR codes using Google Sheets.

I ran into an issue copying the code from the blog post (plain text is important!) If you want to use a sheet similar, use the code snippet below.

One more short note: QR code complexity is determined by the number of characters you’re encoding. So, longer string, more complex code. Using a URL shortener to make your string fewer characters is a good idea. Then encode the short URL. Again, this is something a script can do wonderfully. This WebApps post has code snippet (also below) which you can use in the Sheet you set up. If you’re curious, here’s mine.

The best thing about this is that using the Sheets method means I don’t have to download each one locally – they’re saved in Drive. It also makes updating URLs for videos (updated content, reorganized, etc) much easier to manage because the code updates with the data change. Lifesaver right there.