Teaching binary to 3rd Graders using the Socratic method
One day after a visit to the Computer History Museum, my SO and I got to see the live demo of the analytical engine they have there. We watched the gears turning and stopping to add up numbers, saw the complex mechanisms to handle carrying digits, and she asked me how this would work if it was binary and I just said "much more simply". Then she admitted that, even though she has been working as a developer and manager of developers for years, she never learned binary.<p>When we got home I got out a pad and pencil and got her to write down 0, then 1, then asked her, if you only had two digits, what would come next? Tentatively she wrote 1 0. THen I asked her to add 1 to it. We more or less carried on the way this transcript went, except instead of using aliens with two fingers I introduced AND, OR and XOR 'boxes' that 0s and 1s go in and come out. I hadn't planned any of this but by the end of it she was just about drawing the circuit diagram of a full adder with carry bit.<p>I'm sort of thrilled to see that what I was doing is precisely the socratic method. I love teaching, never really did much of it until I gave a course in Unix and shell scripting at an old job but for a week I had more energy at work than I ever did just programming or in meetings.