Education ∪ Math ∪ Technology

Tag: The Reflective Educator (page 14 of 43)

Learning Math Through Programming

My previous article focused on using programming as an example of applying math one already knows to a different context. The purpose of this article is to describe how one could, through programming, learn a new mathematical concept.

What I will do is use some examples to show one could start with an exploration using Turtle Art (which is a programming environment designed for kids) and use this exploration to end up developing models of how a few areas of mathematics work. You can download the examples here and open them up in Turtle Art to explore them yourself.

In Turtle Art, programming is done through the use of snappable blocks, each of which represents a different programming structure. It is very similar to the Scratch programming environment, both of which are based off of the Logo programming language. Any decent exploration of Turtle Art should start with attempting to snap different blocks together and see what they do.

You could show students how to use one of the simplest blocks, the forward block. The output of this block is shown below.

Line segments are most interesting when attached to rotations, so the next block worth showing students is the rotation block. Note that as in the picture below, creating a program with these blocks means attaching them together and double-clicking on the paired blocks to see the output of your program.

Notice that, in the example below, the output is very similar as the first example, except that the turtle icon is rotated now 90 degrees relative to where it used to be.

Once students have played with rotations and moving forward, it is probably time to show them how to use the repeat function. The repeat function is one of the more powerful commands in Turtle Art as it allows any subcommands placed inside it to be replicated exactly any number of times.

Notice how you could add a square to your picture at this stage by using the same commands as before, but repeated four times. This suggests that a property of squares is that they can be generated from repeating the steps "forward n, rotate 90 degrees" four times.

At this point, students may realize that it would be convenient to start fresh each time, and so you can point out the clear block. Note that this block also resets the default starting position of your turtle.

One thing I’ve noticed students do very early on, when they explore Turtle Art programming, is change the angle of rotation. I’ve changed the angle from 90 degrees to 30 degrees in my example, and now all of the shape isn’t a square anymore.

After this, it would be natural to try and figure out how to close the shape one has drawn. Students might realize right away how many rotations they need, and they may need to experiment a bit. This experimentation, along with other related experiments that they will do, may lead them to develop a model for the number of degrees of rotation and how many repetitions of their initial forward plus rotation block they need. Below, pretending that I was a student, I only repeated the commands 8 times.

When you see your students have made this kind of discovery, it may be worth checking in with them to see if they have a model in mind for why 12 repetitions worked, and why 11 or 13 would not. In particularly, it would be interesting for them to explore, for example, what happens if they change the angle of rotation? What happens if they change how far they go forward each time?

Another thing that I have noticed students often do, once they learn about the repeat block, is stack repeats to see what happens. In this case, the extra repeats do not appear to have changed the output at all, which should hopefully lead to some questions by the student. I would recommend having the students step through the program one command at a time and see if they can understand the reason why the output is what it is.

Having understood the issue in the previous step, I decided to add a forward and a rotation into my double repetition, which leads to a fairly interesting shape which unfortunately extends beyond the edges of the view window set by the program.

At this stage, I decided to figure out how to shrink my shape. This, with some prompting, could lead to a discussion about variables. With some experimentation, students may learn that variables are an input into the program they have created which may affect the output of the program.

My first instinct after seeing the rotation above was to change the second angle of rotation to only 10 degrees to see how this influenced the output. Right away I decided that I would need to change the number of repetitions for the outside repeat loop. I would encourage any students working on an activity like this to play around with changing the number of repetitions to see if they can figure out how many repetitions will make their pattern repeat all the way around a complete revolution.

Now we really have an interesting looking shape. Notice that to get this shape, we repeated our outside loop exactly 36 times. Why 36 times, why not another number? What would happen if used a larger number?

I found the Turtle icon sitting in the middle of the other picture to be a bit distracting, so I tried to use setxy (which, by the way, students absolutely find hysterical if you mispronounce it) to move it. Notice that this particular code block would lead to a discussion about Cartesian coordinates, and that through experimentation, especially if students have an understanding of negative numbers already, lead to understanding the purpose of a coordinate system.

 I did some further exploration with the setxy tool, trying to get the Turtle icon off of my shape. Note that actually determining the actual size (in pixels) of this shape involves using trigonometry, so one could turn any exploration of shape into a mathematics problem session as well, simply by asking students to try and work out the sizes of the objects they create.

