Mislabeling inquiry – a brief rant

I’m a big believer in the power of inquiry based learning. This is both of my roles teaching math and physics. As often as possible, I have my students make observations, ask questions, make a hypothesis or mental model to describe what is being observed, and then test that model against new situations to see how well the model describes them. It goes along with why kids like science in the early years – you get to play with stuff, cool stuff, and try to figure out how it works.

I was looking at an online resource for teaching science that says it uses a step by step inquiry approach, and was naturally excited to see what was involved. This is the outline of what it includes for its lesson on heat transfer.

  1. It shows an interesting set of rock formations and explain how they were formed through the transfer of energy.
  2. It asks what happens when a glass of ice water is submerged in a tub of warmer water. Students can submit their open ended responses using a text box for (presumably) the teacher to read.
  3. It shows four clear explanations for what is going on, and asks students to choose one. The teacher can see which ones students pick overall.
  4. Students can explain their reasoning for picking an explanation, or perhaps explain why the others are not correct. It isn’t clear whether these explanations go back to the teacher or not.
  5. Students then are given a set of some specific resources, mostly text, but including one video and an image to ‘collect data’ on their hypothesis.
  6. Students then take a quiz to assess their understanding based on reading the short explanations in the previous step.
  7. Students talk about what their hypotheses were, and how the information they found either supported or refuted each of the four statements.
  8. Students describe their new understanding of heat to a text box. Sadly, it does not talk back.
  9. In case it wasn’t clear, the web page then tells the students what conclusion they should have made in the preceding activity. This is accessed through a convenient button that says ‘Display Conclusion’.
  10. Students are asked one more multiple choice question, and are then told they can explore other things. It makes suggestions, and then gives the slightly hopeful statement that they can also choose something they want to explore.
  11. I apologize for getting slightly sarcastic at the end, but this really got under my skin. I have a real problem with educational solutions that help students learn science by looking at a screen with right answers on it. It perpetuates the idea that that is what science is: right answers, a whole slew of them, and you have to collect them all, or you are bad at science.

    I get that this is better than students sitting and listening to teachers telling them all the answers. I see that the students are made to be slightly more active and have to find the answers in the reference materials on the website. Of course, that is notably better than chalk and talk.

    I just found myself shuddering the whole time because at no point in the online lesson is the suggestion made to actually perform an experiment.

    The real power of inquiry is not just getting students to go out and find the answers themselves and then take a multiple choice exam to see what they learned. It is about getting to struggle with open-ended questions. Deciding what to measure, or minimally, making A measurement. I get that the goal of this is to create something that can scale to a classroom of thirty students and give them something better than lecture. I just have a problem with justifying it by saying it’s better than the alternative.

Rethinking my linear function approach in Algebra 2

My treatment of linear functions in the past has been pretty traditional. Solve for y, y = mx + b, graphing using slope intercept, then move on to linear inequalities in two variables…it is just dull this way. Most students have seen it before in one form or another, and it wasn’t exciting (or that novel) to them the first time they learned it. It doesn’t have to be this way, and I committed myself this year to doing things differently.

My approach has been centered on two big ideas:

  1. Linear functions have a constant rate of change. All of the other qualities they have are related to this important fact.
  2. There is an amazing connection between graphs, tables of values, and the equations that generate linear functions. These are not three separate skills, they are three views of the same fundamental mathematical object. Corollary: Teaching them on three separate days or sticking to one view at a time creates an unnecessary pigeon-holing effect that sticks with students for as long as conditions in your class permit.

On day one, we did my Robot Tracking activity posted here at GeogebraTube. The video introduction was reviewed in class and students worked on it for much of the period. This emphasized a fundamental concept around linear functions of distance and time that was pretty intuitive to nearly all of the students that did this activity.

Predicting where something is located, assuming it continues moving at a constant rate is one of the most common applications of linearity. We do it all the time. Can we cross the street in front of the bus? Mental calculation. Where should I kick the soccer ball to get it right in front of the forward moving toward the goal? Mental calculation. I don’t mean actually sitting down and calculating where it will be, but that the human brain is pretty good at noticing the velocity of objects, and making a pretty good guess of where it will be. They had a number of methods of coming to an answer that ranged from geometric (simply drawing a line) to counting grid squares, using the trace function, and proportional reasoning.

We ended the period looking at the Python script I posted here and trying to calculate speed from the information generated by the program. Part of the homework assignment for the next class was to try to answer the question posed by another Python program posted here. The table of values is randomly determined each time, and students could (and often did) try it multiple times to get it right.

