Monday, November 12, 2012

Case Study: Codecademy

So let's be more concrete about this whole 'teaching CS online' thing. Knowing the differences between sites is interesting, but going in depth is funner. Let's do this.

First off, found a site that randomly pulls up a story of how or why someone learned to program. http://ilearnedtoprogram.com/
I like how none of these stories mention learning to code through one of these sites. Another thing I noticed is that most female stories say she learned by falling into a CS class in college, later in life than most. The reasons one learns code ranges from having a machine and boredom, parental or teacher push, or want for a better job, either self-motivated or encouraged by a teacher. Only the first motive really applies to online websites. I wonder whether online education will expand programming's demographics, what age one would feel compelled to try (and what learning differences there are), and what motive would push one to really learn.

The site I heard about first as a kid is Codecademy.
To start off, the homepage is headed by a virtual programming environment, inviting visitors to type their name in quotes (to make a string). They step through the basics of writing and error messages; after a couple lines, it invites you to 'try the next section'. This is very inviting, not putting any bars in the way of deciding how to continue, and very satisfying (they keep saying Good Job!). Anyone even marginally interested is easily pulled into learning, without being asked for email until later, to "save your progress".

After the short intro, you're redirected to the designated learning area, which has a text explanation on the left -hand side and a space to code (with examples) on the other. Integrating coding into the same webpage as the textbook text creates a much more fluid learning environment, at least to me. Expecting the student to treat the website as a textbook and code in its own, separate space, strangely parallels the usual isolation and disjointedness most CS education has for newbies. An inhuman pile of texts and a boatload of self-motivation isn't what we should expect out of all interested students; this only perpetuates the existent diversity issues.

So the layout is nice and very inviting, but the content is more questionable. Every lesson is a simple explanation of the concept, example, and 'now you try!' It becomes a game of learning syntax, a literal how-to-program, but doesn't focus on underlying ideas or style. It teaches shallowly. Whether Codecademy can be considered a good learning site, whether one even needs to teach deeply, is one that brings up core philosophical/education questions, ones that might actually be answered by studying the effect this learning has versus other models. The prospect of being able to answer the traditionally unanswerable questions through analyzing online education is something I'm really excited about.

Table of Contents of CodeCademy:
Strings
Math
Error
Calling methods
If statements
Module
Substrings
Variables
and so on