That was interesting. It was also bizarrely coincidental. My son is also in third grade, and I also explained binary to him today. During the conversation, which arose adventitiously, I found myself contemplating the socratic approach -- so the author's considerations resonated.

That said, I think the author's idea of 'only asking questions' is perhaps overly rhetorical. If you read the dialogue, he clearly injects statements without questions, and he also asks questions of the form, '<STATEMENT>, right?'. I have no problem with that, and found myself doing the same for the same reasons. My point is only that I think there is a 'truth' behind the approach which is better encapsulated than 'by only asking questions'. I think the more important consideration is that there be true dialog.

Just because it's such a completely weird coincidence, and because I think it demonstrates my point, I'm going to try to write out our conversation from memory. The whole thing probably took about ten minutes. As you'll see, it transitioned smoothly from questions my son was asking me. I think that's important, and it's why I think an asymmetrically 'socratic' emphasis on only asking questions is also stifling.

S: Why does the computer go faster after you restart it?

Me: The likely possibility is that there are memory leaks.

S: What is a memory leak?

Me: Imagine someone who got a new plate every time he had another serving of potatoes, instead of putting more potatoes on the same plate.

S: Okay.

Me: I guess he would make a lot more dishes than someone else.

S: I see that.

Me: Now imagine you had this guy over for dinner every day and you never did his dishes.

S: [Laughs]

Me: Pretty soon, you would run out of plates. You're supposed to reuse your plate within a meal, and you're supposed to wash the dishes between meals. But if you don't, you can run out.

S: So what does this have to do with computers?

Me: Computer programs are supposed to clean up after themselves too, but if they don't do it correctly, then they are like weird guests who make too many dirty dishes.

S: What are the dishes?

Me: Computer programs use memory. Remember we've talked about RAM, and different computers have different amounts of RAM? Well, when a computer program needs to hold some information, it asks for memory from the operating system. This is called 'memory allocation'. Asking for memory so you can store some information is like asking for a plate for your potatoes.

S: Okay.

Me: Normally a computer program doesn't ask for too many plates, and it lets you clean them up when it's done, but not always. That might be why restarting speeds things up. Sometimes you have to kick all the guests out and do the dishes.

S: Okay, so how much memory does a program ask for?

Me: That depends. How big are your files [that we were transferring]? A few K? K stands for kilobytes, so that's a thousand bytes. Actually it's 1,024 bytes -- but memory might be allocated in smaller units too.

S: What's a byte?

Me: A byte is eight bits.

S: What's a bit.

Me: It's a one or zero. Well, actually it's one piece of information, like a yes or a no. But it works out very well to call it a one or a zero, so we can do math with it.

S: How does that work?

Me: It's just like normal math, except instead of having ten numbers, you just have two: one and zero.

S: So you only have two numbers? What good is that?

Me: No, I mean you only have two digits, instead of having ten digits. You still have all the same numbers.

S: I don't understand how that works.

Me: Well, if you just have one bit, you have either a one or a zero. How many numbers can that be?

S: Two.

Me: What if you have two bits, or two digits, each of which is either a one or a zero. How many numbers now?

S: I don't know.

Me: Think about it. What if you have a one then a zero? [Note, we are in the car, so we can't write anything down.] What number would that be?

S: Ten.

Me: Yes, in base ten -- which is what we call it when there are ten digits. But we don't call it that in base two, which is what we call it when there are two digits.

S: What do you call it?

Me: TWO!

S: What!?

Me: Think about it.

S: I don't get it.

Me: How many two-digit numbers are there in base two?

S: Two zeros. Two ones. One zero. I'm not sure.

Me: What about one-digit numbers?

S: One and zero. Two numbers.

Me: Right, so can you combine those two?

S: I don't understand what you are asking me.

Me: Can't you create two-digit numbers by adding a digit onto all the one-digit numbers?

S: Sure.

Me: So can't you create two two-digit numbers for each one digit number? [I feel guilty for leading him so much, but hey, I'm arguing here against overly rhetorical socraticism.]

