Education ∪ Math ∪ Technology

Tag: technology (page 1 of 6)

Ways to use technology in math class

Here are some ways you can use technology in your math class which are more interesting and innovative than using an interactive white board or having students watch instructional videos. Note that these ideas are all examples of potential student uses of technology.

Students could:


Any other suggestions of ways students can use technology in order to improve their mathematical reasoning?

Access to computers

President Obama recently unveiled a plan to have broadband Internet access in every school across the United States by 2018. There’s only one huge problem with that plan; according to the US government’s own research, as of 2006, there was only one computer for every four students, and many of those computers are old. Outfitting the rest of the students in the United States with a computer, and upgrading the existing ones to be useful, will come with a hefty price tag.

Include with the plan (linked above) is this statement: 

In addition to connecting America’s students, ConnectED harnesses the ingenuity of the American private sector get new technologies into students’ hands and support digital learning content.

I read this as, "We will use public money to buy computers for students via private companies" and very likely, those private companies will make enormous profits, given the size of the US education market.

Here’s a more creative solution: develop open-source hardware for schools, like the Raspberry Pi. Not only will the costs be lower in the long run (since the US government can then mass-produce the hardware for schools at cost), it will create jobs within the United States, and allow for innovation in the field through end-user adaptation.

There are a couple of arguments against this idea.

First, one thing that brings down the price of computers is production in mass scale. To this I say, the number of students in the US school system is more than sufficient to allow economy of scale to bring down prices to reasonable levels.

The second argument is that competition between different manufacturers of computers reduces prices, which to some extend is true. However, technology companies also artificially increase their profits in a variety of ways, including delaying new features for their computers to force turn-over of their devices when they introduce these features, and continuing to build their hardware for planned obselescence rather durability and life-span.

While I think that there are tremendous benefits to technology in schools, I also think that schools should use public money wisely. The United States certainly has the technical capability of developing high-quality, durable, open-source hardware. The question is, why aren’t they using it?

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.