The next lesson had a single instance of this program as a warm up for the whole class – everyone had to agree on what value of position I needed to enter for the given time value.. They were pretty good at checking each other and having good conversations about how to go about it. They answered correctly, but we had a good conversation about the different ways to get there. They all centered on using the fact that there was equal spacing between all of the points. Most students used some variation of finding the distance moved per second and whether it was positive or negative, and then counted off intervals. In most cases, it was a bit complicated and required a lot of accounting to get to their answer.

We went over the reason we could do this – the constant rate of change – and verified it using a few different pairs of points. I then threw in the idea of using the point (x,y) and using the constant rate of change with that point. We got to $latex frac{y – b}{x – a}=m $ and I asked them to write this using the slope we calculated and any point they liked from the table of data. Students seated next to each other I encouraged to use different points. I then asked them to answer the original question from the Python program using their equation. (Un)surprisingly enough, they all ended up with the correct (and same) answer as before.

Some of them started distributing and writing in slope intercept form. THe thing I was kind of excited about was that they didn’t feel the equation had to be written that way, they just felt like seeing what happened. Many discovered the fact that their answers were the same after doing so, even though they started with different points. We did a couple examples of solving more basic ‘Write an equation for a line that…” questions, but did so without making a huge deal out of slope-intercept form or point-slope form and why one might be better than the other in different situations.

Today was the third day going through this concept – the warm up activity had three levels to it:

The goal here was to constantly push the students to go back and forth between the equation and numerical representations of these functions. There were lots of good things students figured out from these. We then made the jump to looking at how the graph is connected to the table and equation – just one more way of looking at the same mathematical function, and it shares the meaning that comes with the other two representations: a constant rate of change. The new idea introduced as part of this was that of an intercept. What does it mean on the graph? What does it mean for the table? We didn’t talk explicitly about the intercept’s meaning of the equation (again, trying to avoid the “that’s just y = mx + b, I know this already…TUNED OUT”) , but it came out in the process of identifying it algebraically, from tables, and then graphing.

By the end of the period, we were graphing linear functions. Students were asking excellent questions about when the intercepts alone can be used to graph the line, when they can’t ($latex 2x+3y=6$ versus $latex 2x+3y=7$) but they again stuck to the idea of finding a point they know is on the graph, and then using the constant rate of change to find others. Instead of spending a boring lesson explicitly telling them what my expectations are for graphing lines (labeled and scaled axes, line going all the way across the extent of the axes, arrows on axes and lines) I was able to gently nudge students to do this while they worked.

We’ll see how things go as we continue to move forward. The big thing I like about this progression so far is that modeling real phenomena will be a natural extension of what we’ve already done – not a lesson at the end of contrived examples with clean numbers. My goal originally was to get this group comfortable with messy data and being comfortable with using different tools to make sense of it.

I’ve kept my students hermetically sealed from this messiness in the past – integer coefficients, integer values, and explicit step-by-step ways of graphing, generating tables, and writing equations. As I mentioned before, it was, well, boring and predictable, and perpetuated the idea that these skills are all separated from each other. It also continued the pattern that there would be a day in each unit where the numbers are messy, the real world word problems day, but that the pain associated with it would last a day and would be over soon enough.

I’m hoping to reduce this effect by changing my approach. That by seeing the different aspects of linear functions, it will seem natural to use a graph to figure out something that might not make sense algebraically, or use numerical values to solve an algebraic problem. I especially like this because exploring the three views of functions really is, in my opinion, the primary learning goal of the Algebra 2 course. If I can establish this as an expectation early on, I think the latter parts of the course will work much more smoothly.

Using Geogebra to develop Newton’s 2nd Law

I have been following as closely as possible the Modeling Physics approach with my regular physics students this year. My schedule during the summer has kept me from attending a workshop, so much of what I am doing is just an approximation of the real thing, as close to what I understand from the notes on the Modeling instruction website as I can get. We just finished the constant velocity unit last week, and were ready to look at some dynamics of objects. I am starting by looking just at the balanced force particle model before going to the constant acceleration model.

