Sunday, February 22, 2015

The Launch of Python Programming for Children

I started programming at age 12, after my friend showed me how to do a little basic on his Commodore 64.  I went back home to my Tandy Color Computer and started writing programs for myself.  You almost had to program to get much out of a computer back then, but I am so glad I did.  It has enriched my life to understand the concepts behind computer programming at an early age.  Not only was I better around a computer, and led me into a career in computers, but I was better in math, science, and an array of other subjects and topics because of it.  So, I have always wanted to teach kids how to program and now, I have that opportunity with two students.

My students are in the 4th and 5th grades and I plan to post regular outlines of what we covered and the tools I used to teach so that others teaching how to program have a few ideas.  This is the reason for this blog, http://childprogramming.blogspot.jp/.

Class Setup

First, I selected the Python 2.x programming language.  I chose this because of its flexibility and it is a nice language to work with.  Let me say this, however, I am not a Python expert.  I have a degree in Computer Science and have programmed in many languages, but I am learning Python as I go.  The point of my class is the fundamental understanding of imperative programming.  So I will focus on language basics, algorithms, and problem solving - computer science.

Second, I ensured both students had a laptop and could load Edubuntu.  I chose Edubuntu because it contained a lot more educational software and it would run on their lower-end, older laptops.  Python is installed on Edubuntu by default, the only changes were to install the Gnome fallback environment during installation, to add the Scite programming editor with, "sudo apt-get install scite",  and to remove shopping dash plugins with:

gsettings set com.canonical.Unity.Lenses disabled-scopes "['more_suggestions-amazon.scope', 'more_suggestions-u1ms.scope', 'more_suggestions-populartracks.scope', 'music-musicstore.scope', 'more_suggestions-ebay.scope', 'more_suggestions-ubuntushop.scope', 'more_suggestions-skimlinks.scope']"

I teach this class with a very casual style.  It is basically an open dialog where I am explaining, guiding, and showing them how to do things.  I am not strict as I am not a school teacher and I do not have to control a large group of students.

I have a laptop with Edubuntu hooked up to my TV screen so everyone can see, me, the students, and the parents if they stick around.  We take turns typing and I lead the discussion and ask them what they think about different ideas, or how they think something can be done.  I try not to tell them their answers are wrong, I found out the logic towards their answers, and get them to the right answer.  I always try to be enthusiastic, which at this point, is really easy.

Hopefully, you're reading this and you like where I am going with this class and you'll subscribe and better yet, also give input to my class notes as I put them out as future posts.  I would love to get feedback, to hear from others teaching programming to kids, and get questions.  I hope to hear from you.

(Also, all code we create on this blog is free for you to use with no guarantees.)

No comments:

Post a Comment