Saturday, December 13, 2014

Hour of Code is Underway

This week is Computer Science Education Week and many schools throughout the country have been participating in Hour of Code and thus I have been getting lots of questions from my friends on what resources are good for learning how to computer program.

Fortunately there are lots of wonderful resources out there. Unfortunately learning to code is intimidating and complicated and it is easy to become overwhelmed. Many people have a specific idea of what they want to make but then realize that they are going to need a lot of background knowledge before they can even begin to think about implementing their idea.

The resources are, the site that is the center of the Hour of Code week, are great and there are easy to step through lessons. But many people and children have a hard time making the connection between the visual drag-and-drop language provided on and "real" text based languages like Java, Javascript, Objective-C, etc.

Alternatively if you pick up a learn-to-code in language-of-your-choice book, almost always, it is complicated and makes an assumption that the reader already know something about computer programming. Essentially I have found that the materials currently available, neglect to explain clearly some of the most basic concepts of computer programming and thus create an unnecessary hurdle for the beginner.

Over the years I have been reading information on what makes a person successfully learn and/or struggle to learn computer programming and the two things that stuck out for me are:

1) People who never master the ability to write code, never grasp what variables are and how they work. Since variables are the most fundamental building block in writing a program, this is a huge problem. It is also very understandable because it is typically a topic that is breezed over very quickly.

2)  People who are successful coders do not dwell on trying to find meaning where it doesn't matter. Computers simply follow a set of rules and it doesn't matter if the rule looks like gobble-dee-gook to a person. When a computer sees a specific word/letter/symbol etc it does whatever the associated rules are for that word/letter/symbol are. Often the original meaning or intention behind the word/letter/symbol is no longer valid or relevant. Some people have a hard time getting over the meaninglessness that is frequently found in computer programming languages.

Thus when my seven year old said that she wanted to write "real" code I didn't use any prepared material and simply took out a white board and started explaining very simply what variables were and how they are used. I wasn't sure how much she would be able to grasp as her math knowledge is pretty limited, but amazingly she understood and started writing code and making her own simple programs. We continued learning about if statements and looping structures. I have also started teaching weekly lessons in her second grade class to groups of six or seven students at a time. In starting simply and explaining thoroughly the kids have been able to understand and write code in "real" text based programming languages.

Thus confident in my ability to explain these concepts I have started making a series of videos that are designed to fill in the missing information. The videos are designed for beginners who are planning on taking a computer science course, or those who want to learn a specific language but get overwhelmed at the books they have picked up. The videos are also good for kids either before or after they have worked through the lessons on to help connect the relationship between visual programming languages and text based languages.

One thing to keep in mind is that learning how to code is similar to learning how to write or draw.  It is something in which there are a wide range of skill levels and in which mastery takes years of practice and study.

Here are the first few videos in the series. The whole series will be released as an app and/or website. If you want to be notified when the full product is completed you can sign up here. I will not sell, rent, or trade your email address. I will only use it to notify you about the status of this project.  I am estimating that the final product will priced at $10.

How to Create Variables

How to Change Variables

How to Name Variables

An Example Program that Creates and Changes Variables