I started the particle force model unit by giving students a chance to play with a cart on an air track with some fans either turned on, or turned off. I had them make observations of what they saw. When they made assertions of constant velocity, I asked them to measure and verify their assertions. They asked to use the ultrasonic detector – I was more than willing to oblige their request. They collected some data, made some graphs, and talked about constant velocity, but they had trouble getting the detector to detect the cart without getting noise in their data. They were pretty sure that they could look past the noise in the ultrasonic detector data and create a constant velocity model. We also thought about taking a video and using Tracker, but given the odd interactions I’ve seen with Tracker and Mac OSX Lion, I opted not to endorse that without looking more into the problems that arose (Xuggle just not installing in one case, two computers becoming unbootable in another, and my own laptop suddenly getting its setting wiped and wireless obliterated until a rest of the system configuration. I digress – a discussion for another day.)

We then talked about drawing system schema and the ideas of forces as interactions between objects before heading off for the day. I knew we needed something to play with to help develop the connection between net force and constant velocity for the next class. My old standby, Geogebra, was there to help.

I created the Geogebra applet above at http://geogebratube.org/material/show/id/17438 and had my students go through the steps of making the object appear to travel at constant velocity by adjusting the magnitudes of the forces.

The steps:
• Adjust the sizes of the forces so that the object appears to move at constant velocity.
• Turn on the position versus time graph using the check box to confirm that it is actually traveling at
constant velocity. What should you be looking for?
• Create three different situations of constant velocity by changing the magnitudes of forces AND the initial velocity. Write down the settings you used for F1, F2, m, and v0 so we can compile them in one place when you are done.

Turning on the position vs. time graph, the students could then check and see if it was constant velocity using their knowledge from the last unit. I was really pleased that getting students to see the graph and figure out how to make adjustments took no prompting. The time we spent on constant velocity paid off, as they did a great job of then matching the graph to their observations and adjusting the forces as needed.

Before long, they had started talking themselves about how the object travels at constant velocity when the forces are equal. They asked if they could just take screenshots of the situations of constant velocity rather than just writing down their values for force, mass, and initial velocity. This made it easy to go one by one through their configurations and see what they had in common. We developed together the definition of net force, and then they adapted it to what they had figured out to come up with the static version of Newton’s 2nd.

I was especially impressed when I had them work individually to answer the following questions – their explanations came more naturally than ever before as non-chalant statements of fact, and without the “yeah, but…” moments that have shown up every other time I introduce the idea of net force.

The questions:

I am a big believer in having real objects in front of the students to manipulate and observe. I also like when the equipment works well enough to make it easy to make the measurements and observations students want/need to take. I thought this was a nice compromise between having an ideal, noise free (virtual) environment and giving enough flexibility for the students to play around themselves with the different parameters for the problem.

Why SBG is blowing my mind right now.

I am buzzing right now about my decision to move to Standards Based Grading for this year. The first unit of Calculus was spent doing a quick review of linear functions and characteristics of other functions, and then explored the ideas of limits, instantaneous rate of change, and the area under curves – some of the big ideas in Calculus. One of my standards reads “I can find the limit of a function in indeterminate form at a point using graphical or numerical methods.”

A student had been marked proficient on BlueHarvest on four out of the five, but the limit one held her back. After some conversations in class and a couple assessments on the idea, she still hadn’t really shown that she understood the process of figuring out a limit this way. She had shown that she understood that the function was undefined on the quiz, but wasn’t sure how to go about finding the value.

We have since moved on in class to evaluating limits algebraically using limit rules, and something must have clicked. This is what she sent me this morning:
[wpvideo 5FSp5JDn]

Getting things like this that have a clear explanation of ideas (on top of production value) is amazing – it’s the students choosing a way to demonstrate that they understand something! I love it – I have given students opportunities to show me that they understand things in the past through quiz retakes and one-on-one interviews about concepts, but it never quite took off until this year when their grade is actually assessed through standards, not Quiz 1, Exam 1.

I also asked a student about their proficiency on this standard:

I can determine the perimeter and area of complex figures made up of rectangles/ triangles/ circles/ and sections of circles.

I received this:
…followed by an explanation of how to find the area of the figure. Where did she get this problem? She made it up.

I am in the process right now of grading unit exams that students took earlier in the week, and found that the philosophy of these exams under SBG has changed substantially. I no longer have to worry about putting on a problem that is difficult and penalizing students for not making progress on it – as long as the problem assesses the standards in some way, any other work or insight I get into their understanding in what they try is a bonus. I don’t have to worry about partial credit – I can give students feedback in words and comments, not points.

One last anecdote – a student had pretty much shown me she was proficient on all of the Algebra 2 standards, and we had a pretty extensive conversation through BlueHarvest discussing the details and her demonstrating her algebraic skills. I was waiting until the exam to mark her proficient since I wanted to see how student performance on the exam was different from performance beforehand. I called time on the exam, and she started tearing up.

