Becoming little while reading The Littles

In my language arts class we are currently reading The Littles by John Peterson. A fun way to involve my kids in the reading is to write our own stories as if we were small enough to live in walls. Plus we have the benefit of living in an age with 1-to-1 iPad programs. Technology allows us to go a step beyond creative writing. We can add a visual creativity to our stories with nothing more than Apple Pages. Here are some that my students made:

[su_slider source=”media: 1032,1037,1041″ link=”lightbox”]

The steps to create your own transparent images with Pages are very simple. You need to start with an image that has a mostly solid background. It doesn’t need to be perfect, but the more solid and better lit you start with, the better product you will end up with. There is a reason that studios have tons of lights and giant green screens! We usually aren’t that lucky in a classroom, so we have to make do. See my example below.

First, add the picture to your document by clicking on the + in the upper right corner:

Next, select the image and click on the paint brush icon. This will open some editing options. You want to chooose ‘Instant Alpha’.

You will need to select parts of the image to remove. Depending on the colors, you can do this little by little or in giant globs. The background that will become transparent will be shown in below as you can see below. Be careful not to remove any of your main image.

In the end you will have something like below. This can be placed on top of another image. TADA! You have superimposed an image on top of another.


Google Sheets: Functions for grading!

It is that time of the year when entering grades becomes the all-consuming activity for teachers everywhere. Since I am crazy about learning how to better use Google products to make life easier I thought I would share a few functions that have made grading easier for me. Excel provides similar functionality, but you will have to check the docs to figure out the syntactical differences.

Before I jump into the formulas, let me make sure everyone is aware of how to select data on a spreadsheet.

A1:D1 This will select all of the data in cells A1, B1, C1, and D1 and allow you to manipulate that data.

A very basic example of that would be: =AVERAGE(A1:D1) will provide you the average of the data in the selected range.

To take that a step further, we could select all the data in a column: =AVERAGE(A:A)

Or maybe we want a set of data from a different worksheet inside the file: =AVERAGE('Another worksheet'!A1:D1)

These functions can then be nested inside each other: =ROUNDUP(AVERAGE(A:A))

The functions purpose is usually pretty explicit from the name. Obviously, AVERAGE provides the average of a data range. ROUNDUP takes a number and rounds it up to the nearest integer.

That is a very basic explanation of how to select data in Google Sheets. Now onto the functions that I found helpful in my gradebook.

I want to take the average of the top 4 grades…

=ROUNDUP(AVERAGE(LARGE(A1:F1, 1), LARGE(A1:F1, 2), LARGE(A1:F1, 3), LARGE(A1:F1, 4)))

Looking at this formula from the inside out, first you see the LARGE(range, position) function. This takes the 1st, 2nd, 3rd, 4th values respectively from the range A1:F1. (Replace that range with whatever you want)

Then that is wrapped in the AVERAGE function, which is in turn wrapped in the ROUNDUP function. This will get an average, and roundup that average to the nearest integer. Make sense?

I want to count text fields as numerical values…

Sometimes I like to mark in my gradebook “Complete”, “Incomplete”, “Missing”, or “Absent”. When you use a function like AVERAGE or ROUNDUP then it completely ignores these text fields. But let’s say I want “Complete” to be equal to 100, “Incomplete” to be a 50, “Missing” to be a 0, and “Absent” to be ignored. For this we will need to create a custom function. Along the toolbar select ‘Tools’ > ‘Script editor’ and create a blank project.

Copy and past the code above into the blank ‘’, save your work, and return to your spreadsheet. You now have access to a =AVGCOMPLETES(range) function that will perform the required tasks.

Hopefully this has given you an idea or two about how to better manage student data in Google Sheets. Post a comment if you have any questions.

M101JS: MongoDB for Node.js Developers (Week 1: Introduction)

I am going to be documenting my progress through the MongoDB University course. It is just an introduction to MongoDB, but I am still so very new at working with Mongo that it can’t hurt to have the extra practice.  And at the end of the course I should have created a few more applications! Here goes…

Welcome to M101JS

  • Course grade is made up of 50% homework assignments, and 50% final project.

What is MongoDB?

  • Simple explanation about the document model and scalability benefits of using mongodb

Overview of Building an App with MongoDB

  • Clients make requests to the node server and the server uses a driver to make requests to the database. Still very simple..


  • JSON (javascript object notation) supports:
    • string, number, boolean, array, objects
  • standard key, value pairs
  • BSON is the binary translation of the JSON that mongo uses for storage

Intro to Creating and Reading Documents

  • I am noticing that the instructor uses ‘document’ and ‘object’ interchangably
  • using mongo does not return an object or an array of objects. Instead, it is a cursor object with a few methods of its own:
    • .next() allows you to cycle through the returned objects
    • .hasNext() returns a boolean depending on whether there are more documents in the cursor object

Hello World on Node.js

  • Just a demonstration of creating a simple server with nodejs

Intro to the Node.js Driver

  • require(‘mongodb’) and establishing a connection with the database
  • this section also discusses asynchronous callbacks

Hello World using Express

  • introduces the basic structure of an express server, which I am already familiar with through freeCodeCamp instruction.
  • For that matter, all of the mongo information thus far has already been covered in various assignments I have done through FCC.

Hello World using Templates

  • Discusses the concept of template libraries. ‘nunjucks’ is the engine used in this example.

Express: Handling GET Requests & Express: Handling POST Requests

  • How to extract GET and POST variables from a request
  • Using the body parser for post variables (req.body) and get parameters (req.params)


  • The homework for this first week was just 3 simple exercises. Each involved using ‘mongorestore’ and ‘npm install’ to find an answer key. Very simple

Challenge Problem: Create Movie Entries

  • Write a Node.js web application that presents users with a form containing three fields and a submit button. The fields should be:
    • title, year, imdb

Aaaaaaaaand, that is it for week 1! Great start. Having done a lot of this with FCC helped significantly, but there were still some new concepts. I had never used ‘mongorestore’ and it is very helpful to know how to import a new db.

ClassDojo Bookmarklet

I needed a way to streamline the process of submitting attendance records into the main office. So I came up with an easy way to do that using jQuery and a bookmarklet generator I found. This is my second iteration of that project to make it easier to share with my colleagues. Comment below with questions or other ideas for bookmarklets!

UBD Template Google Documents Add-on

Just a quick introduction to my first release of the UBD Template Addon for Google Documents. Please let me know how I can improve this for other users!

Here is a link to an example of the kind of spreadsheet you need for your objectives. Just copy the key in the URL and put it in the setup for my application.


Follow this link to the Chrome Store to install my add-on!

The Barriers to Technology in Education | Suren Ramasubbu

Interesting read from the HuffingtonPost about the state of technology in the K-12 classroom.

For technology within the classroom to be effective, there must be noticeable benefits resulting from it and concerted studies are required to quantify the effects of technology on education. When it can be conclusively proven that technology within schools aids in meeting their educational objectives, it would become easier to charter effective district technology plans, budgeting and education reforms. Such educational reforms that incorporate technology as an integral part of it will require meticulous planning and long-term vision for it to sustain its impacts on education.

via The Barriers to Technology in Education | Suren Ramasubbu.