All right, what he said. I want to talk today, a rather sensational topic, the six-year-old hacker. We're obviously not talking about first-graders doing penetration testing or anything like that. This is my six-year-old hacker. There will be no first names, because everyone you'll see in my presentation, and if there are comments in the code that's on the CD, all those names have been changed to protect the innocent. What we are talking about is the way we educate, or the way we're using computer technology in elementary schools nowadays, and some of the shortcomings that I've come up against with that. I feel like sort of a crotchety old man. I don't think I'm that old, but I sort of look back at when I was a youngster and say, gee, when I was back in the day... Anyways, the way this whole thing started was one day after school, I was asking my daughter, so honey, what did you do today in school? And she went through the normal list of things, and then she said, ah, and then we worked on the computers. And I was sort of surprised, being the small school that it was, I didn't even at that point realize that they had a computer lab. I said, oh, really, what did you do? She said, well, we did Mavis B game. I was like, okay, yeah, that's cool. You should be learning how to type. Then she said, and then we played Math Blaster. I said, oh, God. No. No. So I very politely introduced myself to the person that was doing computer classes in the afternoon and offered my assistance to sort of bring the computer lab into some sort of consistent state of repair and then started insinuating myself into his lesson plan and after about three months asked him, so what would you think if I took on some of the third graders and did some programming with them? And he sort of scratched his head and said, well, I don't know, do you think that's possible? Really the thing that I see a lot, I work as a networking computer consultant and a few of my clients are school systems, is I see a lot of underutilization of technology in the schools. I see a lot of computer labs that are used for all sorts of very interesting purposes that I'm not really sure are central to the educational experiences of the children. There's a lot of what they call computer-based instruction in the schools that really has nothing specifically to do with computers. That's fine, a computer is a tool. There's nothing specific about a car that necessitates you using it to get to work. Some people commute by bicycle, some people have a subway, whatever. Your car is a tool. If you use a computer as a tool to educate kids, so be it. It doesn't have to be about the computer. But what I do see is I see a lot of computers in schools that are there just because somebody was able to get a grant to put them there. And this kind of disturbs me because no one is putting any real thought into what the computers are used for and the power that they could be applied to in the curriculum. I do see a lot of good use of computers in the school systems given that we're all going to be growing up with these things. Keyboarding skills are great. This interweb thingy is wonderful. I see a lot of bad orientation towards the Internet and research on the Internet. But done right, it's a wonderful thing. And it's a wonderful thing when a 7-year-old or an 8-year-old does a report for class and realizes that they can go back and change it without rewriting a whole page of handwritten text. I can't tell you how many times I hear, do I really have to retype all of that? There's also an awful lot of really horrible stuff that computers are getting used for in the schools. I see a lot of edutainment and drill and kill software, Math Blaster, things like this, that I don't see what the purpose of this software is beyond operating as an educational surrogate, replacing valuable time that the teacher could be spending with the students. I see an awful lot of really ugly use of computers in the schools. In one of the two states that I work in, and I shall remain nameless for the time being, some of the educational standards in middle and high school actually specify proficiency in Microsoft Office applications. They don't say that you should be able to create a presentation for the purposes of influencing or informing others. It says you need to be able to make a PowerPoint presentation. And it specifies PowerPoint. I see a lot of bad research done, especially at the junior high and high school levels. A lot of plagiarism and very little education as to what is proper citation and stuff like that. And I also see some really weak keyboarding training. But that's neither here nor there. Also, the environment in which the computers are used is less than ideal. We have these computer labs. Everything in the labs is locked down, and the students are encouraged not to change anything on their computers. From an instructional point of view, and from the limited knowledges of many of the people that are in charge of running these labs and these experiences, this is appropriate, because should the students get into something inappropriate or should they change something, they don't know how to deal with it. Also, I see a lot of computer use in after-school programs. I'm just going to gloss through this. Many of the same objections apply. Okay. Sorry. So, I was considering... I was thinking back to my childhood, or to my teen years, and thinking, you know, what was it about the early computers that really fascinated me? You know, my first S100 bus computer, and then later my first TI-44 and my Trash 80, the Wang that we had at the high school. And I really got jazzed on the idea of taking this computer that, when you powered it on, did nothing. It provided you with a prompt, and that was it. And I thought to myself, well, you know, what is it that the kids now are missing that we might be able to provide for them? And I was thinking back again, and I thought, you know, a lot of what I learned on the computers was self-taught, and a lot of it had to do with, okay, the computer doesn't do what I want it to do. I'll make it do it. So, I decided that what we were going to do is teach programming. And I started with third-graders. Last year, I expanded that to second-graders. And this coming year, I'll be working with first-graders. And the purpose behind this is, I think that this provides the ability for kids to really explore the environment that they're in, something that they're given very little opportunity to do in most educational systems. I'm lucky in that my children go to a Montessori school, and this is integral to the curriculum, and was very lacking in their dealings with computers. So, I was trying to bring this into the general philosophy of what was going on in the rest of the school. So, when I was challenged immediately by the directors of the school that it was ridiculous to try to teach computer programming to third-graders, I said, no, really, I do think I can do it. In fact, it's been being done since the 1960s. So, I've started these computer classes. I take six to 11-year-olds, and I try to teach them that when you turn on the computer, it's not just for running prepackaged applications. It's not just for gaming. It's not just for exploring the web. And it's not just for that boring stuff that your parents do, like spreadsheets and paying the bills and stuff like that. The tool that I chose to use is Logo Programming Language, written at least in part by Seymour Papert back in the 1960s at MIT. And there are some nice versions of that that run under just about any platform you can imagine. UCB Logo runs under Mac and Linux, and there's MSW Windows, which is a derivative of UCB Logo, that runs under Windows. One of the things that you learn immediately when you sit a kid down in front of a computer and teach them the very rudiments, even the first three or four commands that they learn in a programming language, is they get really jazzed on the fact that they just made the computer do something. That they typed in some words, and the computer followed the instructions that they gave it and did something. They start to learn that this thing that they've only really thought of as a game console or an appliance really might have some other possibilities. The other thing that I did is, after I exposed the kids to programming in the formalized classes, I have an after-school program that they have named the Geek Dojo or Otakudo. My apologies to any Japanese speakers. That is a voluntary program open to all ages. We have 5-year-olds through 13-year-olds currently attending. It's a self-selecting program in which the students set themselves goals and work with me or work with older students to try to achieve those goals. Most of those are programming-oriented goals, but a lot of them have to do with more abstract stuff. A lot of the kids are interested in cryptography. A lot of them are interested, especially when you start to get to the 10- and 11-year-olds, into computer security. And a lot of them are interested in more mathematical pursuits that are more or less related to geeky stuff. I also run a summer school which is patterned after the programming classes, but is concentrated on a specific project for two weeks. The major thrust of all of this is to awaken some of the inherent hacking spirit that I think naturally exists in all children and to cultivate it. Because I think that a lot of this in our current environment is not being encouraged and a lot of kids that would develop these interests are in fact just going home and playing Xbox and not really realizing what other things there are out there. So we have a motto at Otakudo. It's fun to have fun, but you have to know how. So what sort of results am I getting? We start from the very basics in the programming class. I talk about immediately what is a program, why do we do it, and in fact when we start talking about programming we don't even deal with computers. Here's the first exercise that I give the students. They have to look at this picture and write me a set of instructions so I can select the right blocks out of the box and build this object for them. Obviously, hilarity results. And this actually takes an hour before they can program me properly to build this object. As I said earlier, I use the logo programming language, which is based on what are known as turtle graphics, which is important because this is accessible to young children because the graphics are all relative motion graphics, or at least they are at the beginning. You have a sprite on the screen that for historic reasons is referred to as a turtle that follows commands like forward, right turn, left turn, pen up, pen down, things of this sort. Most six-year-olds, and the majority of five-year-olds, can write you a simple program to draw you a square within the first 60-minute class given a collection of 40 commands. And here are some of the results. This is actual code written. None of the code up here is written by anyone older than seven years old. I have to admit, I did some indenting for clarity on two of the programs. The person on the left, again, who shall remain nameless, is the namesake of the talk. She is my six-year-old hacker. She is an amazing cryptographer. She is now seven and cracking double replacement ciphers on the basis of frequency patterns and things like that. On the right, you see some of my older students who are actually, in this photograph, constructing the web proxy that their school uses, of course, with some guidance. Other projects that they've done is that they've programmed their own games, worked with the Lego Mindstorms, and one of my particularly math-oriented kids really became fascinated with geodesics and geodesic periodicities. I tried to integrate this with their other class work. They did a semester on crystals in the upper grades, the fourth and fifth grades, and they worked on programs to create octahedral crystals. We didn't get to the tetrahedral crystals, unfortunately. And even within the last class, I'm afraid I don't have anaglyph glasses, but they even did three-dimensional crystals for us. If anyone's interested, this is sort of the progression of the skills that I've found empirically that various students are able to grasp at various ages. Some of these are ranges. Yellow sort of denotes when I can expect the most gifted students to pick up a concept, and green, when I can expect an entire population of students. I want to just show you some quick examples of some code that some of my kids have written. This was actually written by a five-year-old class after about three days of work in a summer class. Okay, not working. Maybe not. Okay, I'm going to just go on to some more advanced examples here. Okay, one of the challenges that I put to one of my programming classes, and this was a group of fourth graders, was to get their turtle, which is this triangular sprite down here in the corner, to navigate a maze, a simple maze. And this was their first attempt, which did a fair decent job at first. They figured out that if you bumped into a wall, you needed to back up and turn. But obviously, there were problems. The second attempt, they figured, okay, well, if I always turn the same amount, then perhaps that's going to get me stuck. So this time, I'll try a random turn. And believe it or not, if you wait long enough, it's rather unsatisfying. But yes, in fact, your turtle will navigate to the end of the maze. So it took them about four one-hour classes to finally figure out the excruciating 15 lines of code that was necessary to create a wall-following... Whoops, I got the wrong one. Let's just hold that. Here we go. That followed a right-hand rule. There's a false start, but as you can see, it finally does set off in the right direction. And as you can... I'll just let that go. And as you can see, it will reach its destination being the end. There you go. The other things that we've done is, as I said, I just have just a minute here. I do want to leave some time for questions. No, in fact, I don't have time to do that one. But they have done some simple side-scroller, sort of like old-school 8-bit side-scroller games using Logo, which was very impressive, the group of four students. One of the interesting things... I was listening to talk two speakers ago about women and hacking, is that actually at this age that I'm working with children, especially at the younger grade levels, third and fourth grade, there is a real curiosity, a real thirst on the part of the girls to get involved in this stuff, to manipulate the computers, to have the power to do this stuff over the computers. There are some differences in the projects I see them choose. Boys love the shoot-em-up games, love to program games, while girls love to do sort of interactive story-based games, to program interactive story-based games or movies, or to do things, mathematically-based challenges, such as cryptanalysis and stuff like that. But what I really want to give you as the takeaway message here is that this is a really different way, at least in my experience, of computers being used in the elementary schools than we've seen recently. There's been a real dumbing down of the computer lab from when I went to school. And this gets back to the idea that the computer is a tool not only to advance your education and to get further information off the Internet, but is a tool for exploration in itself. The kids really become very motivated and very self-driven in these projects that they come up with. And most of the projects are the ones that they choose for themselves. They, even as they get older, really get into things like hardware maintenance and taking responsibility for the computer environment at the school. Right now, of course, with my supervision and making sure that everything is proper and well-designed, my older students, and we're talking 12 and 13-year-olds, have taken over responsibility for maintaining the workstations and building and installing, if not maintaining, proxies and firewalls and things like that. I think what I really want as the takeaway message here is that I'd really like to continue a discussion with this with anyone that would like to contact me afterwards. I really want to know how we can expand the reach. I find that school systems don't really have the resources to do things like this unless they have rather remarkable teachers involved. Not saying that I'm remarkable, I just happen to have the free time. There's a real problem in using this sort of model in a public school. As I said, I did this in a private Montessori school. In the public schools, at least in Illinois and Missouri, there is such a demand to teach to the test, even at the elementary and middle school levels, that there is an enormous reticence to add anything extra to the curriculum. And that brings up the question, well, do you write a curriculum or do you not? I think possibly one of the venues of this might be taking it outside of the schools, but I do like the immediacy of having it within the educational environment of the school. Also, I'm beginning to explore the possibilities of this sort of approach with some learning disabled children that we have at the Montessori school that simply have been brought into the program later as their abilities have seen fit, but I actually think there's a real possibility of working with them earlier. And again, working possibly with even younger hackers, of course. There's the question of spelling and typing. These are a few of the people, my wife and daughter, who really got me involved in this. My wife making it possible to quit my day job to pursue my consulting and teaching. The administrators of the school, Jane and Rod Connell, who gave me the opportunity to use their students as a guinea pig. And many of the influences on what I've been talking about. Here's my contact information. I'm not even sure I've left time for questions. The question was, how long have I been doing this and does it correlate to the data analysis? I have been doing this for two and a half school years. I started in January. And to call it data analysis is really... yeah. That's very empirical data. That's very qualitative data. I have been keeping records, which could be analyzed in more depth, but those are really impressionistic data that I was showing there. Right. That's a really good question. What does teaching children Logo as a programming language prepare them for? Nothing. What it does is it's a tool. It's a tool sort of in the same way that computers are a tool. It gives them the foundations of a programming method. I would not recommend Logo to anyone as a programming language for any sort of large project. Even in the game design, when my older students came back for summer class this year, and we started working on our second game, the consensus was, gee, the game we made last year really sucked. And that was largely a function of the limitations of Logo. I will say, however, that it teaches them the fundamentals of programming, programming structures, things like that. I have kids writing binary search trees in Logo, things like that. And I have my older kids working in Java now. I think I'm getting kicked out here. Okay. Okay. Any more questions? Oh, I'm sorry. Go ahead. That's correct. That's absolutely right. If anyone didn't hear that, he was saying that schools don't have computer teachers anymore. They usually have a technology coordinator, which is the fancy word that most schools use for it, who is half technician and half administrator. And this is what I'm trying to get back to. In the public schools, if anyone has any idea how to convince public educators that teaching computers as computers is still of value. Yeah, I'm afraid so. Thank you.