Prime Spiral


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(

// 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?

Preparing Students for an Uncertain Technological Future

I wrote this article for our parents in our school’s monthly magazine a few months ago, and realized I had not yet shared it here.


(Image credit: Will Lion)

No one knows exactly what form the technology of the future will take, although there are those attempting to make predictions. Ray Kurzweil, a futurist, has this to say on the accelerating rate of change of technology:

Now back to the future: it’s widely misunderstood. Our forebears expected the future to be pretty much like their present, which had been pretty much like their past. Although exponential trends did exist a thousand years ago, they were at that very early stage where an exponential trend is so flat that it looks like no trend at all. So their lack of expectations was largely fulfilled. Today, in accordance with the common wisdom, everyone expects continuous technological progress and the social repercussions that follow. But the future will be far more surprising than most observers realize: few have truly internalized the implications of the fact that the rate of change itself is accelerating.

We do know that new technologies impact our society in profound ways. Of this issue, Neil Postman, a media theorist, said this of technology change:

Technological change is not additive; it is ecological. I can explain this best by an analogy. What happens if we place a drop of red dye into a beaker of clear water? Do we have clear water plus a spot of red dye? Obviously not. We have a new coloration to every molecule of water. That is what I mean by ecological change. A new medium does not add something; it changes everything. In the year 1500, after the printing press was invented, you did not have old Europe plus the printing press. You had a different Europe. After television, America was not America plus television. Television gave a new coloration to every political campaign, to every home, to every school, to every church, to every industry, and so on.

The introduction of the car influenced both how and where we live, and the environments we live in. The television radically transformed how information and culture are transmitted in our society. Airplanes changed where we travel, and how far away from our extended families we are willing to live. The Internet is in the midst of transforming every aspect of our society, from how we shop, to how we learn new things, to how we work. These disruptive technologies could not have been predicted 120 years ago, and we are still feeling the ripples of the changes these technologies have wrought on our society.

If we know that an unknown change is going to greatly influence our students’ lives, how do we prepare them for it?

The first key to preparing for an uncertain future is adaptability. One has to be willing to explore new technologies and see how those technologies influence us. This is one of the strengths of our ‘bring your own computer’ program. Students see that we accept a wide variety of different computers, and can often be seen exploring and sharing each others’ technology. In this way, they learn that computers are not about one model, or one brand, but instead about the functionality of the computer.

The second key to preparing is critical thinking. This is part of the purpose of the IB education our students experience. They learn to question everything. They learn not to accept ‘facts’ at face value, and to recognize that people use facts to represent their perspective on an issue. The same thing is true of technology change. Most people see technology as this magical thing that influences and improves our lives; our students will hopefully see technology as a thing to be examined and critiqued. The critiques students learn how to do in their IB History class will help them critique their own use of technology. They will hopefully be able to ask two important questions of each new technology they encounter: what abilities does this technology give us, and what does it take away?

A third key to preparing for the future is balance. We are not a technology school, we are a school that uses technology. Our students learn a wide variety of different tools, but they also learn, through our Outdoor Experiential Education and our Creativity, Action, Service programs, about the balance necessary to have a successful life. Our hope is that students will be able to apply this understanding of balance to all aspects of their lives, including their use of technology.

Our students face an uncertain future as our society adapts to as yet unknown technologies. They may see the introduction of flying cars, microscopic computers, artificial intelligence, and other technologies that we cannot even imagine. They will likely experience more radical changes in our society than all of the most disruptive technologies from the past century have managed to do. Our hope is that the education they experience at Stratford Hall helps prepare them for these changes.

Math apps

I recently realized that I have a tonne of different math mini-applications that I’ve built over the years, and I will need to take the time to catalog them at some stage (note that some of these will just not run in Internet Explorer). For now, here’s a list of the ones that might be useful, in no particular order:

Images to make one think about technology

Here are some images I’m collecting for future presentations on technology. Each of the images is intended to ask a question, and to have people reflect on their own use of technology, and our society’s use of technology.


Technology transforms us
(Image credit: Andy Hooper)



(Image credit: Wikipedia)



Laptops in schools
(Image credit: T Coffey)


TV Sunset
(Image credit: Michael Leung)


People texting instead of talking
(Image credit: Susan Sermoneta)


Cars on a highway
(Image credit: Dom Nozzi)


Kids playing games outside
(Image credit: Geek of the day)


Volvo and IKEA
(Image credit: Erik Johansson)


MRI machine
(Image credit: Daniel Martin Reina)


If you have any other images of various technologies that you think require their viewer to ask questions (or which easily lead to questions), please share them with me.

Technology influences cognition

Technocriticism Wordle

That technology can influence cognition should be painfully obvious when you examine our primary technology of communication – language. Someone who knows a language cannot choose to ignore that language when confronted with it. If you are a literate person, letters arranged together do not appear randomly placed, they form words. When someone talks, you cannot hear it as babble, you are forced by how this technology has influenced your thinking to hear words.

When one looks at language, it is nonsensical to ask if one has a choice whether or not to use this technology. Once proficient in a language, barring a severe brain trauma, one remains proficient in that language and has it forever more alter their thinking. You can’t choose not to use a language once you have it and are exposed to it anymore than you can choose your parents.

Different languages and the accumulation of culture (another technology) that goes along with them result in different ways of thinking. One of the reasons why translation is so difficult between cultures is because quite often cultures have concepts which are unique only to their culture, which tells us that differences in the technology of culture results in different types of thinking. In the same way, people who are proficient in digital cultures have their own thinking altered by their participation in those cultures.

It is possible that there are technologies which do not influence our cognition. It may be, for example, that we are not influenced by our cell phones (which incidentally, whatever their value may be, a device which allows almost anyone in the world to interrupt you no matter what you are doing) to the degree that they influence our thinking.

I do not think this is true though. When you look at cell phone use in particular, you will no doubt recognize that possession of a cell phone and knowledge in its use means that if you are planning to meet someone else, who also posses a cell phone and knows how to use it, you are less likely to carefully plan exactly when and where you will meet them. So just possessing and knowing how to use a cell phone changes your behaviour, and changes how you plan your life. If one possesses a smart phone, and are at all proficient in its use, one generally stops planning exactly how one will travel somewhere in advance.

My strong suspicion, although I cannot yet prove this, is that all technologies include different types of thinking which are a necessary part of using the technology, and that while the influences of technology are not deterministic — we have some free will in our use of technology, I do not think that someone who is not cognicent of the limitations of their technology will see those limitations.

The benefits of technology use are generally easily apparent. What are usually less apparent are the drawbacks. So instead of blindly using technology without regard to the potential drawbacks, we need to be considerate of its use, and be critical of how it has changed us. We need to be technocritical as users, and those of us who are experts in technology use must especially be experts in critical reasoning around its use.

Programming with 3rd graders

Group 1


I did two things I’ve never done before – I taught 3rd graders, and I introduced elementary school kids to programming.

Yesterday, I started off by talking to the kids about how programs work on a computer, using the analogy that a programming language is like talking to a computer. If you can speak the language of the computer, you can make it do what you want it to do. I pointed out that all of them were much smarter than a computer since they can speak and understand English, and no computers can do this – at least they can’t carry on a conversation that passes the Turing test (yes, I mentioned the Turing test with a group of 3rd graders).

The first activity we did I called "Program your partner." It’s a pretty easy activity to set up. I told the students that computers only understand simple instructions, like step forward and turn left. So I partnered up the students, and I had one act as the programmer, and the other act as the computer. The programmer was to tell the computer what to do but they could only use the commands ‘step’ (which meant take one step forward) and ‘turn’ (which meant turn one quarter turn left).

The first challenge was to get their computer to trace out the path of an L on the floor with their movement. They switched roles for the next challenge, which was to trace out a T. The next challenge was to trace out a square, and then I introduced a new commend which I called repeat. I asked the students, "How could you use the repeat command to make tracing out a square easier?" They had a bunch of ways of describing the command, which all boiled down to exactly what one student said which was "Repeat 4 times – Step then Turn." The final challenge was to trace out 4 squares connected to each other, and for this activity I asked them to double check their program by tracing it out using pencil and paper. It was interesting to me that none of the groups seemed to have any difficulty abstracting from taking steps on the floor, to writing those steps on paper. In fact, every group came up with a slightly different way of writing down the output of their program (many of them included arrows so that they could keep track of the path actually traced).

We then gathered together in front a projector, where I showed the students how to start the Turtle Art software, and showed them the Forward and Right functions. At this point, I got stuck! I had used Turtle Art in Ubuntu, which has a slightly different interface, and I didn’t know how to actually run my program! So we experimented together and played around with the buttons on the screen, making sure to make copious use of the help button, and eventually we discovered the magic wand together. Getting stuck here was a valuable lesson for all of us, because while I explored how to debug my problem, the students got to see my thinking process live.

Next, we had the students self-organize into pairs and get a computer out, and try out Turtle Art for themselves. The first few programs the students created were pretty simplistic, but fairly quickly the students learned how to create more and more complicated shapes. One of their favourite things to do was to use the Forever loop, and see the screen flickering as a particular square or other shape they had created was repeatedly drawn. I didn’t really have anything specific for the students to do with the program at this stage, as I thought some free exploration would be more valuable.

Group 2


Some of the students created complicated loops, and others used the commands to draw. This particular student, as you can see from their screen, had 4 different commands, which she learned how to alternate to produce the diagram above. So she hadn’t learned how to create a procedure to draw the figure above in one go, instead she had internalized what each of the commands did, and then used them as one would use a paint brush.

At the end of the sessions, the students gave it an enthusiastic thumbs up. I discussed the success of the two days with their teacher, and she was pretty impressed with the students ability to come up with representations of their own, and to create somewhat complicated figures within a few minutes of using Turtle Art. We are considering doing a longer unit next year related to the use of Turtle Art.

The popularity of the event was summed up by one student who told me "I give this activity an infinity out of ten!"


ISTE standards without references to technology

Read the ISTE NETS for students with references to technology to technology stripped where possible.


1. Creativity and Innovation

Students demonstrate creative thinking, construct knowledge, and develop innovative products and processes.

a. Apply existing knowledge to generate new ideas, products, or processes
b. Create original works as a means of personal or group expression
c. Use models and simulations to explore complex systems and issues
d. Identify trends and forecast possibilities

2. Communication and Collaboration

Students use appropraite media and environments to communicate and work collaboratively, including at a distance, to support individual learning and contribute to the learning of others.

a. Interact, collaborate, and publish with peers, experts, or others employing a variety of environments and media
b. Communicate information and ideas effectively to multiple audiences using a variety of media and formats
c. Develop cultural understanding and global awareness by engaging with learners of other cultures
d. Contribute to project teams to produce original works or solve problems

3. Research and Information Fluency

Students apply appropriate tools to gather, evaluate, and use information.

a. Plan strategies to guide inquiry
b. Locate, organize, analyze, evaluate, synthesize, and ethically use information from a variety of sources and media
c. Evaluate and select information sources and tools based on the appropriateness to specific tasks
d. Process data and report results

4. Critical Thinking, Problem Solving, and Decision Making

Students use critical thinking skills to plan and conduct research, manage projects, solve problems, and make informed decisions using appropriate tools and resources.

a. Identify and define authentic problems and significant questions for investigation
b. Plan and manage activities to develop a solution or complete a project
c. Collect and analyze data to identify solutions and/or make informed decisions
d. Use multiple processes and diverse perspectives to explore alternative solutions

5. Citizenship

Students understand human, cultural, and societal issues and practice legal and ethical behavior.

a. Advocate and practice safe, legal, and responsible use of information and tools.
b. Exhibit a positive attitude that supports collaboration, learning, and productivity
c. Demonstrate personal responsibility for lifelong learning
d. Exhibit leadership for citizenship

6. Technology Operations and Concepts

Students demonstrate a sound understanding of technology concepts, systems, and operations.

a. Understand and use technology systems
b. Select and use applications effectively and productively
c. Troubleshoot systems and applications
d. Transfer current knowledge to learning of new technologies


What you no doubt notice is that the only standard that requires the use of technology is the sixth standard, which in my opinion is the weakest reason to use technology. Technology is more than a tool, it shapes us, it changes us, it gives us affordances that are otherwise not possible without the technology. It is for these purposes that we should use technology, and our standards should reflect these purposes.

The first five standards are admirable goals, but none of them requires technology specifically, and when we attach the technology terminology with them, and label them digital literacies, we are sending the message that if "my school doesn’t use technology" that these standards are some how optional, and that they are only possible with technology.

This is the wrong message to send.