I finally got the Turtle off of the shape.

I decided that it would be nice to draw another one of these shapes in the new Turtle location, which meant I had to start changing my code to more easily allow for repetition of the code structures. Turtle Art allows for the person using it to define their own blocks. In this case, I decided to create a procedure called "Shape" which would be used to draw just the original 12 sides shape. I then called this procedure from the main block of code (see below).

I then decided to make the put the rest of the code into it’s own block as well, which I called Flower. If you look below, you’ll see that I first clean the screen, move myself into the middle of the screen, draw the flower, move to the edge of the screen, and redraw the flower shape. It occurred to me that it would be nice to change the size of the flower if necessary. Doing this would require introducing a variable.

I created a variable, which got called box1 (I wonder if I can rename this somehow). I set the value of box1, and then call the Flower procedure, and inside the Shape procedure, the value of box1 is used to determine the amount of forward movement done by the Turtle icon while it draws the Flower shape. To draw a flower of a different size, I changed the value of box1 again, and then called the Flower procedure again.

 

You should see that even in a relatively simple example, there are a lot of embedded mathematical concepts. Through trial and error, careful observation, and a teacher’s mentorship, students should be able to develop some models of how these mathematical ideas work, within the Turtle Art environment. Besides learning mathematics, students will also have to develop other habits, such as patience, and the willingness to trouble-shoot and debug their programs.

Applying Math in Programming

The purpose of this post is to show an example of using math in the context of programming. I’ve written the post as I created the project, to try and outline my thinking during this process as much as I can. This is an example of me applying math that I know to a different context, creating a spiral of numbers. In a future post I plan on exploring what learning new mathematics through programming could look like.

Note: This post will look much better in the online version if you are reading it in an RSS reader or your email.

First, I start with a pretty basic HTML file with some an embedded JavaScript library called jQuery, and a blank Canvas HTML element.

[html5]


Prime Spiral




[/html5]

In the Javascript file, I start with the following:


// init()
$(document).ready(function () {

});

// debugging function
function debug(message) {
$(‘#debug’).append(message + ‘
‘);
}

So far all I have done is create two template files (which I always create when I am starting a new project written in JavaScript), and I have added the minimum skeleton to both of these files to get my project started.


// settings
var settings = {};
settings.numberOfNumbers = 200;

At the beginning of the JavaScript file, I add a settings variable. This will allow me later to tweak my project settings in one central location, rather than having to find where I have an embedded setting and modify it.

Next, I decided to resize the canvas so that regardless of what browser will view the canvas, it will be visible in their browser window.


