I have recently signed up to be a volunteer teacher at http://www.tealsk12.org/. I have been interested in teaching kids programming for some time now. Finally, a few weeks back my oldest son Noah showed interest in learning computer programming as well I was so excited at that news! I did some research and found a few sites that offer courses for children. I went through this PluralSight course with him. Overall, I did not think I was impressed with it. I felt that a lot of key and hard to understand concepts, such as variables and even math, were rushed through. I think the main reason I did not like it was the shortness of the course. It needed to be much longer I feel, even for a starting course. I also looked at the following sites:
- http://www.codecademy.com/
- https://www.khanacademy.org/cs
- https://developer.mozilla.org/en-US/
- http://www.w3schools.com/
The main reason I looked at the last two was the fact that I feel kids should start learning with web development. I feel that web development languages (HTML, CSS, JavaScript) are universal. They run everywhere on all devices, and I feel the future of business software is the web applications development. The reason I feel that this fact is important is because it directly translates into money. Money is the concept that a 14 year old can easily relate two. W3Schools actually got bad reviews as http://www.w3fools.com , but I think some complaints such as browser compatibility indicators got addressed. I found simple concepts explained at w3schools quite well. I used them to develop a small starting plan for the lessons for my son Noah. So far, I have done six 30 minute lessons with him. The concepts I have covered thus far in the first 6 lessons
- HTML tags, only taling about <h1-6>, <p>, <button>,<label>
- Basic CSS, background-color and color, and four main ways to use CSS – in-line or style attribute, tag type, element id and class attribute on elements.
- Basic input, <input>
- Basic JavaScript, function definition, calling functions from buttons
- JavaScript variables
- JavaScript variables, math, getting elements via document.getElementById()
In addition, we did a couple of review lessons, not introducing any new concepts. In each subsequent lesson I reinforce previous lessons by asking Noah use the concepts covered in homework assignments. After each lesson we create a homework assignment. Each assignment takes maybe 15 minutes. I ask Noah to do each one a few times, until he is comfortable doing it without looking at the previous lesson. I am trying to keep lessons interactive, keeping Noah at the keyboard 90% of the time. As far as tooling goes, we just use http://jsfiddle.net. To get totally immersed in the languages, we create homework as html pages as well, defining the homework target inside <p> tag, and putting homework into the same fiddle.
I am planning to continue the lessons once his and mine vacations are over. I am also planning to switch to Visual Studio as the editor pretty soon, just not quite yet. I think jsfiddle offers a clean learning environment that is available from any computer. I will try to post more on the subject as time goes on.
If you are interested in teaching kids programming, sign up at http://www.tealsk12.org/. You can make a difference in kids’ lives.
Thanks.