I told her this exam wasn’t worth the tears – she wanted to do well, and was worried that she hadn’t shown what she was capable of doing. I told her this was just another opportunity to show me that she was proficient – a longer opportunity than others – but another one nonetheless. If she messed up a concept on the test from stress, she could demonstrate it again later. She calmed down and left with a smile on her face.

Oh, and I should add that her test is looking fantastic.

I still have students that are struggling. I still have students that haven’t gone above and beyond to demonstrate proficiency, and that I have to bug in order to figure out what they know. The fact that SBG has allowed some students to really shine and use their talents, relaxed others in the face of assessment anxiety, and has kept other things constant, convinces me that this is a really good thing, well worth the investment of time. I know I’m just preaching to the SBG crowd as I say this, but it feels good to see the payback coming so quickly after the beginning of the year.

A sample of my direct instruction videos.

As I have previously mentioned, I am really excited to be creating Udacity style videos as resources for students in my classes. With my VideoPress upgrade in effect, I have included some of the two minute videos I put together for Calculus class tomorrow introducing limits. We have already spent some time exploring the concept of limits by graphing and evaluating numerically, but these videos are the start of a more formal treatment of evaluating limits algebraically.

I am very interested in feedback, so let me know what you think in the comments.
[wpvideo js1b5cQu]
[wpvideo dmB35pg5]

Progress on Python-Powered randomized quiz generator

One of the projects floating around in my head since the end of last year is creating an easy to use tool that will automatically generate questions for students to test their skills either on their own or while in class. My first attempt at this was during a unit in Geometry on translations, my first attempt at implementing standards based grading. I was taking a Udacity course on web applications and realized that if I could write a quiz generator online, it would be the easiest way to give students a sense of how they were doing without needing me to be part of the process.

As most people doing reassessments tend to be, I was a bit overwhelmed with the paperwork side of things, especially because many of the students just wanted to know if they were right or not. I had made some Python programs to generate quiz questions one by one and decided to try to adapt it to the web application so students could input their answers to questions that had different numbers every time. I had tried to use other options such as PollEverywhere, Socrative to at least collect the data and check it as right/wrong (which would have been good enough for a start in terms of collecting data, but left out the randomization part). The problem with these is that I believe they are hosted in the US and are incredibly slow without a VPN. I needed a solution that was fast, and if I could add the randomization, that would be even better. I decided to try to adapt my quiz generator to a Google App Engine hosted web application.

Needless to say (at least for me) this was not an easy task. I had a loose understanding of how to manage GET and POST requests and use cookies to store random values used. The biggest challenge came from checking answers on the server side. For someone figuring out Python concept as he goes, it involved a lot of fists on the keyboard at the time. My attempt is posted here. There were tons of bugs (and still are) but I at least got up the nerve to try it in class. The morning I was excited to premiere it, I also found out another interestingly infuriating nugget of info: Google App Engine is blocked in China.

I gave up at the time, as it was almost summer. I was interested in helping out with the development of the Physics Problem Database project during the summer, but opportunities for sitting down and coding while on a whirlwind tour of the US seeing friends and family weren’t that numerous. It’s amazing to see how John, Andy, and others have gotten the database site together and doing functionally cool things in a short amount of time. I spent some time over the summer learning PHP and MYSQL, but was pulled back into Python when I saw the capabilities of webpy and web2py to do applications. I see a lot of features and possibility there, but fitting my ideas to that framework is beyond what I know how to do and what I have been able to figure out during my time prepping and starting school. That will come later.

I keep coming back to the fact that randomization needs to be built into the program interface from the beginning. I want students that need to practice to be able to do so with different problems each time, because that frees them from needing me to be there to either generate them myself or prevent them from creating impossible problems. I want the reassessment process to be as simple as possible, and for the lowest level skills, they don’t necessarily need me to be testing them in person. That’s what in person interviews and conversations (including those through BlueHarvest) are all about. I won’t rely on a tool like this to check proficiency, but it’s a start for giving students a tool that will get them thinking along those lines.

I’ve had the structure for how to do this in my head for a while, and I started sketching out what it would be in a new Python program last week. This morning, after learning a bit more about the newer string formatting options in Python that offer more options than basic string substitution, I hunkered down and put together what is at least a workable version of what I want to do.

Please visit here to see the code, and here to give it a shot on repl.it.