In the meantime here are other good resources for learning how to code: - This is a curriculum that uses a visual programming language (ie a drag-and-drop language that you don't have to worry about syntax errors), and helps develop the ability to think logically and use programming logic structures.

Scratch - This is another visual programming language that has been around for quite a while and allows you to create programs via a website. - A website that allows you to run code via a website, meaning  you don't have to go through the complicated steps of installing a development environment and thus very nice for classroom environments.  I think Lua is the best language to use in this environment.

w3schools - Lessons and tutorials for web programming.  They also have an interactive display that allows you to write code and see the results directly from a browser.

Floors - For a free, easy lesson in video game design there is an app called Floors that lets you create Mario brother style video games by drawing the levels on an iPad.

Monday, October 27, 2014

Kindergarten Math and Literacy App Bundle

With the release of Learn to Read I created a kindergarten app bundle which has the Learn to Read app as well as the Kindergarten Pattern Completion app.  It is neat because both of these apps have a pattern recognition theme.  The math app is obviously a pattern completion game, but the reading app also is using pattern identification to pick out similarly spelled words.  The bundle gives you a dollar off discount.  Enjoy!

Wednesday, October 15, 2014

Learn to Read is Available for iPhone and iPad

I had started working on a port of this app over a year ago, but got distracted and never finished, but I had a customer email me begging for an Apple version as soon as possible.  I hadn't got as far along on it as I had hoped, but I did have enough time to get it in working order and release it.  I also added some cool new features (that will be included in the Android versions as well) including a new animation that is displayed when the correct answer is tapped.  
The other main new feature is one that I find very intriguing.  I came across a website of a person who had created a free font called OpenDyslexic that has been found to be easier to read by some people who have dyslexia.  I figured it would be a good option for a Learn to Read app and I am interested to hear if any children do benefit from the different font.  

Tuesday, September 23, 2014

App Bundle on the iPhone and iPad

Apple released a new feature where you can bundle apps into groups and sell them at a discount.  I created a bundle of the two math pattern game apps, so you can get them both for ~$3.  Enjoy!

Monday, June 30, 2014

Road Trip Tips With Kids

We set off for a road trip from Seattle, WA to Los Angeles, CA a couple months ago.  We did two 9 hour legs to get from Seattle to Los Angeles.  On the way back we did a 6 hour trip from Los Angeles to Monteray, and then we did a 14 hour trip from Monteray back home.

My kids are 4.5 (Allie) and 7 (Selena) and having mobile devices was extremely helpful throughout the trip. They provided such a variety of activities that we were never bored.

We had an iPad, an iTouch, an iPhone, an Android Note2, and a Win 7 phone and a Kindle e-reader for devices.  Unfortunately we had no car chargers which was kind of a bummer.


We purchased Frozen, and one season of Wild Kratts from Amazon.  Amazon's service is nice because if you buy video recordings you can download them for offline viewing and they support multiple platforms. Unfortunately and ironically they don't support Android devices unless it is their own Kindle Fire.  This was a problem because I could fit a lot of content on my phone (the Note2) because of its micro SD card, and the battery lasts a long time, but my phone isn't supported so we were left with the Apple devices.

I could fit Frozen on the iPad, and I put all the Wild Kratts on the iTouch.  The iPad's battery held up really well, the iTouch's battery only lasted a couple hours.

Books on "Tape" -
The Overdrive app via the library allows you to listen to lots of books.  Floyd and I listened to Memoirs of an Imaginary Friend.  Selena had Guardians of Gahoole on the Win 7 device.


Music is pretty obvious on any device.  Allie and Selena liked listening to the Frozen sound track and Allie really likes the Fresh Beat Band.

Games -

We download Road Trip Bingo, and all three of us were able to play along on our own device. Unfortunately once we got out in the city many of the things were harder to find.

We had the app Toontastic on the iPad and we took turns making up a story and animating it via the app.

Kindle -

Driving through California after Redding is a long straight shot, which makes reading in the car much easier since their is not much risk for motion sickness.

Other non-device related entertainment-

I had a map printed out of Washington, Oregon, and California and I had drawn the cities that we would pass through on our way.  Selena enjoyed tracing our route as we went along.

I had got the book Drawing With Children which has some step-by-step verbal drawing instruction.  I would read the instructions to the kids while they drew in their sketchbooks.

The scenery of course was also entertaining.  My favorite was when we passed Mt Shasta.  On our way down it got dark and there was very little light pollution and the skies were clear so the stars were pretty impressive.

Overall the road part of the trip was a lot more pleasant than I had expected.  When we did take breaks the kids and I would do sprints to stretch out our legs and get some blood flowing which helped deal with some of the fatigue of sitting for so long.