// resize the canvas to the minimum of height and width for the screen
function resizeCanvas() {

// get the new width of the canvas, which should be the minimum of the height or width of the page
settings.dimension = $(window).height() > $(window).width() ? $(window).width() : $(window).height();

// now shrink it slightly
settings.dimension = settings.dimension * 0.90;

// now resize the canvas elements
$(‘#theContainer’).css({‘height’: settings.dimension, ‘width’: settings.dimension});
$(‘#theCanvas’).css({‘height’: settings.dimension, ‘width’: settings.dimension});

}

There are two pieces of mathematics here. One is a comparison between the height of the browser window and it’s width, and the other is shrinking of the region to 90% of the original dimensions. I could have used the built in minimum value function for the first part, but for some reason, I chose not to.

The next step is to actually write the numbers in a spiral. To do this, I decided to work in polar coordinates, because spirals are convenient to draw in that coordinate system, but unfortunately browsers operate in Cartesian coordinates. Each point in the browser window can be labelled with an x, y position, as measured from the bottom-left corner of the canvas. My objective is to start numbering the spiral from the center of the canvas, so I will have to translate each point, after having converted from polar coordinates to rectangular coordinates.

Here is the function for the conversion:


// convert from polar coordinates to offset cartesian coordinates
function convertFromPolarToCartesian(radius, theta) {

// A point at (radius, theta) can also be thought of as being
// at the end of the hypotenuse of a right-angled triangle,
// hence we can use trigonometry to find the Cartesian coordinates.
// Note: theta will need to be in radians to be useful here, since
// the Math.cos() and Math.sin() functions assume the angle is in radians.
var x = Math.cos(theta)*radius;
var y = Math.sin(theta)*radius;

// now shift the point into the center of the canvas
x = x + settings.dimensions/2;
y = y + settings.dimensions/2;

// return both points as an array
return new Array(x, y);
}

Now comes a moment of truth. I have not yet been able to test these most recent functions I have created, so they may have mistakes in them. I need to actually attempt to use these functions to find out if they return the expected values. My next step is to therefore try and produce a function which will create the spiral of numbers, using the functions I have so far as tools. First, I want to cycle through all of the numbers, which looks like this:


// draw the spiral of numbers
function drawNumbers() {

// cycle through each number from 1 to the maximum number of numbers given
for (var index = 1; index <= settings.numberOfNumbers; index++) { } }

This is essentially a sequence of numbers where I start with a value of 1, and I increase them (using index++), until I reach the maximum value as set globally in the script.

With each of these numbers, I am now going to want to calculate what it’s position would be, remembering that I’m going to work in polar coordinates. I want the radius of the position of the numbers to slowly increase in a linear way, from an initial value of zero, to a maximum value of just less than half of the maximum width of the canvas. Therefore when the number is 1, this should map to a radius of zero, and my maximum number should map to my maximum radius. Here’s my initial guess as to what this conversion should be:


radius = (index – 1) / settings.numberOfNumbers * (settings.dimension / 2) * 0.90;

For the angle, I just want it to increase at a constant rate for each number, remembering that I will be working in radians. An increase in angle of $\frac{1}{32}$ of a full rotation of a circle seems like a reasonable initial guess.


theta = (index – 1) * (1 / 32) * Math.PI;

Next, I used the function I created earlier to convert into Cartesian coordinates (with the shift), and finally I created a function which should actually display the numbers on the canvas. Here is what the full spiral function looks like at this stage:


// draw the spiral of numbers
function drawNumbers() {

// define the variables
var radius, theta, coordinates;

// cycle through each number from 1 to the maximum number of numbers given
for (var index = 1; index <= settings.numberOfNumbers; index++) { // set the radius so that it increases as the index increases, but is initially zero // note that we also want to scale the radius down slightly so that our spiral // is slightly smaller than the canvas radius = (index - 1) / settings.numberOfNumbers * (settings.dimension / 2) * 0.90; // our angle should increase at a constant rate, starting at 0 theta = (index - 1) * (1 / 32) * Math.PI; // now convert these into Cartesian coordinates coordinates = convertFromPolarToCartesian(radius, theta); // and then actually draw this number drawNumber(index, coordinates.x, coordinates.y); } }

Here’s the output of this function.

Ooops! Something went wrong. I scanned through my code, and luckily I spotted my mistake quickly. I had included an extra “s” in my polar coordinates to Cartesian coordinates conversion function. Here’s the updated output. This process of debugging a mistake can sometimes be quite frustrating, so it requires developing patience.

It is clear that my basic concept works at this stage. The numbers look very tightly jumbled at the beginning, which is probably because the angle rotation isn’t sufficient early on. My assumption that a linear increase in angle would work is probably wrong. Also, the spiral isn’t centred inside the canvas, suggesting that I will want to work on my conversion function.

I want the angles to start spread out more than they are, and then slowly increase over time. I tried some of the following, none of which produced the desired effect.


// tried varying the fraction increase of the angle
theta = (index – 1) * (1 / 16) * Math.PI;

// tried using a reciprocal function for the angle
theta = (index – 1) * (10 / index) * Math.PI;

// tried using a reciprocal square root function for the angle
theta = (index – 1) * (10 / Math.sqrt(index)) * Math.PI;

// trying a decay function on the angle
theta = (index – 1) * (Math.exp(-1*index/100)) * Math.PI;

I realized at this stage that what I wanted was not a constant increase in the angle, but a constant distance between the points, after their conversion into Cartesian coordinates. I decided to try and draw this out on paper to see if I could work out an algebraic relationship. I decided then to draw the following diagram to see if it would give me any insights on how to proceed:

When I looked at this, I realized that I could use the Cosine law to find the angle, given the new radius, old radius, and the gap between the letters. Initially, I tried a constant gap between the numbers, but after some playing around, I decided to gradually increase the font size between the numbers, and at the same time, gradually increase the gap between the letters. I ended up settling down on this as my final set of formulas for determining the position of the numbers.


// draw the spiral of numbers
function drawNumbers() {

// define the variables
var radius, radiusnew, rhs, theta, coordinates, fontSize;

// cycle through each number from 1 to the maximum number of numbers given
for (var index = 1; index <= primespiral.settings.numberOfNumbers; index++) { // set the radius so that it increases as the index increases, but is initially zero // note that we also want to scale the radius down slightly so that our spiral // is slightly smaller than the canvas radius = (index - 1) / primespiral.settings.numberOfNumbers * (primespiral.settings.dimension / 2) * 0.90 + 10; // keep track of the old radius radiusnew = (index) / primespiral.settings.numberOfNumbers * (primespiral.settings.dimension / 2) * 0.90 + 10; // fontsize should increase linearly as the index does fontSize = Math.round((index) / primespiral.settings.numberOfNumbers * 10 + 10); // calculate the rhs of the cosine law rhs = (radius*radius + radiusnew*radiusnew - (fontSize*1.5)*(fontSize*1.5))/(2*radius*radiusnew); // ensure that there is a minimum radius if (rhs < 0) { rhs = 0.1; } // our angle should increase such that the distance between the numbers is kept constant; theta = Math.acos(rhs); // now convert these into Cartesian coordinates coordinates = convertFromPolarToCartesian(radius, primespiral.currentAngle); // increment the next angle primespiral.currentAngle += theta; // and then actually draw this number drawNumber(index, coordinates.x, coordinates.y, fontSize); } }

How this works is that it calculates the current radius, the radius of where the next number will be placed, and then calculates the angle that corresponds to the gap between the letters, and then it saves all of this information for the next iteration of the loop by incrementing the current angle variable. I also worked on the portion of my script that converts the polar coordinates into Cartesian coordinates in an effort to better centre the spiral. This is my output with this code:

I decided, somewhat arbitrarily, that the next step is to identify which of the numbers are prime, and highlight them in some way to make them distinct. This means that I needed to write a function to determine if a given number is prime, and then pass along this information to the function that draws the numbers. Here was what I ended up with. Note that this function actually doesn’t work completely (except for “small” numbers) as noted in the comment at the end.


// identifies if a given number is prime or not
function isPrime(number) {
// naive algorithm
var primes = new Array(
2,3,5,7,11,13,17,19,23,29,
31,37,41,43,47,53,59,61,67,71,
73,79,83,89,97,101,103,107,109,113,
127,131,137,139,149,151,157,163,167,173,
179,181,191,193,197,199,211,223,227,229,
233,239,241,251,257,263,269,271,277,281,
283,293,307,311,313,317,331,337,347,349,
353,359,367,373,379,383,389,397,401,409,
419,421,431,433,439,443,449,457,461,463,
467,479,487,491,499,503,509,521,523,541,
547,557,563,569,571,577,587,593,599,601,
607,613,617,619,631,641,643,647,653,659,
661,673,677,683,691,701,709,719,727,733,
739,743,751,757,761,769,773,787,797,809,
811,821,823,827,829,839,853,857,859,863,
877,881,883,887,907,911,919,929,937,941,
947,953,967,971,977,983,991,997,1009,1013);

// check to see if the number is 1
if (number == 1) {
return false;
}

// first check to see if our potential prime is in the list
for (var i = 0; i < primes.length; i++) { if (primes[i] == number) { return true; } } // now check every prime smaller than n for (i = primes.length - 1; i > 0; i–) {
if (number % primes[i] == 0) {
return false;
}
}

// this isn’t actually guaranteed, unless n < 1013*1013 return true; }

Putting all of this together, and I end up with this. You can view the entire JavaScript file here.

What mathematics did I end up using? Do you think that this kind of application of mathematics would be a valuable one for students to experience?

Playground Physics

I went to the playground today with my son, and realized that the equipment at a playground could be really useful as apparatus for scientific experiments. Here are a few demonstrations of scientific principles:

How would you turn these demonstrations into experiments? What kind of data would you collect? What are some other examples of playground physics?

Powerful ideas in math

There are some ideas in mathematics which are powerful tools for thinking. I’ve enumerated some of them below.

  1. Equivalence

    This is the idea that some things are the same as each other, and that some things are not. We see equivalence taught through early arithmetic and algebra. We also see this idea taught through trigonometric identities and proofs.

    I watched a colleague of mine working with his class to introduce trigonometric identities (such as sin2x + cos2x = 1) and over and over again the idea of equivalence between different expressions came up. At one point a student tried to cancel the 1s in the following expression: $\frac{cos^2x-1}{cosx+1}$. My colleague then asked students to look at $\frac{2+1}{3+1}$ and students noticed that $\frac{3}{4}$ is not the same as $\frac{2}{3}$ which means that it must not be possible to do the same thing with the trigonometric expression. This idea is only possible to understand if you understand the bigger idea of equivalence.
     

  2. Sequencing

    We see this idea comes up in patterns, ordering numbers, but it also comes up in limits. In the earliest years, the idea of sequencing is introduced as children learn to count by ones, twos, and so on, and in the later years, students look at lists of numbers and try and find a pattern to predict further numbers in the sequence.

    In the final years of high school, if they learn calculus, students learn about how sequences apply to understanding the limit of a series. For example with $S = 1 + \frac{1}{2} + \frac{1}{4} + \frac{1}{8} + … $, what should the value of S be to make this a true statement, assuming that the sequence of numbers continues forever? How does this idea relate to the idea of differentials and integrals?

    More generally, any time we arrange anything in any kind of order, we necessarily have to use our ability to sequence ideas.
     

  3. Representation

    This idea is where much of mathematical notation comes from as any mathematical notation is in fact a representation of another concept. Even number symbols are in fact representations of the idea of a number, rather than actually being the number themselves, eg. the numeral 5 is a representation of the idea of fiveness.

    Another place representation comes up in a standard curriculum is when students explore functions, and they learn that functions can be graphed, given as ordered pairs, listed in a table, and represented by an equation. Each of these representations means the same thing, but written in a different form for our convenience.
     

  4. Precision

    Early in school students learn the difference between an estimate and a calculation, and they learn that the way we use words (especially in mathematics) can sometimes lead to some interesting issues. For example, a common definition of a prime number is that it is any number which is divisible by one and itself. Unfortunately, many children read this definition and think that one is a prime number. Understanding that one has been chosen not to be included in the definition of the prime numbers so that we can more easily identify and use the properties of primes later on is something that many children either do not understand, or are never told about.
     

  5. Procedures

    This is one powerful idea that most children spend a lot of time learning about. They learn that someone can create a procedure, or a list of steps to follow in order to achieve a particular goal, and that when that procedure is followed accurately, the result is predictable. This idea itself is seen in almost all areas of mathematics, but notably, it often fails when applied to mathematical problem solving because so many rich mathematical problems defy a simple procedure to solve.
     

  6. Subroutines

    Learning how to decompose and reduce the complexity of problems with which we are faced is one of the most critical thinking tools we can learn. Over and over again, this issue comes up in mathematics. In fact, in order to support students ability to find and create subroutines is one of the reasons mathematics curriculums often follow similar sequences.

    Here’s an activity: find a problem from secondary school mathematics, and work out how many different subroutines are necessary in order to solve that problem. One benefit of seeing this issue of subroutines is that it gives you a lot more empathy about what children have to go through in order to learn mathematics.
     

  7. Classification

    This is the ability to take a list of traits, identify them in an object, and use those traits to understand the differences between one object and another. For example, if you look at the properties of a rectangle, you may recognize that opposite sides of the rectangle should be the same length, and that every angle in the rectangle should be $\frac{1}{4}$ of a full turn. One thing that many people struggle with is understanding that this definition of a rectangle also necessarily includes a sequence, and that in fact a square is a specific example of a form of rectangle.

    Classification is one of the earliest thinking tools we learn. It is likely in fact that our ability to classify objects may be preprogrammed into our brains, given how early in life you can see children using it.
     

  8. Relationships

    Mathematics is also about finding relationships between different objects. Look at the video below.

    Is it surprising that through paper folding with a point and a circle that we can create the shape of a hyperbola?

    Finding relationships between objects and finding how one area of mathematics is connected to another area of mathematics are critical skills to learn when solving mathematical problems. Some of the most challenging problems in mathematics have been solved by looking for parallels in other areas of mathematics that are easier to work with.

 
These powerful ideas also apply to non-mathematical problems. If students can learn these thinking skills, and learn how to apply them in a variety of different contexts, then they will hopefully be able to apply them to the problems they will face in life. Learning these skills empowers childrens to think.

What other powerful ideas do you think children should learn?

* Note that some of the examples on this page are best seen in the web version, rather than in email, or in your RSS reader.

How to learn about technology

I’m working on a presentation (for a staff meeting) on how to learn about technology. Technically, my title should be, "How to learn how to use technologies tools for specific tasks" but this isn’t very catchy.

I’d love to some feedback. Are there any techniques you use to learn how to use technology that I’ve not included?

I’m moving to NYC

 

Back in November I talked to my head of school to let him know that I was seeking leadership opportunities. I love my school, it is a fabulous place to work, and one of the things I love about it the most is that everyone has some shared responsibility for leadership in different areas of the school. We have two directors, one for the Junior School division, and one for the Senior School division, both of whom I admire and respect very much, and we have many people with minor leadership roles, essentially creating a somewhat flat hierarchy. One of the problems with this hierarchy though is that I have no way to gain enough experiences at my school to learn enough to be to able to take on the role of a Director position. In my conversation with my head of school, we realized this, and realized that I would probably need to look at moving onto a new school or other role if I wanted a greater leadership role.

I sent off an email to my best friends around the world and asked their advice. Most of them responded, and after doing some independent job search through the various international schools around the world, I ended up with eight different job offers to explore, all of which entailed more of a leadership role than I currently have.

The most exciting of these opportunities came through my friend Andrew Stillman who works for New Visions for Public Schools in NYC. Andrew connected me to Janet Price, Director of Instruction for New Visions, who decided (after reviewing my resume and interviewing me with a team of others) to offer me a job as a Math Formative Assessment Specialist for New Visions, which I accepted. I start at the beginning of July.

My core duties at New Visions will be:

  • Collaborate with MASTER program staff and faculty at Hunter College to design and implement new curriculum and assessments for MASTER residents focused around the development of pedagogical content knowledge in math.
  • Collaborate with New Visions and Hunter College faculty on in-field coaching and assessment of mentors and residents. Work with the team to set standards, review candidates’ progress, and iteratively adjust the program design
  • Curate tasks that support embedded formative assessment strategies and develop teacher training for effective teacher use of these tasks to support learning through units of algebra and geometry in the common a2i curriculum
  • Meet weekly with school-based teams in  two  New Visions high schools to, through a collaborative inquiry process:
    • Implement a common-core aligned curriculum in algebra and geometry
  • Facilitate looking at student work on formative assessment tools, including pre-unit, post-unit and day-to-day units to continuously improve curriculum , inform future lessons and identify areas for re-engaging students in content and processes
  • Facilitate the development of teachers’ pedagogical content knowledge and instructional strategy “toolboxes” through:
    • Assisting  teachers in developing their listening,  questioning and feedback skills and their ability to engineer effective classroom tasks
    • Leading the math teacher teams in an inquiry process within and across schools to continuously use information gleaned from student work to improve instruction and meet student needs
  • Meet regularly with math coaches to, through a collaborative inquiry process, reflect on the teachers’ progress as evidenced by student work and revise and plan new interventions and supports to move teachers forward.
  • Assist in planning and facilitating of cross-school inquiry.
  • Build and sustain relationships with schools and principals and support capacity building in participating schools.
  • Engage in 5 hours per week in peer-to-peer learning and support on a team of Instructional Specialists and Residency Coaches

I’m looking forward to this role, while at the same time feeling sad about leaving my current role, my colleagues, my students, and Vancouver (a city I have grown to love, despite its rain). Change is always uncomfortable, although this is somewhat easier for my wife and I, given that this will be the fourth different country we’ve moved to together. Also, I started my teaching career in NYC, and lived for three years, so I am fairly familiar with the city.

I’m going to miss British Columbia, but I have no intention of severing my connection to it. This role in NYC will not last forever, and I hope to keep intact my ties here in British Columbia for when my wife and I decide that we miss Vancouver and our friends too much, and want to return home.

Those of you who have been following my work for a while will know that I am passionate about two main areas in education, mathematics education and the application of technology to education. This role will help me pursue my passion for improving mathematics education, and knowing me, I will almost certainly bring in technology to whatever role I do.

Gender bias in education

Mark writes:

"Here’s a really interesting experiment to try, if you have the opportunity. Visit an elementary school classroom. First, just watch the teacher interact with the students while they’re teaching. Don’t try to count interactions. Just watch. See if you think that any group of kids is getting more attention than any other. Most of the time, you probably will get a feeling that they’re paying roughly equal attention to the boys and the girls, or to the white students and the black students. Then, come back on a different day, and count the number of times that they call on boys versus calling on girls. I’ve done this, after having the idea suggested by a friend. The result was amazing. I really, honestly believed that the teacher was treating her students (the teacher I did this with was a woman) equally. But when I counted?She was calling on boys twice as often as girls."

I’d love to try this experiment out at my school, but I suspect I will not, and will instead ask my colleagues to try it out on themselves. Like Mark writes, this does not happen because the teachers are sexist, I’m sure they do not feel that they are at all sexist. These problems are systemic in our society, and you need someone on the outside looking in to have a chance at noticing them.

How can social media facilitate transformation in education?

I believe that social media has the potential to facilitate a transformation in education in a way that no other communication tool before it has.

First, social media allows teachers to learn about ideas outside of their school or school district. Too often we are isolated within our classrooms, within our schools, and within our school districts, and we make assumptions about how certain educational practices should be done. When we see other schools doing things differently, it makes us wonder how we could change or improve our own practices. While other broadcast mediums (such as print and television) have this capability, social media allows us to both find out about an alternative practice and discuss the details of implementing this practice directly with whomever has created it.

Professional learning for teachers is also changing. Educators can now use social media to connect with ideas any time, any place. The #edchat discussion that happens weekly on Twitter is more similar to an Edcamp than it is to a traditional conference. An enormous percentage of what teachers learn comes from informal settings, and social media can extend the times and places where this informal learning can take place.

Just like their students, educators also need to feel like part of a community, and in some schools, they may be too different from their peers to form emotional attachments within their school. Social media allows these educators to find a peer group outside of their school with whom they can connect and form communities of care. Educators who feel like they are part of a community have greater morale, and are better able to cope with the stress their jobs entail.

I have also found that social media both exposes educators to the big ideas of education and the "what can I do on Monday" type of resource. It is important to have both – the first because the big ideas of education are what drive change, and the second because having resources available to use on a daily basis give you time to think about the big ideas.

Social media allows educators to, as a network, collaborate to solve problems that none of them could individually solve. I recently started a presentation on formative assessment. I seeded it with 20 examples of formative assessment, and then sent a link to my network of educators asking for more examples. The presentation is now up to 55 examples, and I could not have come up with all of those examples myself

There are also some problems (or maybe they are more accurately named opportunities?) with social media.

I have seen many examples (and participated in many examples) of miscommunication that occurs because of the general terseness of the medium, and sometimes because of a fundamental disagreement about what the language being used means. I had a half-an-hour-long argument with another educator which only ended when I realized that she was using a completely different definition of learning than me. It is important to take the time to clarify language, and where necessary, link to less concise explanations of what we mean. This is one reason why I think that every educator who participates in social media should have some web-space available to which they can link when necessary.

Social media also favors people who are already well-connected. I am able to use social media as an especially effective means of collaboration because I have many educators in my network already. For people who are just getting started with Twitter, they may see it as more of a means to follow people who broadcast, rather than as much of a tool for connecting with and discussing educational ideas with other educators. As someone who is well-connected, I do my best to share some of the good projects and ideas I see from people within my network, so that my network can be at least in part a shared resource.

It is also well-known that people tend to repeat opinions that are popular more than opinions held by a minority. We naturally have a desire to be part of a group, and one consequence is that we can sometimes fall into the trap of groupthink. This phenomena also happens at the school level! It is therefore important that every network should contain some dissenters, some people who are willing to go against the crowd. We also need to think about our reasons for believing something to be true – do we really believe it, do we have evidence to support our belief, or are we just following the crowd?

Social media by itself will not change education – that responsibility lies with the people who use it, but change starts with desire, and social media can provide information which may lead to a desire to change.