The introduction to programming classes found in online Massive Open Online Courses MOOCS are usually quite challenging for a child: they are fast paced, there is a weekly workload that can get heavy, the students are mostly adults so the forums can be intimidating, and to top it all, many of the best MOOCS have an age limit. For example, Coursera has an age limit of 13, a compromise for the level of maturity that a child will exhibit in the forums. In essence, the MOOCS from universities are really not designed to be child-friendly or, at least, not for an elementary school level. There are other alternatives, e.g., Khan academy, codecademy, but in spite of having self-paced lessons, and being more child-friendly, they lack the pressure and structure that many children need to tackle and finish the material.
The Intro to programming I class compensates for the fast pace of these courses. Once we finish it we are ready to take an adult-level introductory programming class, similar to those taught in college. Four professors from Rice University developed an online class called Introduction to Interactive programming that is being taught in Coursera. This class is the highest rated class among all the classes and among all topics taught at Coursera and has been offered over and over since 2012. It is a 2-part class spanning 9 weeks. Under different circumstances I would have asked the children to simply sign up for this class, and I’d have turned our classes into Q&A sessions, but because of the age restriction of Coursera we cannot do that; instead, I’ll try to follow the class with similar material and exercises.
Unlike the Coursera class, we are not starting from scratch because these students already took Intro I, so a lot of the material that we’ll cover is not completely new, although this time we will cover it in more detail. Likewise, unlike the 9 weeks that this class takes in Coursera, we will spend 14 weeks with the course. Finally, although we do not have access to the Coursera forums, which are a great source of information, we have a very small class size – single digits or so – so we should be able to address the issues of each student individually, which Coursera cannot do. We should be aware that the dropout rate in a MOOC is about 95% (even for this highly rated MOOC) so, even if the child had access to the class, the chances are very high that s/he would not finish it without some guidance, support system and/or mentoring; we hope that the 1-on-1 attention and the structure of coming to class will help with this.
The class progresses over the basic concepts of programming. Many of them we already saw in Intro. I, so we will review them but not spend too much time on them; others, like lists, sets, dictionaries, objects, and classes, will be completely new. Likewise, the class uses a Event-driven Programming Model similar to the style that we use in our Front-End developer class, but different from the programming style used in Intro I so this also new. In essence, Intro II is not a repetition of Intro I at all; it is going to be a difficult but rewarding class. The child is expected to do some work at home; we are at a point that we simply won’t progress in programming w/o programming. You might consider this at the moment of deciding whether to sign up for the class.
The common theme around the class is game projects. To give you some examples, this are games that the students of the Coursera class did:
Screenshot of Rice Rocks (a version of Asteroids):