The basic structure is that every question can use either random integers, an irrational decimal value, or signed integers in its text. With all of the messiness of methods to generate and replace the random numbers inside the Question class, it is fairly easy to generate questions with random values and answers. I admit that the formatting stinks, but the structure is there. I could theoretically make some questions for students this way that could be used on Monday, but I probably won’t just yet. I think a nap is in order.

Next steps:

  • I need to work on the answer checking algorithm. At the moment it just compares an entered decimal answer to being within a certain tolerance of the calculated answer. My plan is to expand the Question definition to include another input variable for question type. Single numerical answers are one question type, Coordinates are another, and symbolic equations or expressions are yet another one I’d like to include. Based on the question type, the answer method in the Question class can be adjusted.
  • As an extension to this, I’d like to include sympy as part of this for making both question generation and answer checking. It has the ability to show that two symbolic expressions are equal to each other, among many other really nice capabilities. This will let me generate all sorts of nice Calculus and algebraic manipulation questions without too much difficulty.
  • I’d like to be able to format things nicely for algebraic questions, and possibly generate graphical questions as well.
  • The ultimate goal is to then get this nicely embedded as a web application. As I mentioned before, there is too much going on in the web2py framework for me to really get how to do this, but I think this is something I can do with a bit of help from the right sources.

I’m having a ball learning all of this, and to know that it will eventually make for a nice learning tool that students will benefit from using is a nice incentive for doing it.

Winning the battle over Python programming

Two stories to share after this week’s activities with students about programming. I have posted previously about my interest in making Python a fundamental part of my classes this year, and so I am finding ways to include it when it makes sense to do so.

I have a couple of students that are bridging the gap between Algebra 2 and Precalculus with an independent study that I get to design. The tentative title of the course for their transcript is ‘Fundamentals of Mathematical Thinking’ and the overall goal is to get these students a chance to develop their fundamental skills to be successful in later classes. I see it as an opportunity to really dig in to some cool mathematical ideas and get them to, well, dig into the fundamentals of mathematical thinking. I don’t plan too much emphasis on the algorithms (though we will spend some time working on skills in algebra, polynomial manipulation, functions, and other crucial topics where they are weak). Looking at a situation, exploring the way different variables might be used to model that situation, and then really digging in to abstract the variables into a model.

We are starting with what I think is the most fundamental application of this: sequences and series. Even simpler, the first task I gave the students was to look at the number of bricks in the rows of a triangular tower and use Python to add up the bricks in each row. This started as a couple of exercises getting to know Python’s syntax. They are then taking programs I wrote to model this problem and adjusting them to find other sums, including the sum of even and odd numbers. One student that completed this task was intrigued that the sum of the latter consisted of perfect squares, but we didn’t explore it any further at this point.

I then gave this student a bunch of sequences. His task was simple: model each one in Python and generate the given terms. This is a standard exercise for Algebra & Precalc students by hand, but I figured that if he could do this with Python, clearly he was able to figure out the pattern. I showed him how to write fractions using string concatenation (e.g. 1/3 = 1 + “/” + 3) which enabled him to develop the harmonic series. Today he figured out Fibonacci and a couple other new ones. It was really fascinating to see him mess around think deeply about the patterns associated with each one. I did tap him slightly in the right direction with Fibonacci, but I have otherwise been hands off. I am also having him write about his work to give him opportunities to work on his writing too. When he feels comfortable sharing it (and I have already warned him that this is the plan), I will post links to his work here.

The other new thing was in Calculus. I have shortened my review of Pre-Calculus concepts substantially, and have made the first unit a survey of limits, rate of change, and definite integrals. Most of this has required technology to explore local linearity and difference quotients. On Thursday, I introduced using rectangular sums to find area – they were otherwise stuck on counting boxes, and I could tell they felt it was like baby math. They really didn’t know any other way.

In showing them rectangular sums, we had some pretty good discussions about overestimating and underestimating. The students had conversations about how rough the approximation with only 3 – 5 rectangles gave for area under a parabola. A couple of them figured out how to use more rectangles. I told them I was going to write a program to do this while they were sitting and working. I created this program and talked them through how it works. They thought it was too complicated to be worth the time, but I think they did understand the basic idea. I then changed the value of N and asked them what they thought that meant. They got it right the first time. I then pushed the value to higher and higher values of N and they immediately saw that it was approaching a limit. Game, set, match.

Today I had the AP students together working on another definite integral activity that focused on the trapezoidal rule. I showed them the code again and gave them the line that calculates area. It wasn’t too much of a stretch for them to work their way to adjusting the program to work for the Trapezoidal rule. We ran out of time to discuss comparisons between the two programs, but they stayed late after class and into their lunch getting it working on their own computers and playing a bit. Here is what we came up with.

