How many computers is enough?

I found this interesting article that talks about the different ways that teachers use computers. One of the things it mentions is that most teachers think that the right ratio is one computer per student. Apparently if you get a group of students sharing a computer they start to talk about other things. I must admit that I've seen that myself. But I wonder if 1:1 is really best for teaching computer science, specifically programming.

One of the ideas behind "extreme programming" is pairs programming where two programmers work on the same computer at the same time. I think there are times when having each student work on their own computer is great. At the same time, pairs programming is one of those things I experimented with briefly as a teacher but would like to do more with. Have any of you used paired programming in your assignments? How did it go?