Wednesday, March 27, 2013

Summer Camps

A friend just told my wife about Computer Camps at the University of Washington, where I work. These are camps that offer a variety of different computer programming courses for children ages 7 to 17. The program doesn't seem to be offered by University of Washington, but rather just uses their facilities. The program is offered by an organization called iD Tech Camps that claims to be "The World's #1 Summer Computer Camp for Kids & Teens". I don't know anything about iD Tech Camps, but I am definitely willing to check it out if my daughter is interested.

So far summer camp plans for my daughter include a Woodland Park Zoo camp, a Campfire Camp, and a clay sculpting camp. I think a summer computer programming camp would be a worthwhile addition.

Tuesday, March 26, 2013

Do games count?

My two daughters are playing the twolivesleft.com game Cargo-Bot. The game requires users to come up with a series of functions to program a "cargo-bot" to move crates to a pre-determined pattern. In the past when they've played games like this the younger one gets frustrated because she wants to do it all on her own, and it all ends in a fight.

I've been explaining to them that this game is different, that the only way they are going to be able to solve it is by working together. One of them tries to figure out one function to solve part of the game, then the next one tries the function, and the keep testing and improving each others functions for completing the game.

So far it seems to be working. They seem to have real excitement over working together to complete a level in the game.

Found some help

So I've been frustrated with the lack of support and interest in teaching kids computer programming, or at least teaching elementary age kids programming. However there have been some exciting developments that might help me in my quest.

First, the elementary school my daughters attend was able to raise $23,000 at the school's PTA auction to bring iPads and WiFi to the classrooms. I admit the iPad might not be the ideal environment to learn computer programming, but there is CODEA, which I haven't fully explored, but it looks like a pretty cool environment to work in. They've written at least one pretty cool game using CODEA called Cargo-Bot that is designed to help teach some principles of computer programming. I mentioned all of this to my oldest daughters teacher whose class was the test case for using iPads in the classroom.

Second, I just found out that PluralSight is offering a couple of free online courses to help kids learn computer programming. The first is Learning How to Program with Scratch, which is the language I've been exploring with my daughters. The second course they have might be a bit more hard core; Teaching Kids Programming. The description says "Use this course to teach your kids to program with C#." I haven't viewed either of these courses, but we subscribe to PluralSight at work and I've used several of their training courses. The courses are very complete, and I look forward to exploring them with my older daughter.

EDIT: Just checked out the introduction to Teaching Kids Programming. It was developed by TeachingKidsProgramming.org which offers course ware to help teach kids programming ...as suggested by the name ;-) This course was developed was specifically for PluralSight, designed for parents to use in teaching their children (not necessarily teachers). It is designed for kids 10 and up, and they assume that it will mostly be parents who are developers teaching this so it uses Visual Studio and C#. Pretty Cool!

Thursday, March 21, 2013

The challenge of teaching YOUR children...

I've run into a problem, and I'm not sure how to easily get around it. My youngest daughter (6) wants to be involved in anything I'm doing with her big sister (9). The problem is that my youngest daughter just doesn't have the reading, math, and actually patience to really get started with computer programming. She quickly gets frustrated, and angry, and then threatens the technology.

With the goal of having a more focused time with my older daughter teacher her computer programming concepts, I've toyed with the idea of "teaching" a "class". As much as I would like to, I honestly can't really commit to volunteering at my daughters school right now to teach computer programming, my own job with computer programming doesn't give me the freedom right now to do that, but perhaps I could do something more ad-hoc with my daughters and some of her friends.

I did speak with my older daughters 3rd grade teacher. I had emailed her a link to code.org and asked her to watch the video. Then when I got a chance to speak with her in person, I asked her if the school had any programming courses available. She laughed then said that the school would need computers before they could teach computer programming.

Right now though my own job in computer programming is keeping me really busy and reminding me of this article, which makes it really hard to get motivated to teach programming.

Wednesday, February 27, 2013

Introduction to computer programming

Motivated from the code.org video, I emailed my oldest daughters 3rd grade teacher telling her about code.org, and asked what the school offered in the way of computer programming. Then followed that up with an email to my brother (who is also a Seattle Public School's 3rd grade teacher) informing him about code.org.

On my way home from work I tried to imagine what teaching my kids about computer programming might be like, how I would keep them engaged and interested (especially my 6 year old). Would this be something that I could get them excited about, or something that they would find interesting for 5 minutes then move on to playing with Barbies. I knew that teaching young children the concepts of computer programming would require starting with something other than Fortran 77, Basic, Java, C (all of my first programming languages) or even Logo.

When I got home my daughters were both sitting in the kitchen coloring, I asked them both to describe in their own words what they think their daddy does at work. After a few silly answers, I received answers along the lines of "help people with computers". I explained that I was a computer programmer, and I asked them if they knew what that was, again I got answers along the lines of "help people with computers". I explained that computer programming is making a computer do what you want it to do. I gave examples like iPhone games, making show videos, using it to play music...

Then I said I wanted to show them a new game on my iPhone: RoboLogoc. RoboLogic was one of the games mentioned on code.org for teaching computer programming. In the game you come up with a series of commands for a robot with the goal of getting around a grid. We mirrored my iPhone to the TV so both girls could both watch, and I explained how the game worked and then let them go at it. Before long both girls were very much into the game. I was able to use the game to explain to them how they can use functions for series of commonly used instructions. My youngest daughter would remove all instructions her sister had input before she would give it a try, saying that she wanted to do it on her own. I explained that in programming you often use what other people have done to help you accomplish what you want to do. I was also able to use the game to explain the concept of testing functions to confirm they accomplish what you want them to do (even if it doesn't let you complete a level in the game). After playing the game for half an hour I gave the girls a challenge: complete 3 levels in the game, and write down the instructions to complete those 3 levels on paper so that I can confirm it works. I said once they could do this, I would set up a computer that they could use to start creating with the programming language Scratch, then I game them a quick demo of what people had done with Scratch, and how they could create their own programs with it. They both seemed excited. We'll see how it goes.

Tuesday, February 26, 2013

So it begins...


I used to think I began computer programming as a second (or third) career. I used to think computer programming was something I discovered I could do and enjoy doing after deciding that I didn’t care for a career as a technical writer, and that I was really bad sales man. However, if I think back to my relationship with computer programming or literally getting a computer to do what I wanted it to, I think I can say my earliest experience was with a popular toy (at the time at least) known as a Big Trak. Later my parents furthered my interest with the frustratingly slow Timex Sinclair 1000, and eventually the super cool, original Apple Macintosh 128K. Inspired by games like Zork, I would write simple text based computer programs on that Mac for my friends, or even write my own version of Pong.

When went to college, computer programmer was not really a commonly known or accepted profession. Instead I was going to become a Mechanical Engineer. The problem was that I was not so good with math beyond calculus, and the computer programming that they wanted me to learn (something called Fortran 77) convinced me that I never wanted to have any career that involved that level of understanding of computers. I changed majors, and graduated with a degree in English Literature. It took a while for me to find my way again, but several years later I found my way back to college pursuing a second bachelor degree, this time in computer science.

Flash forward to present day: I work at the University of Washington for The Graduate School. With a team of two other brilliant programmers and an excellent team of tech workers, I work to simplify and automate the process of admitting and graduating graduate students at the University of Washington. However, I had never considered what I did as anything special, as something I could proudly tell my daughters about. I love my job, but I didn’t really talk about it, because I assumed everyone else would think what I did was boring. Then today I read about something called code.org, and my view about what I did for a living changed. Now I need to teach my daughters computer programming.