The big battle I see is two-fold.

  • Help students not be intimidated by the idea of writing a program to do repetitive calculations.
  • Give students opportunities to see it as necessary and productive to use a computer to solve a problem.

Sometimes these battles are the same, other times they are different. By using the built-in version of Python on their Macs, I have already started seeing them run commands and use text editors to create scripts without too much trouble. That’s the first battle. My plan is to give lots of examples supporting the second one in the beginning, and slowly push the burden of writing these programs on to the students as time goes by and they become more comfortable with the idea. So far I am feeling pretty good about it – stay tuned.

Flipping, Week 1: Stop the Blabbing.

One of my major goals this year is to stop talking so much. Even in my tenth year, I still spend far too much time explaining, questioning, and presenting in front of the class.

The nature of this talking has changed a lot though. When I first started teaching, it was almost all explaining. That’s what I thought good teaching was all about – if you could just explain it the right way, then everyone would get the concept you are teaching, right? A perfect lesson consisting of a perfect development, a perfect explanation of all concepts, perfect example problems, and perfect students. This is how I looked at it during my summer training, and before I got into my classroom.

That changed pretty quickly once I actually got started. Explanations were important, but more important was getting students to be somehow involved. My coaching from administration was focused on good questioning over talking and explaining as a way to do this, so I put a lot of energy into this during my first couple years, and it has since stuck.

The problem is that I am often addicted to asking questions when it’s really time for students to get working and thinking on their own. I can ask questions like crazy, which might have really impressed administrators in my room at one time, but it probably infuriated (and still infuriates) my students to no end. As good of a question I could have asked, they were still just sitting there thinking and not doing any active learning on their own. Furthermore, when the one or two students do answer a question I ask, it isn’t necessarily a real indication of what thinking is going on in the heads of the other students in the room. Students who self select to participate make for a bad sample for the level of understanding in the rest of the room.

The technique to address poor participation (as pushed by my administration in my first couple years) was to cold call students. This is a bad sample in the other direction – pushing a student to go from full listening mode to full participation mode with the rest of students is not an effective way to make dialogue an important part of what goes on in your classroom every day. This is especially the case for students that have poor self esteem about math in the first place. Good conversation is rarely one or two to many. When was the last time you saw twenty people actively involved in a discussion? Why would you really try to get that going in a classroom when it doesn’t work for a room full of adults at a faculty meeting?

In reality, real learning doesn’t look like a kid staring into space pondering a good question. It involves experimenting, testing a theory, writing down an idea and trying it out. It involves taking what you have produced out of your own thinking and getting active and reliable feedback.

Back to my main point – I am attempting this year to put any direct instruction for a particular day’s lesson in two minute video chunks, and limiting the number of these to no more than four per day. A few really nice things have happened since doing this:

  • I’m putting a lot of thought into exactly which ideas are best left to video or direct instruction, and which ideas will come out through conversation and the activities. Some things are better taught in a big group, I’m not going to deny this to be the case. Some things are better learned one-on-one, and thinking about the difference has really changed the way I organize the activities for the day.
  • My students are spending a lot less time listening to me, and more time engaged in the videos and what I ask them to do. The videos sometimes include straight example problems, but I try to include a couple things for students to actually do, write down, or talk about with the person next to them as they watch. The conversations that students have during the videos are really rich (and remarkably on-topic), and are so much more useful than having me tell them things while they stare at me.
  • I can do other things while they are working on the activities I give them. I can see how they are watching the video and make suggestions on things they should be writing down. I can test their knowledge by asking one-on-one questions and get a really good sense for the level of understanding for each student. I can look at quizzes I gave at the beginning of the period, make comments on them, and have a conversation with the students about their work before the end of the period! The quality of my interaction with students has been much higher than before, which has resulted in larger amounts of quality feedback. That is really the goal here.
  • My ESOL students are loving it. They can take time with vocabulary, which is the hard part for them, and make note of the mathematics concepts at the same time. Some students are using the videos to create their own glossaries in other languages. I’ve always suggested that students do this, but until now, I haven’t seen them do it so well, let alone of their own volition.
  • The learning in my room is messier than ever before – everyone is at different points and is having different conversations. There are papers all over the place. Students are crowded around tables working and are facing all different directions. Seeing this sort of thing happen my first year would have meant that this was a spent lesson, that I had lost them. Here, it just looks like (and is so far proving to me) good learning experiences for students.
  • This post is partly in response to one of the new blogger prompts about what I want my students to remember ten years down the road. I really don’t care if they remember how to factor quadratics. Moving to a more student-centered learning model though has made the students in charge of making sure they understand what they are learning. I would love if students tell me in ten years that they learned how to learn something new in my class. Real learning is messy, and actually doing math (not watching), making mistakes and growing from feedback is part of the game. There’s not as much room for that in the more traditional math structure of “I-Do,We-do,You-do” model because the last part is where the real learning happens. Maximizing that part (and simultaneously providing ways for that feedback to happen) is the real meat of teaching, and it’s where I am focusing my energy this year.

    Here’s to keeping it going as long as possible!

