Monthly Archives: March 2013

Coding IS a super(edu)power

I've been really impressed by the Dan Meyer/Dave Major collaboration. If you don't know what I'm talking about, you need to click on that link immediately. Seeing both Dan and Dave post on their respective blogs about the thought and rationale that goes into these activities is like a masters class in pedagogy, digital media, and user design.

The common thread that I really like about these tools is the clean and minimalist way they pose an idea, encourage a bit of play and intuition, and then get out of the way. Dan has talked about these ideas philosophically for a while, and seeing Dave make these happen is really exciting. They talk about this being the future of textbooks, but I am willing to wager that textbooks will get fidgety at displaying a task to a user atop a blank white screen. The trend has been so far in the other direction that I am skeptical, but I am hopeful that they will start to listen. These exercises are like a visit to the Museum of Modern Art. Textbooks and online learning otherwise tends to look either like a visit to Chuck-E-Cheese or the town library, over-thinking or under-thinking the power of aesthetics to creating a learning environment that is stimulating enough, but not distracting.

Being a committed Twitter follower, I of course interrupted their workflow with suggestions. I was looking for an easy way to collect student responses to a question along the lines of Activeprompt, but for tasks that are not about finding a location. I had posed a question to my Geometry class and was really excited about greasing the rails for gathering student responses and putting them in one place. This is the same idea as what Dan/Dave had done, but with a bit less of a framework pushing it in a direction.

Dave's suggestion was, well, intimidating:

Screen Shot 2013-03-21 at 4.48.19 PM

I had been playing around with web2py, Django, Laravel, and other template frameworks that said they would make things easy for me, but it just didn't click how they would do this. I have done lots of small Python projects, but the prospect of making a website seemed downright unlikely. I spent three hours putting together this gem using the CSS I had learned from CodeAcademy:
Screen Shot 2013-03-21 at 4.56.54 PM

I was not proud of this, but it was the best I thought I could do.

Through the power of Twitter, I was able to actually have a conversation with Dave and learn how he put his own work together. He uses frameworks such as Raphael.js and Sinatra in a way that does just enough to achieve the design goal. I learned that he wasn't doing everything from scratch. He took what he needed from what he knew about these different tools and constructing precisely what he envisioned for his application. I prefer Python to Ruby because, well, I don't know Ruby. I found Bottle which works beautifully as a small and simple set of tools for building a web application in Python, just as Dave had done with his tools.

Using Bottle and continuing to learn how it works, I made this yesterday.
BFwz3k5CQAEE2ts.png-large

I shared it with Dave, and he revealed another of his design secrets: Bootstrap. Again, dumbstruck by the fact this sort of tool exists, but also that I hadn't considered that it might. This led me to clean up my previous submission and reconsider what might be possible. With a bit more tinkering, I turned this into what I had envisioned: a flexible tool for collecting and sharing student responses to a question
Screen Shot 2013-03-21 at 5.12.14 PM

I was just tickled pink. Dave had shown me his prototype for what he made in response to my prompt - I was blown away by it, as with the rest of his work. Today, however, I proudly used my web app with two of my classes and was happy to see that it worked as designed.

The point behind writing about this is not to brag about my abilities - I don't believe there is anything to brag about here. Learning to code has gotten a good mix of press lately on both the positive and negative side. It is not necessarily something to be learned on its own, for its own sake.

I do want to emphasize the following:

  • My comfort with coding is developed enough at this point that I could take my idea for how to do something in the classroom using programming and piece it together so that it could work. I got to this point by messing around and leaving failed projects and broken code behind. This is how I learn, and it has not been a straight line journey.
  • If I was not in the classroom on a regular basis, I doubt I would have these ideas for what I could do with coding if I had the time to focus on it completely. In other words, if I ditched the classroom to code full time (which I am not planning to do) I would run out of things to code.
  • Twitter and the internet have been essential to my figuring out how to do this. Chatting virtually with Dave, as an example, was how I learned there was a better way than the approach I was taking. There are no other people in my real world circles who would have introduced me to the tools that I've learned about from Dave and other people in the twitterverse. Face to face contact is important, but it's even better getting virtual face time with people that have the expertise and experience to do the things I want to learn to do.
  • I have been writing code and learning to code from the perspective of trying to do a specific and well defined task. This is probably the most effective and authentic learning situation around. We should be looking for ways to get students to experience this same process, but not by pushing coding for its own sake. As with any technology, the use needs to be defined and demanded by the task.
  • The really big innovations in ed-tech will come from within because that's where the problems are experienced by real people every day. Outsiders might visit and see a way to help based on a quick scan of what they perceive as a need. I'm not saying outsiders won't or can't generate good ideas or resources. I just think that tools need to be designed with the users in mind. The best way to do this is to give teachers the time, resources, and the support to build those tools themselves if they want to learn how.