S: [Pause followed by evident lightbulb.] Yes, so it's four!

Me: Yep, you can represent two numbers with one binary digit, and four numbers with two binary digits. How many numbers can you represent with three binary digits? (Binary is another word for base two.)

S: Eight.

Me: Because eight is two to the third power.

S: No, four.

Me: What?

S: Two times two is four.

Me: Wait, let's go back. Two times two is four. That's two squared or two to the second power. Two times two times two is eight. That's three twos multiplied together. That's what 'to the third power means'.

S: Right, sorry, I got confused.

Me: So how many numbers can we represent in four binary digits?

S: 16.

Me: Because 16 is two to the

S: Fourth

Me: Right. What about two to the fith, five binary digits?

S: Thirty-two.

Me: And six binary digits, two to the sixth?

S: [Quickly] Sixty-four.

Me: And seven binary digits, two to the seventh?

S: [Quickly] One hundred twenty-eight.

Me: And eight binary digits, two to the eighth, which is one byte?

S: Oh! Let me figure this out. [Pause then triumphantly,] two hundred fifty-six.

Me: Correct. So a byte can be one of 256 numbers, expressed in base two.

S: I get it.

Me: Do you? Okay, so how would you write one?

S: One.

Me: What about two?

S: I can't.

Me: Why not?

S: Not enough numbers.

Me: But we just went through this. There are plenty of numbers.

S: But this part is too confusing.

Me: Normally you only have ten digits, but you can write numbers much larger than ten, right?

S: Yes.

Me: So when you write numbers down, there's a trick, right? [See, I'm doing this [<STATEMENT>, right?' thing too.]

S: Yes.

Me: Why is eleven eleven? It's a one in the ten's place plus a one in the one's place, right? You know about the ten's place, right?

S: Yes. So…

Me: So in binary, there is no ten's place because there are not ten digits. There are only two digits. So instead of the ten's place, we have a two's place.

S: Right! So it's one one.

Me: Yes! Instead of having a ten's, hundred's, thousand's place multiplying by ten every time, there's a two's place, a four's place, then what?

S: Eight, sixteen, thirty-two, sixty-four.

Me: Correct! So do you think you understand this now?

S: I think maybe I do.

Me: What is one one zero?

S: One in the four's place, plus one in the two's place equals six.

Me: Okay, how would you write seventeen?

S: [Long pause.] One in the sixteen's place plus one in the one's place.

Me: One, zero?

S: zero, zero, one.

Me: I think you do understand.

S: So how does the math work?

Me: You can add and multiply them just like normal numbers, but we probably need to write that down.

S: Okay.

Me: There's also a trick for negative numbers that computers use. It makes subtraction work like addition.

S: How does that work?

Me: It's called two's complement, but I can't remember the details well enough to explain it correctly in the car. Let's look it up later.

---

Although I quibble slightly on the value of what I'm calling rhetorical socraticism, my main point is agreement. It's just a remarkably weird coincidence that a fairly similar discourse (teaching binary to a third-grader through investigative dialog) would have come up in my daily life today. That's the real main reason I wrote it out while it's fresh enough that I remember most of the details.

I am not a school teacher, but I am a parent -- so I'm more concerned with the issues involved in communicating with a single individual (at a time). The reason I think a more symmetrical approach is probably most reasonable is that information needs to come from somewhere. Why not provide it in as appropriate a form as necessary, and exactly at the point of need? Otherwise the 'socratic' teacher has to be an outsider to the process who swoops in to work magic on the vessels which have been primed by the faceless dead fact-giving of the their non-socratic counterparts.

From that perspective an emphasis on the 'question-asking' side of what might be a more balanced whole is understandable, though. That orientation is a useful counterbalance to the usual approach, even if it can't possibly (even in theory) replace it completely.