Python in Algebra 2 – An Experiment

One of my goals is to include some Python programming as part of all of my courses this year, and to do so in a way that isn’t just wedging it in where it doesn’t belong. We don’t have a formal programming class in our school given our size, but I have heard that students are interested in the broad topic of programming, and know that they could benefit. So, I am finding times to get students playing around with it as a tool.

The perfect opportunity in Algebra 2 today came in evaluating algebraic expressions. I don’t like reviewing the topic, at least haven’t in the past, because in most cases the students remember enough of it to think that they know how to do it, but have forgotten all the nasty bits about order of operations, distributing negative signs, and the infamous -5^2 = 25 when evaluating -a^2 at a = -5. They typically have great interactions reminding each other of the rules, but by the time they get to me in Algebra 2, the idea is no longer fresh. The lesson then ends up being the math lesson equivalent of an air freshener – temporary and stale.

Following my goal, I figured this would be a perfect opportunity to introduce the topic first as a programming topic, and then use the computer as a resource for the students to check their arithmetic. We started the class with some basic order of operations questions:

This was followed by pasting the following into a Python interpreter as everyone was watching:

print “Answers to the Warm-Up Questions:”
print (8*3 – 2*4)
print (27 + 18/9 – 3**2+1)
print (40 + 24)/8 – (2**3+1)

This was following a suggestion from Kevin Krenz to demonstrate the fast way to solve it using the Python interpreter. While they weren’t wildly impressed, they did accept that this was an option for them to check their work in these types of questions, and were up for learning how it worked.

I then showed them how to run a Python file on their Macbooks, which all have at least Python 2.6 running on them in the terminal. I talked about working in the terminal as running around in the basement of their computer – lots of power and hidden secrets there to play around with (or mess up if not careful). After learning to do this, they edited a partially completed Python script which I have posted at Github here.

I really liked what happened afterwards, though it did not feel (at all) like a clean, straightforward way of going over algebraic expressions. It was messy. Different people were at different places during the entire 30 minutes we worked on it, which was much longer than I expected. Quite appropriately though, it slowly came together like writing a program often does. Lots of good discoveries and realizations of simple errors that I didn’t need to force.

Students realized the difference between 2*x and 2x to the computer. They realized quite cleanly that they needed to tell the computer outright that there is multiplication between a coefficient and a variable. They saw this was not the case for -x although they also thought they might need to write it as -1*x. The Python interpreter pointed this out to them immediately. The interpreter didn’t do so well on 4(3 – x) since it considered it a function call, but with some prodding, most students realized it was the same error.

There was enough information in the script for them to figure out how to do exponents, so I was happy not to have to go through that separately. The only really big problem was the fact that Python 2.6 doesn’t have the nice floating point capability for division that 3.2 has. For the first problem, part (a), the answer is 0.5, but Python returns 0 since it assumes integer division with a plain / symbol. I went around to student computers replacing x/y with x*1./y, but this became an opportunity to converse with students about division as multiplication by the multiplicative inverse or reciprocal. Another unintended complication that then resulted in more review of pure mathematical concepts.

With all of this done, the students were then pretty proficient at trying to do the substitution by hand and checking against the answers from the computer. Most caught the serious mistakes without too much input from me – the computer did that work for me.

After finishing problem 1, the students got a big kick out of how I told them to program Problem 2 at the end of the script. They were directly teaching the computer to answer these questions through code. I think they saw that programming really is how you teach a computer to do what you want it to do, and had at least a minimal sense of pride in being able to do so.

One student said this was pretty cool, and compared it to a video game. Another appeared to want to kill me the entire time. They were all pretty patient with the activity though, and trusted that this would make them better at what they needed to learn for my class – probably the most important part to this not leading to a serious case of Thursday afternoon mutiny.

