Since we first started homeschooling, I haven’t been all that involved with the selection of curricula. I leave that up to IrishMum. Technology, however, is something I am very passionate about so I try to get involved with this subject. I consider myself a life long learner and will encourage my kids to follow this path. The web is full of reasons why you should teach your children to program such as learning problem solving, future employment prospects, and simply becoming technically literate in an increasingly technical world. For us we have a few core reasons; coding teaches them how to think about, analyse and react to their environment. It teaches them how to learn.
Consider all the jobs that are being done today that didn’t exist before the rise of the personal computer. Then consider the old jobs that don’t exist anymore because they have been automated in the past generation. Many of the potential career paths for the Net Generation simply don’t exist today because they have not been invented yet. Being responsive to the changing employment market is second nature to a good coder. Learning how to program is not a learn-off-and-repeat-back skill, it is specific problem solving, creativity and expressive communication skills all rolled together. Being able to code in some computer language today means that it becomes easier to learn other languages in the future, learning is adaptive.
Our goal in having coding as a core part of our children’s education has been to introduce the basic concepts through simple to understand computer languages, and then to encourage them to explore.
There are many great resources freely available today, so many that you need to decide carefully which ones you dedicate your time to. Some ones that we have used and found worthwhile are listed below. As with our approach to other subjects, we favour taking multiple sources of learning, having the same learning content presented in different ways ultimately leads to a more thorough understanding of the topic. If abstract concepts are presented before giving concrete examples then that is better in my book.
- Scratch: This is a great place to start. It is a purpose-built language intent on teaching the basic concepts of programming to children. It is menu driven to allow the reader to “drag-and-drop” code blocks enabling faster results. This approach is great for all children, especially those with shorter attention spans; I would even suggest it may help improve attention span if the child takes an interest in it.
- Khan Academy: This is a general learning through computer based instruction site. We first started using the maths section from Khan Academy so when they introduced coding it was a logical choice. They have a badge system to encourage more participation. If you haven’t tried it then Sal Khan’s Ted Talk is well worth a watch.
- Coursera: This is not specific to learning programming but has a depth of programming courses available. It is also not a child coding resource as it is aimed at the intermediate to advanced learner. We have used some courses with our two eldest. The courses are very well presented; they are curated university content, a sampler if you like. Having said that, I personally have taken several course offerings and got some solid skills out of them. It’s more than a simple introduction to the topic but not the full college curriculum. I roped my two eldest into taking the Programming Languages module along with me.
- iTunesU: Another intermediate to advanced resource, this contains actual college lectures that you can follow along. The viewer is not the primary audience as is the case for Coursera making it harder to follow as a curriculum, but it serves as an excellent introduction to what college education is about. I again recruited my two eldest children to watch the videos for iOS 7 after previously watching the preceding version of it myself. By only watching the videos we missed out some of the learning that would be gleaned by doing actual homework assignments with deadlines. It whet the appetite for IrishCyborg to learn xcode and provided a good starting level of knowledge for him.
- Books: We used Python for Kids and Super Scratch Programming Adventure when starting out and Realm of Racket later on. Books are not free but worth the investment. Being able to follow along with a book or tutorial is a life skill in itself.
All our children will learn the basics of programming, and I intend to follow-up this post with several more in-depth posts about how we are using the resources that we use, in a child lead learning experience. If you still aren’t convinced of programming’s importance for your children then take a look at this infographic. (All our posts on coding)