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

2 comments:

  1. What you describe as the deeper problem here is also what concerns many people about the way CS is taught in high school in general. The emphasis on the syntax and mechanics is at odds with the idea that we should be teaching "computational thinking" in a deeper way. My PhD advisor, Seymour Papert, argued that this should be the basis for education in general -- not coding for coding's sake, but bringing computational ideas like recursion into student's lives. There has been a lot of further development, but his original book, Mindstorms, is still relevant.

    ReplyDelete
  2. Interesting post, Galina! I had never heard of Codecademy before your post, and I think you bring up some great points about the merits and lack thereof of learning CS online, whether through Codecademy or another website. I think the usefulness of learning CS through Codecademy can be determined more on a subjective basis. I believe that each individual learns in a different way and thereby can be best educated in a way that is particular to him or her. While Codecademy may "work" for one student, it may challenge the educational progress already made by another student in CS. Learning a new academic field appears to me to be all about relationship and personal perception, those being your specific relationship and perception of that particular field in terms of how it affects you, how/what it makes you think, whom you interact with in your studies, whether or not you find that field interesting and why, whether or not you value the information you are learning, etc.

    Technology and education are growing increasingly related and aligned, as more advanced technology emerges and students spend more and more time using and relying on technology in their daily lives. A thorough conversation about educational developments is not complete, in my opinion, without a discussion of how exactly and to what extent technology is impacting how we learn.

    Personally, I find Codecademy to be a useful tool for students who just want to try CS for the first time and see what they think. Its encouraging layout and interactivity with students, as you describe in your blog post, may serve as great tools to attract new students into the field and "welcome" them into their studies of CS.

    ReplyDelete