In the grand scheme of technology implementation, this activity was nothing more than using Python to replace a graphing calculator with substitution capability. This type of knowledge, however, is important for doing more substantial applications of computational thinking. I think it’s important to get students to see what it can do before being interested in creating something as simple as ‘Hello world’. That doesn’t seem to interest the vast majority of students. While I did most of the programming for this task, this is a gateway to the students doing more and seeing more down the line. Now that they know how to do the basics of editing and running a program, we will be more successful in doing more sophisticated things later on.

Standards Based Grading – All in, for the new year

I’ve written previously about wanting to be part of the Standards Based Grading crowd. My quiz policy was based in the idea – my quizzes cover skills only and in isolation, the idea being that if students could show proficiency on the quizzes, then I would know for sure that they had really developed those skills. If they had demonstrated proficiency, but then failed on tests to perform, it was an indication that the problem was seeing all the skills in one place. This is the “I get it in class, but on tests I mess it up” mantra that I’ve heard ever since I first started teaching. My belief has always been that the first clause of that sentence is never as true as the student thinks it is. The quiz grades have typically shown that to be the case.

The thing I haven’t been able to get at is why I can’t get my students to retake quizzes as I thought it compelled them to do. I told them they can get 100%. I reminded them that they just needed to look at each quiz, recognize what they got wrong, and work with me on those specific skills to improve. Then, when they were ready, they could retake and get a better score. Sometimes they do it, but they are always missing either one of those three things. They would retake without looking at the quiz. They would take it knowing what they got wrong, but never asked me to go over the things they didn’t get. There were exceptions, but curiously not enough to impress me.

After really committing to reshaping the quiz grade as a real SBG grade for a unit last year, I saw the differences pretty clearly in how the students went about this aspect of their grade. The standards I expected students to demonstrate were clearly listed in the grade book (fine, Powerschool). The students knew what they needed to work on, and were directly linked to examples and short videos I had created to help them with those specific skills. Class time was spent working around developing those skills, along with some bigger picture ideas to explore separately from the routine skills the standards were centered around for the unit, which was on exponential and logarithmic functions. I was impressed in this short time with how changing this small (15%) portion of the grade changed the overall attitude my students had while they were working with me. It was one step closer to the Montessori style classroom I have always wanted to have while working within the structure of a more traditional program – students walk in knowing what they need to work on, and they get to work. My role becomes more to push them in the way I think they can and need to be pushed. Some need to work on skills, others need to attack context problems and the challenging ‘why is this so’ threads that are usually all teacher driven, but don’t need to be in many cases.

I did some thinking over the last couple of weeks on how I wanted to do things differently, so I wrote up a new grading policy and posted it online. I had renamed my quiz grade to be ‘Learning Standards’, bumped up the percentage by 10% (to 25%), and reduced the homework and classwork components to 5% each, with a portfolio at 10%, and tests to 55%.  In sharing my new grading policy with people through Twitter, there were some key comments that really guided my thinking.

Kelly O’Shea pointed out the fact that even with the change, the standards were not a huge part of the grade. Even by cutting classwork and homework into the standards, it still wasn’t good enough:

A few other people made similar suggestions. John Burk probably put the final nail in the SBG-lite version I thought was safe with this comment:

One problem for getting buy in on SBG is that if it isn’t a big part of the grade, and there are still so many non-sbg things, they might not really understand the rationale for SBG.

If I really believe in the power for Standards Based Grading to transform how learning happens in my classroom, I need to demonstrate its importance and commit to it.

The final result? My grades for Algebra 2/Advanced Algebra, Geometry, Calculus 12, and Physics are going to be 90% Learning Standards, 10% portfolio. I am going to give unit tests, but they are opportunities to demonstrate proficiency on the learning standards. In the case of my AP Calculus students, the grades are still 60% unit tests, 30% standards, and 10% portfolio, primarily because I still will be giving tests that are similar to the AP exam with multiple choice, and free response sections. I also had my first class last year with 100% fives, and am admittedly a bit nervous tweaking what worked last year. That said, I am accepting that this, too, could become a thing of the past.

I am a bit nervous, but that’s mostly because change isn’t always easy. From a teaching perspective, the idea feels right, but it’s not what I’m used to doing. The students sounded pretty cool with it on the first days of class when I introduced the idea though, and that is a major positive. I’ll keep writing as things proceed and my implementation develops – it feels great to know I’m not alone.

I really appreciate all of the kind words and honest feedback from the people that challenged me to think this through and go all in. If I can do nothing else, I’ll pay that advice forward. Cool?

1 22 23 24 25 26 32