Learning Python with my 4th Grader

April 30, 2014 at 4:30 pm  •  Posted in Education by  •  14 Comments

Earlier this week my wife and I pulled our son out of school. I don’t want to go into too many details. Let’s just say K-8 schools, public and private, no longer accommodate physically active children. Tom Sawyer and Huckleberry Finn would be thrown out within a week. Schools are so busy punishing students who fail to demonstrate angelic behavior during circle time (or the equivalent) that they’ve forgotten their primary job is to provide an engaging environment where kids can explore and learn … and have a childhood. Perhaps if gym and recess were appropriately prioritized kids wouldn’t be so lazy and obese and maybe they’d learn more efficiently. For the powers that be, it’s more important to just “get through the school year” without upsetting snowplow parents. I wonder how my clients would feel if I told them I don’t really want to have my team fix any bugs or develop any new software features because we just want to “get through the year” and collect our paychecks?

In any case, we find ourselves homeschooling for the balance of the 2013-2014 academic year. Maybe beyond. We’ll see. So, I’ve decided my 4th grader should learn computer programming. I’ve been wanting to learn Python and so we’re going to try learning together. Since I have a day job we will probably be limited to 15-30 minutes per day.

Once upon a time I worked as a programmer and I still work in software development though now only in a management capacity. I also do a fair bit of data analysis, some with programming components. So I know how to write code. But I’ve never coded in Python. I’m motivated to learn Python because I hear it strips out a lot of the annoying syntax shared by most languages based on C. And it’s open source so I don’t have to invest in a proprietary compiler or IDE, I can just download and code away.












Perhaps for the same reasons, Python is becoming a leading programming environment for statistical computing. It may usurp the R language/environment because of greater flexibility and simplicity. The jury is still out but my money is on Python. I am also willing to bet SAS and SPSS will move toward endangered species status in the coming years. Since I teach statistics I want to be able to provide guidance for students who have the interest and inclination to pursue emerging careers in Big Data.

My son shows some aptitude for math and science and, like most kids, is very interested in video games. So he’s enthusiastic about our learning project hoping he can build a cool gaming app. I don’t know why educators wait until high school to teach programming. The introductory concepts are not terribly complex (same goes for statistics by the way) and I think my son will take to it. If his ability to navigate Minecraft servers is any indication he’ll be slinging code like a maniac in no time.

In any case, I plan to write a bit about our experiences along the way. Stay tuned!

Go to Lesson 1 – Hello World


  1. Nicholas Jacquez / April 30, 2014 at 4:54 pm / Reply

    Good for you Bronwyn and Justin!

    • Justin / May 1, 2014 at 8:29 am / Reply

      Thanks, Nick!

  2. Pingback: Python Lesson 1 – Hello World | Geographical Perspectives

  3. Kristine Vick / May 1, 2014 at 2:07 pm / Reply

    Hi Justin, I work at SAS and saw your post and wanted to share a recent program we launched at SAS Global Forum called SAS Analytics U. You can read more about it here to get free SAS software and resources for you and your students – http://www.sas.com/en_us/industry/higher-education.html#for-professors-academic-researchers. Thanks!

    • Justin / May 1, 2014 at 3:02 pm / Reply

      Hi Kristine – thanks for sharing this information. How is SAS responding to general trends toward cloud computing and open source software? Best, Justin

  4. Joseph Kerski / May 2, 2014 at 10:55 am / Reply

    Justin, as a geographer myself who is focused completely on educational use of geotechnology, I applaud your work with your own son in programming and geotechnologies! Keep up the good work you are doing on many fronts!

    • Justin / May 2, 2014 at 11:03 am / Reply

      Thanks, Joseph! I follow your many activities on Twitter and applaud everything you’re doing for the discipline. Let me know if there’s anything I can do to contribute! All the best, Justin

  5. Kimberly Hall / May 2, 2014 at 12:01 pm / Reply

    Hi Justin — my fourth grader loves First Lego League/Lego Robotics — kids code robots with lego attachments to solve various challenges in competitions – and Michigan leads the nation in the number of teams! Good luck with school – sounds like we’d have a lot to talk about.

    • Justin / May 2, 2014 at 3:10 pm / Reply

      Hey Kim! My boy is a huge Lego fan as well and has had an opportunity to do the robotics thing in a couple of camps. It would be cool if he could use Python to do the programming for such a device. Good to hear from you! Hope all is well back in the Mitten! Cheers, Justin

  6. Pingback: Python Lesson 2 – Calculations and Variables | Geographical Perspectives

  7. Bill Messner / May 3, 2014 at 3:10 pm / Reply

    Hi Justin,

    I am a professional statistician with four girls aged 2-8. We have been educating our girls via a mix of homeschooling and traditional schooling. I have been planning to learn Python and have long been interested in teaching my kids some basic programming. I thought I would kill two birds with one stone and do both together, starting this summer. How fortunate I am that you are doing the same thing, have a month or two head-start on me, and are writing about it. Thanks very much for sharing your approach to this endeavor. I will happily follow in your wake.


    • Justin / May 3, 2014 at 5:28 pm / Reply

      Thanks Bill! I look forward to your comments and ideas as you and your girls dig into similar material! Best, Justin

  8. Pingback: Python Lesson 3 – Lists | Geographical Perspectives

  9. Pingback: Python Lesson 4 – If Statements | Geographical Perspectives

Leave a Reply