Tag Archives: spreadsheets

Computational Thinking and Spreadsheets, Teacher Edition (#TeachersCoding)

I ran a workshop last week giving some teachers ideas on how to use computational thinking to improve their workflow. I've written in the past about how spreadsheets can serve as a way to get students thinking like programmers, without the intimidation of a text-based development environment. I don't find teachers any different in this regard.

I spent the beginning of this workshop sharing a bit about my views on why teachers should develop their computational thinking skills. I then set them off to work through answering the following questions about each task in the video below:

  • What is the spreadsheet being programmed to do?
  • What commands are being used?
  • How would I use this in my own practice?

I'm reasonably sure that a majority of teachers have a spreadsheet somewhere that contains student data like the one in the video. My hope is that teachers that watch the video and see what I've done with this spreadsheet will have one of a few possible responses:

  • Wow, I do that by hand right now. Now I know there's an easier way that will save me time.
  • That isn't useful to me, but it does give me an idea of how to do some other task that involves iteration, sorting, or another task best suited for a computer.
  • I do that already. Is that computational thinking?

If I elicit any of these responses, and then get someone to then build a tool that is useful to him or her, I think I've done my job. Learning to code for its own sake isn't necessarily worth a teacher's valuable time. Outsourcing tasks that computers do best to a computer can free a teacher to have more time for those tasks that require the expertise, experience, and a personal touch that only a person can provide. If learning a bit of computational thinking can do that, doing so might be worth the time.

Please comment on the video or below to let me know what you think.

Computational Thinking and Algebraic Expressions

I am still reviewing algebra concepts in my Math 9 course with students. The whole unit is all about algebraic operations, but my students have seen this material at least once, in some cases two years running.

Not long ago, I made the assertion that the most harmful part of introducing students to the world of real-world algebra looks like this:

Let x = the number of ________

Why is this so harmful?

For practiced mathematicians, math teachers, and students that have endured school math for long enough, there are a couple steps that actually happen internally before this step of defining variables. Establishing a context for the numbers and the operations that link them together are the most important part of producing a correct mathematical model for a given situation. A level of intuition and experience is necessary if one is going to successfully skip straight to this step, and most students don't have this intuition or experience.

We have to start with the concrete because most people (including our students) start their thinking in concrete terms. This is the reason I have raved previously about the CME Project and the effectiveness of using their guess-check-generalize concept in introducing word problems to students. It forms an effective bridge between the numbers that students understand and the abstract concept of a variable. It encourages experimentation and analysis of whether a given answer matches the constraints of a problem.

This method, however, screams for computers to take care of the arithmetic so that students can focus on manipulating the variables involved. Almost all of the Common Core Standards for Mathematical Practice point toward this being an important focus for our work with students. I haven't had a great point in my curriculum since I really started getting into computational thinking to try out my ideas from the beginning, but today gave me a chance to do just that.

Here's how I introduced students to what I wanted them to do:

I then had them open up this spreadsheet and actually complete the missing elements of the spreadsheet on their own. Some students had learned to do similar tasks in a technology class, but some had not.
02 - SPR - Translating Algebraic Expressions

Screen Shot 2013-09-06 at 3.59.38 PM

The students that needed to have conversations about tricky concepts like three less than a number had them with me and with other students when they came up. Students that didn't quickly moved through the first set. I'd go and throw some different numbers for 'a number' and see that they were all changing as expected. Then we moved to a more abstract task:

It's great to see that you know how to use different operations on the number in that cell. Now let's generalize. Pick a variable you like - x, or N, or W - it doesn't matter. What would each of these cells become then? Write those results together with the words in your notebook and show me when you're done.

The ease with which students moved to this next task was much greater than it has ever been for me in past lessons. We also had some really great conversations about x*2 compared with 2x, and the fact that both are correct from an arithmetic standpoint, but one is more 'traditional' than the other.

Once students got to this point, I pushed them toward a slightly higher level task that still began concrete. This is the second sheet from the spreadsheet above:
Screen Shot 2013-09-06 at 4.06.07 PM

Here we had multiple variables going at once, but this was not a stretch for most students. The key that I needed to emphasize here for some students was that the red text was all calculated. I wanted to put information in the black boxes with black text only, and have the spreadsheet calculate the red values. This required students to identify what the relationship between the variables needed to be to obtain the answer they knew in their head had to be true. This is CCSS MP2, almost verbatim.

This is all solidifying into a coherent framework of using spreadsheet and programming tools to reinforce algebra instruction from the start. There's still plenty to figure out, but this is a start. I'll share what I come up with along the way.

A computational approach to modeling projectile motion, part 3.

I've been really excited about how this progression is going with my physics class - today the information really started to click, and I think they are seeing the power of letting the computer do the work.

Here's what we did last time:

In a fit of rage, Mr. Weinberg throws a Physics textbook while standing in the sand box outside the classroom. By coincidence, the book enters the classroom window exactly when it reaches its maximum height and starts to fall back down.


  • Is it appropriate to neglect air resistance in analyzing this situation? Justify your answer.
  • We want to use this problem to estimate the height of the classroom window above the ground. Identify any measurements you would take in order to solve this problem. (No, you may not measure the height of the classroom window above the ground.)
  • Use your spreadsheet to find the height of the window as accurately as you can.

Note: This activity got the students using the spreadsheet they put together last time to figure out the maximum height of the object. They immediately recognized that they needed some combination of dimensions, an angle, and a launch speed of the book.


These tables of values are easy to read, but we want to come up with a more efficient way to get the information we need to solve a problem.

The table below represents a particular projectile. Identify as much about its movement as you can. How high does it go? How far does it go? When does it get there? That's the kind of thing we're interested in here.

Screen Shot 2013-03-04 at 5.02.17 PM

Note that at this point the students are spending time staring at tables of equations. This is clearly not an efficient way to solve a problem, but it's one that they understand, even the weakest students. They can estimate the maximum height by looking at the table of y-values, but the tedium of doing so is annoying, and this is what I want. I try to model this table of values with the spreadsheet they put together with them telling me what to do. Every time I change a value for initial speed or initial height, the location of the maximum changes. It's never in the same place.

Eventually, someone notices the key to finding the maximum isn't with the y-position function. It's with the vertical velocity. When does the y-component equal zero?

This is where the true power of doing this on the spreadsheet comes alive. We look at the table of values, but quickly see that we don't need a whole table. We go from this:
Screen Shot 2013-03-04 at 5.18.48 PM

...to this:
Screen Shot 2013-03-04 at 5.20.52 PM

Clearly this t-value is wrong. Students can adjust the value of the time in that cell until the velocity in the cell below is zero. A weak student will get how to do this - they are involved in the process. The tedium of doing this will prompt the question - is there a better way? Is this when we finally switch to an algebraic approach? No, not yet. This is where we introduce the Goal Seek tool.

Screen Shot 2013-03-04 at 5.23.12 PM

The spreadsheet will do the adjustment process for us and find the answer we are looking for. With this answer in hand, we can then move on to posing other questions, and using goal seek to find the values we are looking for.

The process of answering a projectile motion question (how far does it go? how high does it go?) through a spreadsheet then becomes a process of posing the right questions:
Screen Shot 2013-03-04 at 5.26.42 PM

This is the type of reasoning we want the students to understand within the projectile motion model. Whether your tool of choice for answering these questions is the graph, equations, or a table of values, posing these questions is the meat and potatoes of this entire unit in my opinion.

The next step is to then introduce algebraic manipulation as an even more general way to answer these questions, including in cases where we don't have numbers, but are seeking general expressions.


Today I had a student answer the following questions using the goal seek method with the numerical models I've described above:

A ball is thrown horizontally from a window at 5 m/s. It lands on the ground 2.5 seconds later. How far does the ball travel before hitting the ground? How high is the window?

He solved it before anyone else. This is a student that has struggled to do any sort of algebraic manipulation all year. There's something to this, folks. This is the opening to the fourth class of this unit, and we are now solving the same level questions as the non-AP students did a year ago with an algebraic approach and roughly the same amount of instruction time. Some things to keep in mind:

  • My students are consistently using units in all of their answers. It is always like pulling teeth trying to get them to include units - not so much at the moment.
  • They are spending their time figuring out the right questions to ask, not which equation to 'plug' into to get an answer.
  • They immediately see what information is missing in their model at the beginning of a problem. They read the questions carefully to see what they need.
  • The table of values gives them an estimate they can use for the problem. They have an idea of what the number should be from the table, and then goal seek improves the accuracy of the number.
  • At the end of the problem, students have all of the initial information filled out to describe all of the parts of the problem. They can check that the horizontal range, maximum height, and other waypoints of the path match the given constraints of the problem. This step of checking the answer is a built-in feature to the process of matching a model - not an extra step that I have to demand at the end. If it doesn't match all of the given constraints, it is obvious.

I am looking for push back - is there anything I am missing in this approach? I get that deriving formulas is not going to come easily this way, but I think with a computer algebra system, it's not far away.