You can check out my code at Github here. Let me know if you want to give it a shot or if you have suggestions. This experiment is far from over.

Building a need for algebraic reasoning - how can computers help?

I hear this all the time, and it drives me up a wall.

I haven't solved for x in years, and I'm doing just fine.

Few people realize that while they aren't using algebraic properties in their daily lives, they use the analog concept of finding missing values all the time. You won't win this argument with most people though. It just doesn't seem like algebra.

As math teachers, we also get annoyed when students are able to do this with nothing in between:

Screen Shot 2013-03-12 at 4.49.40 PM

Certainly in a Calculus class, this should not surprise us - at that level we would expect an ability to eyeball the solution. At the other end of the post elementary math progression, however, when we are teaching two step equations for the first time, our response might be this: "Yes, you got that one, but I could give you one that has negative numbers or (GASP!) decimals or fractions in it. Then what would you do? This is why it's important that you pay attention to this lesson. You have to do it this other way in order to get credit."

I've had this conversation, and it has always made me feel ridiculous. It's an arbitrary and crappy argument. It might be a valid one if standardized (or your own) tests of algebraic concepts are involved, but using tests as a motivation for doing anything makes the whole enterprise feel cheap, even when doing so needs to happen.

The bigger issue is that it perpetuates the reputation of math teachers and mathematicians as protectors of a sacred bag of secrets that nobody outside of a math classroom will need. It also presents a problem of artificiality. If I can suddenly make something harder by adding fractions or decimals, does doing so make it any easier for me to assess whether my students know what they are doing in solving an equation? I think we haven't done a great job of building in the need for algebra, especially in light of what computers can do. I've never had a student sarcastic and comfortable enough with me to do this, but bear with me. The theoretical argument in the back of my mind to what I said in response to the student I described earlier is this:

Really teach? With that college degree of yours, you could make up a question that I can't use my knowledge of arithmetic to solve? Impressive. I guess that even though I did everything my previous teachers told me to do - memorize multiplication tables, learn to add fractions with like/unlike denominators, draw lots of pie charts demonstrating equivalent fractions, AND draw lots of connect-the-dot dinosaurs as reviews of plotting in the coordinate plane, I still need you. Glad to be here. Oh, your tie is crooked. At least I can still help you out with that.

Furthermore, I wonder about the challenge of motivating algebra given that Wolfram Alpha, CAS, and even the lowly TI-83 solver can solve equations without breaking a sweat.

I'm not teaching introductory algebra right now, but the thinking I've done on how computers put the thinking back into process has me wondering how motivating the need for Algebra could be different, and better given how easy it is to compute these days. The most basic way that people interact with numbers is through tables and graphs - is it possible to motivate algebra through this familiar idea? Can we use the computer to compute a bunch of stuff, and see what it tells us?

