usable in any place a human can be used

20100318

kids writing code

[caption id="attachment_810" align="alignright" width="311" caption="you doody head you forgot to clean up your EventStruct!"]3 children at a computer[/caption]

Last night I went out to get some dinner and as I sat in the drive-through waiting for the unbridled joy that is Cain's chicken I listened to the radio. WOSU's All Sides had a piece about child poverty and mentoring. It was interesting and thought provoking, one of the guests said something that rang true and made me think. (Paraphrasing because the audio is currently unavailable) He started to realize that the kids were excited to have him come talk to the class every week, not because they were interested in his stories about the Post Office, but because they wanted to know that someone cared about them. It was a powerful thing to remember, that children need to know that someone cares for them, and that not all children are that lucky.


In writing this blog one of my favorite memories is doing the research to write the teaching post. It reminded me of the heady days of my youth spending hours inside of the amazingly good QBasic help file trying to get something to work, stumbling and bumbling, put beaming with pride and a giddy happiness when I finally got the program to work. These days the amount of programming languages geared towards teaching have only expanded, and systems like Alice put LOGO's turtle graphics to shame (although I still love that LISP-laden turtle).


This started the old gears turning in my head, and although this thought is pre-pre-alpha, I thought I would get some feedback and just jot down what I'm thinking. What if there were an after school program for elementary school aged children where IT professionals donated their time and talent to helping kids learn how to program. Children need mentoring, the IT community has a wealth of talented and caring people, let's put these two things together and see if we can do some good. The logistics of this are a little daunting, but I want to lay out the reasons why now is the right time for just such a program.


Programming is the new literacy. Don't believe me, here is an article entitled Programming is the new literacy. As we move forward into an increasingly wired future, programming, scripting, mark-up, are going to become skills that are normal to have. Children are already more "plugged-in" then ever before, the benefits of understanding the machine they've been using since they were in diapers is apparent. As the information economy continues its march into the 21st century, people will need these skills. From a simple formula in an Excel Spreadsheet to whipping up a ruby script to do batch processing, these will become the differentiators of tomorrow, helping people achieve.


Hardware has never been more accessible. Moore's Law is a thing of beauty, I just bought a more than capable HP refurb for $150 to act as a media server. OLPC has shown that putting affordable computers into children's hands is possible, and it looks more and more likely that school districts in the Industrialized Nations will be following suit in the next decade or so. Companies routinely donate their old computers which means that if $150 is too much (which it is for a lot of low income families) then you can get a donated computer free. Children can also access computers at libraries and schools for free.


Software has never been more accessible. The number of languages specifically targeting teaching has only been growing. If you haven't already, go read the teaching post, it is a round-up of just a handful of the neat and nifty software meant to help kids learn to program. The learning curve has never been gentler, you can go from a learning language like Hackity Hack (which is based off of Ruby) to the full Ruby language fairly easily, and from there you can explore the whole world of Ruby development from Rails to Unicorn and back again.


Programming is about more than computers. Although the immediate goal of learning to program is to instruct a computer in how to perform a given task, the side benefits are immense. Programming teaches children a structured way to solve problems, learning about control structures teaches the ideas of Boolean Logic, writing formulae increases and reinforces the understanding of mathematics. Programming is also empowering, being able to sit down at a keyboard with nothing more than your wits and a good idea and turn it into something real is an amazing feeling for a child. Programs let children learn and explore, make mistakes and figure out how to solve them, with gentle encouragement and careful guidance a child can turn their ideas into reality, and that's a powerful lesson.


Where to go from here? I'm not exactly sure, the logistics of setting something like this up are a little out of my league. For right now this is just a good idea, I'm at step 3 of the idea ladder. Leave a comment, let me know what you think, if you are a parent, would this kind of program interest you? If you are an IT professional, would you volunteer at such an organization? If you are a business owner, would you support such an organization? If you are a child, would you like to learn to program?


I'm not sure where this idea will go from here, but I'm excited to find out.

6 comments:

  1. Kevin Schumm3/18/2010 6:38 AM

    I don't have anything of great value to contribute here apart from agreement. I think this would be a fantastic idea and could serve up a great amount of good in the community if something like this took off. I'm not going to lie.. sometimes I still get a feeling of giddy happiness when something I write works :)

    ReplyDelete
  2. Excellent idea, I'd love to help but am unable to commit to anything for the forseeable future. Some quick lmgtfy work (;p) got me these folks who may have some insight/be able to help:

    http://www.kidscanprogramtoo.com/index.html

    http://www.hanselman.com/blog/TeachingChildrenAndKidsToProgramTheOldSchoolWay.aspx

    http://advice.cio.com/esther_schindler/teaching_kids_to_program

    Good luck, and let us know where you're hosting this project if/when you get it up and running!

    Jon

    ReplyDelete
  3. Shawna aka Kevin's girlfriend :)3/18/2010 8:51 AM

    I think it sounds like an awesome idea, and I'm sure a lot of kids would enjoy it as well as the programmers who volunteer their time. Just imagine all the creative juices that could abound from such interaction.

    Plus, it would give the kids from low income families, some of whom have brilliant minds, opportunities they can't get elsewhere because of costs, e.g. http://www.internaldrive.com/locations/oh-summer-camps-ohio-computer-camps/the-ohio-state-university-columbus-area/

    Good place to start could be here? http://www.afterschool.gov/docs/about.html

    ReplyDelete
  4. Brilliant idea Matt. Let's start with just ourselves, and then see how it goes from there. We could have an easy to find website, and a way for teachers to have us come in for a "guest work session". We may need to coordinate with fun raising to make sure the entire class can participate, maybe begin with pair program (sometimes must best thinking is when I'm not driving the keyboard down in the data).

    Time is of course the problem for me. We need a powerful community leader, but I'd gladly volunteer to teach a class or three.

    ReplyDelete
  5. There are a few initiatives in India by IT companies in collaboration with NGOs under Corporate Social Responsibility initiatives.
    But most of them are on the lines of educating the children about PCs and using them for day to day tasks like browsing, documentation and playing games.
    Your idea of teaching the kids about programming, especially ones from the lower strata, is a good idea which I think is not yet being done here.

    ReplyDelete
  6. Sounds like a good idea along the lines of GiveCamp. I participated in the Columbus Give Camp last year and it was very rewarding both professionally and personally. I'd be willing to help promote and/or volunteer, but agree with your previous post about needing to refine the idea and set some clear expectations.

    ReplyDelete