Some food for thought:
Screen Shot 2013-03-12 at 4.43.47 PM
This is precisely the sort of thing we are looking for when we are solving an equation, but it's rare that we think about it this way. It's also something that most people outside of a classroom will do with a table of values in a newspaper or a website, for example. It is typically for more practical reasons (predicting value of a stock, figuring out when a bus will arrive at our location from a schedule that doesn't have every stop, etc) than simply finding 'x' as we ask students to do in the classroom. Is this algebra? Staring at a table of values is tedious, but I know people that would rather do this than solve an equation or do anything that smells like school math.

Screen Shot 2013-03-12 at 5.15.37 PM

Again, in our adult lives, we make estimations from given information from a table or graph from time to time, but few adults actually call this algebra. Is it obvious to an adult that changing the interval in the right way would allow the exact answer to be found? Is it obvious to a student? It's a subtle point here, but I think it's the sort of reasoning we want our students to be capable of doing. Is that type of understanding something inherently important in algebraic reasoning? How's that going for us now?

Screen Shot 2013-03-12 at 5.18.23 PM

We know there are algorithmic ways to solve this one, but I've already said here and in previous posts that I want to get away from mathematical thinking as a bag of algorithms. How good of an answer to this can we get from a table? I don't know about you, but I have yet to feel like I've taught well the idea of an irrational number in a good, intuitive way that doesn't result in students memorizing tricks. I think this hints at this concept in ways that is inaccessible without using computers. Even on a calculator, it's difficult to focus in on solutions as smoothly as I think can be done with a table of rapidly computed values.

I'm not suggesting that we shouldn't teach properties of numbers and inverse operations in the context of solving equations algebraically. I think we need to do a better job of selling the idea of algebra as being an enhancement of what we already have built in to our brains. We estimate what time we need to cross the street to not get hit by a truck but also to minimize our time waiting. We know that if the high is 68 degrees at 3 PM, that it will probably be a nice temperature outside at one-o-clock. This way of feeling our way to a solution through intuition, however, is not the optimal way to solve problems, especially when our intuition is wrong. There needs to be a better way.

Our students (and many adults) often don't know how to create tools to help them solve the problems they face. They choose to do things that are tedious because they don't know a better way, and the math skills they have developed previously are disconnected and seem irrelevant as a result. We do understand the idea of computation, but we often aren't good at doing it ourselves. If nothing else, it's pushing people to become more confident that they know what they are looking at when we see a bunch of numbers together.

Computational modeling & projectile motion, EPISODE IV

I've always wondered how I might assess student understanding of projectile motion separately from the algebra. I've tried in the past to do this, but since my presentation always started with algebra, it was really hard to separate the two. In my last three posts about this, I've detailed my computational approach this time. A review:

    • We used Tracker to manually follow a ball tossed in the air. It generated graphs of position vs. time for both x and y components of position. We recognized these models as constant velocity (horizontal) and constant acceleration particle models (vertical).
    • We matched graphical models to a given projectile motion problem and visually identified solutions. We saw the limitations of this method - a major one being the difficulty finding the final answer accurately from a graph. This included a standards quiz on adapting a Geogebra model to solve a traditional projectile motion problem.
    • We looked at how to create a table of values using the algebraic models. We identified key points in the motion of the projectile (maximum height, range of the projectile) directly from the tables or graphs of position and velocity versus time. This was followed with the following assessment
    • We looked at using goal seek in the spreadsheet to find these values more accurately than was possible from reading the tables.

After this, I gave a quiz to assess their abilities - the same set of questions, but asked first using a table...
Screen Shot 2013-03-08 at 6.55.40 PM
... and then using a graph:
Screen Shot 2013-03-08 at 6.57.23 PM

The following data describes a can of soup thrown from a window of a building.

  • How long is the can in the air?
  • What is the maximum height of the can?
  • How high above the ground is the window?
  • Is the can thrown horizontally? Explain your answer.
  • How far from the base of the building does the can hit the ground?
  • What is the speed of the can just before it hits the ground?</li

I was really happy with the results class wide. They really understood what they were looking at and answered the questions correctly. They have also been pretty good at using goal seek to find these values fairly easily.

I did a lesson that last day on solving the problems algebraically. It felt really strange going through the process - students already knew how to set up a problem solution in the spreadsheet, and there really wasn't much that we gained from obtaining an algebraic solution by hand, at least in my presentation. Admittedly, I could have swung too far in the opposite direction selling the computational methods and not enough driving the need for algebra.

The real need for algebra, however, comes from exploring general cases and identifying the existence of solutions to a problem. I realized that these really deep questions are not typical of high school physics treatments of projectile motion. This is part of the reason physics gets the reputation of a subject full of 'plug and chug' problems and equations that need to be memorized - there aren't enough problems that demand students match their understanding of how the equations describe real objects that move around to actual objects that are moving around.

I'm not giving a unit assessment this time - the students are demonstrating their proficiency at the standards for this unit by answering the questions in this handout:
Projectile Motion - Assessment Questions

These are problems that are not pulled directly out of the textbook - they all require the students to figure out what information they need for building and adapting their computer models to solve them. Today they got to work going outside, making measurements, and helping each other start the modeling process. This is the sort of problem solving I've always wanted students to see as a natural application of learning, but it has never happened so easily as it did today. I will have to see how it turns out, of course, when they submit their responses, but I am really looking forward to getting a chance to do so.

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.

Playing with robots - a weekend well spent

20130302-223610.jpg

This weekend marked the culmination of a few months of work from my robotics students. We traveled to Shanghai to compete in the FIRST Tech Challenge tournament with 47 other teams. I got involved in FIRST nine years ago when teachers at my school in the Bronx tracked me down after hearing of my engineering background. They had just won the Rookie of the Year award the season before, and were excited to have an engineer around to help. Given that it was my first year teaching, I wasn't able to be nearly as involved as I wanted to be. It was enough of a hook to get me to see how powerful programs like FIRST really are for working on the 'demand' side of the educational system, the problem-solving-hands-on-building stuff that makes students see what the end game of education can be. Playing with robots on a competition field is no more 'real world' than estimating the number of pennies in a pyramid, but the learning opportunities in both are rich and demanding. Nine years later, I am still as convinced as ever that these are the types of activities our students need to understand the context of the skills we teach them in our classrooms.

This weekend, we met stiff competition from our Chinese competitors. They built cascaded elevator systems, scissor lifts, and sensor systems that helped to play this year's game, a tic-tac-toe variant played using colored rings on a set of horizontal pegs. More impressive for me was seeing the mentors noticeably bored and checking their phones while the students were the ones focused on tweaking their robots and fixing programming snafus.

20130302-223653.jpg

This, however, was not our main challenge. The biggest issues that we faced were of our own creation - how to achieve consistency in our lifting mechanism using a web of zip-ties, or discovering just how unstable our own lifting mechanism was. The students were constantly sawing different parts of the robots off to make room for the solution to the last problem they created while trying to solve another. Clearing the complex residue of multiple good ideas to leave a simple, capable solution is the ultimate goal of a good design. The overall process of doing this is difficult, even with experience. They are early enough on the curve to know that there is much that they do not know though, and their positive and cheerful manner throughout was inspiring. Even after multiple technical issues and defeats on the field, they left the competition today feeling accomplished and full of ideas.

I was most inspired by my students' reactions to seeing the clever designs of their Chinese counterparts. I have witnessed students wandering the pits at FIRST events and greeting unique and capable designs with accusation as the immediate reaction. "They could do that because they have so much more money" or "the mentors did all the work - it isn't fair because we do everything on our team." I understand the sentiment, but have always passed it off as being overly pessimistic. Some skilled teams make it look easy without always making obvious the associated level of effort required to execute such designs.

20130302-223712.jpg

What made me particularly proud of my students this weekend was seeing them look at other designs and go through two stages of processing them. First, they would remark how cool it was that the team was able to solve the problem in such a unique way. Second, with some thinking about just how, they would say something along the lines of we could have done that.

While our ranking was closer to the bottom than I (or they) will reluctantly reveal, I don't care much at this point. The team is young and will hopefully have more opportunities to learn and build together over the next couple of years. Their satisfaction was evident in watching the final matches with a clear sense of accomplishment, even while not being part of them. Their sense of togetherness is stronger than ever.

Our bus lost its headlights on the way back, forcing us to spend an hour and a half at a repair place while the driver and nine other people figured it out while the usual pattern of loud Mandarin was punctuated with hacking and drags off cigarettes. The team, meanwhile, procured a healthy supply of snacks and seemed content to sing along to music played off their school laptops. This is a close group that has only grown closer. Easily the highlight of the whole weekend right there.