My review of Codecademy in my last blog post caused a wide range of reactions, so I’d like to expand and clarify a few of the ideas I shared there. One person called my review “horribly conflicted” and he was absolutely correct in his assessment. I think Codecademy has more potential than anything I’ve seen come along in the past 15 years to teach using computers and the internet. However, it’s currently unrealized potential; Codecademy has not yet earned the excessive hype and praise it’s received so far (the vector is pointing the right way, but it has near zero magnitude). Fortunately, after reading comments submitted by Codecademy’s founders in response to my original blog post, I’m reassured to learn that they are aware of the real challenges they face.
I consider myself one of the best instructional designers in the world. That claim should not be interpreted as boastful in regard to my own abilities, but rather commentary on the dismal state and progress of the art of instructional design throughout the history of computers and the internet. As an experienced instructional designer, I instinctively look for deficiencies in educational technology systems, both in terms of their educational integrity and business constraints (instructional systems and business constraints are completely intertwined and affect each other in profound ways). I don’t claim to have insights into the specific business plan of Codecademy, but I do know that there are subtle and destructive realities at play that undermine educational advances in our field. There are major pitfalls and hazards awaiting those working toward integrating technology and education, about which most are completely unaware.
Codecademy has potential because it has the seeds of a constructionist learning system. I believe that constructionism is the only effective way to use computers to teach what are essentially mathematical and text based subjects, like Computer Programming, Mathematics, and Physics. Unfortunately, constructionism is burdened by constraints and difficulties that make it almost impossible to satisfy the business requirements of most learning markets. Before going into the difficulties of creating constructionist learning systems and the increased difficulty of integrating them with business, I’d like to offer a brief synopsis of constructionism and its history.
Seymour Papert of M.I.T first articulated Constructionist Learning Theory. According to Wikipedia: “[Constructionism] holds that learning can happen most effectively when people are also active in making tangible objects in the real world.” Papert explains in his proposal to the National Science Foundation entitled Constructionism: A New Opportunity for Elementary Science Education that, “The word constructionism is a mnemonic for two aspects of the theory of science education underlying this project. From constructivist theories of psychology we take a view of learning as a reconstruction rather than as a transmission of knowledge. Then we extend the idea of manipulative materials to the idea that learning is most effective when part of an activity the learner experiences as constructing a meaningful product.” Papert was one of the developers of LOGO, a programming language created with the explicit intent of teaching children computer programming concepts.
Unfortunately, constructionism has had a difficult time breaking into the mainstream educational system. I think that’s because most forms of constructionism engaged traditionally have not provided all three legs of the figurative stool I mentioned in the previous post. Usually only one or two legs of that stool are presented to students. Often missing are either guidance by custom designed content written or presented explicitly to drive students to use the particular development tool to build things, and/or the mentorship of an instructor, an actual human instructor. You cannot leave instructors out of the process. They are vital because they provide students with feedback, encouragement, advice, confidence, inspiration, guidance, and other human virtues you can’t get from a machine. Further, if you exclude instructors from the process, they will, of course, become alienated, disempowered, and incapable of assisting students or supporting the system.
At O’Reilly School of Technology and Making Math, we refer to a computer system that seamlessly integrates tools, content, and learning management software as a “Tool Integrated Learning System,” or more briefly, a “TILE” system. (Now that I think about it, perhaps a better name would’ve been “3TILE” to stand for Tool+Technology+Teacher Integrated Learning Environment, because it explicitly ties teachers to the learning environment! Stay tuned for that change to become official.) Generally, a TILE is any learning environment that contains Tools, Guidance, and human mentoring. For instance, if you take a glass blowing course, you will get to use the school’s glass blowing tools, you will have an instructor to show you how to do stuff and provide mentoring as you make pieces of glass art. The entire course is conducted using and focusing on the tools. TILEs can also be designed and created for computerized learning, but only where it makes sense for the tools to live on a computer, for instance, in Computer Programming or Mathematics (using a computer algebra system tool like Mathematica). So, even though the TILEs I’ve designed for computers and the internet are relatively new conceptually speaking, they’ve existed for a long time; historically they’ve been called apprenticeships. In fact, there was a time when almost all skills were learned through apprenticeships. But the system of apprenticeship wasn’t a scalable way teach entire and ever growing populations of large countries, so in order to make a teaching system that could scale, educational institutions moved away form apprenticeships and built assembly line educational systems. The pieces of the education system that used to be steps within apprenticeships, became separately produced (if produced at all), and intended to be used as interchangeable parts. The content to be learned was handled by publishers rather than skilled journeymen, tools were produced by toolmakers (now software producers), and learning management and evaluation of learning effectiveness evolved (or perhaps devolved) into small sample data collection instead of real instructor/student conversations and personalized feedback.
Apprenticeship-based learning systems in academics has in essence gone extinct outside of Graduate Schools where professors mentor and advise students throughout their Masters and Ph.D. studies, and culminating projects. Extinct, that is, until Seymour Papert created the concept of Constructionism, Stephen Wolfram created Mathematica, Jerry Uhl, Bill Davis, and Horocio Porta launched Calculus&Mathematica, and then finally, while standing on the shoulders of those giants, I began designing and producing TILE systems.
The late Bill Davis of the Ohio State University introduced me to the idea of using constructionism in the teaching of Mathematics. In the late 1980s, Bill Davis along with Jerry Uhl and Horocio Porta, discovered a way to implement constructionism in Mathematics education by using Mathematica as their tool. Their project was one of 176 calculus reform projects called Calculus & Mathematica. As far as I know, it is the only one of the reform projects still in operation. As a participating instructor in that project, I learned first hand about the power of constructionism in reforming education. That program, however, has been kept out of the mainstream because, until recently, it hadn’t met the business and market requirements of the higher education learning resources market. In other words, entry and adoption was stunted because costs associated with labor and other elements necessary to support and use the technology were prohibitive. (As I mentioned in the previous post, we have recently solved these issues using new web techniques and are preparing to release and re-brand the Mathematics learning platform as Making Math).
As I mentioned in my other post, in 1994 I created the Webworkshop that taught HTML and Perl CGI programming on Mosaic and then Netscape web browsers, using two HTML forms on a page; the top one held the content and the bottom one was where the code was typed. That system incorporated only two legs of the TILE system. Here’s the graphic that represents the concept of a TILE constructionist instruction design philosophy:
In 1997, my wife Trish and I launched Useractive with a better web-based editor. We eventually added the third leg of the TILE system, the Learning Management functionality that includes instructor interface and code exchange functionality. Useractive eventually became the O’Reilly School of Technology. Over the past decade the O’Reilly School of Technology as become the R&D test kitchen for finding ways to use the internet and software to build scalable TILE systems where apprenticeship-like teaching can be performed with extremely high student/teacher ratios. We aren’t using software to perform student or work assessment; in fact, one of our overriding principles is that if a computer can grade a question, it’s not worth asking. This might sound extreme and may not be the favored tautology in education currently, but it reflects our understanding that students want to communicate with and get feed back directly, from a real person they respect, and who respects and knows them as individuals.
Constructionism is also being utilized in Scratch at MIT, Code school,, and also by the newest entry into the fray, Codecademy. While they can be counted as supporters of constructionism, thus far neither has constructed an actual TILE system; each lacks at least one crucial leg of our figurative stool.
With the exceptions of the Mathematica-based courses at the University of Illinois and Making Math, examples of applied constructionism are found mainly in Computer Programming, because of all academic subject matter, Computer Programming lends itself to constructionists techniques most readily. In fact, you cannot learn to program without creating and building programs. The single element that separates a constructionist course from a non-constructionist course in Computer Programming is the level of integration of the content and feedback mechanisms with a particular tool. Constructionist techniques are better for beginning and intermediate students; they enable them not only to learn to code, but more importantly, to learn how to learn to code. Constructivist techniques also lower the cognitive overload and dissonance caused by the distance (or even mismatch) between content and tools that you typically get from books and videos. Finally, the use of server-distributed tools enables instructors to help students and provide feedback to those who might be located thousands of miles away.
While Constructionism is generally burdened with higher production, delivery, and maintenance costs relative to other off-the-shelf learning resources, those costs can be offset by higher student to teacher ratios. These higher ratios provide a competitive solution in education and training markets, while still meeting that market’s high standards. Students pay for, and rightfully demand, extremely high educational returns. So, while it’s impossible for constructionist or TILE systems to keep up with the quantity and breadth of materials that textbook and video publishers can produce, traditional producers aren’t charged with supplying all of the various crucial and valuable tools required to enable constructionist techniques. Textbook and video publishers’ content need not be tailored to support constructionist technique (which is much more specifically defined, more practical, and tailored to each course). Finally, traditional producers don’t provide support and answers to individual questions for users who may be challenged by a specific technology. For these reasons, it’s vitally important for constructionist learning producers to find sweet spots in the training and education markets where these superior pedagogical techniques offer high value to the decision makers, buyers, and end-users simultaneously.
For instance, it’s difficult to compete in the subscription-based learning resources market, because there is a significant amount of value placed (or often misplaced) on the quantity and breadth of materials available behind the subscription curtain.
Also, with new more powerful browsers and ever more language interpreters and compilers becoming available on the client-side, the cost of delivering and supporting constructionist techniques will become increasingly affordable and practical. In the future I hope to see the various web-based IDE projects developed to add functionality within their IDE to write and deliver content in the User Interface, and to add instructor interfaces and feedback mechanisms. I envision a time when all IDEs become TILEs. That’s when we’ll begin to see vast improvements in our collective delivery of quality educational tools and greater improvements in the real and substantive education of our students.
Ultimately, I see a whole lot of potential in Codecademy in its current form, but right now it’s only that–potential. The responses that I received to my original post indicate that many of you recognize Codecademy’s potential as well. I find that recognition in itself to be promising. Still, it is imperative that people tracking Codecademy don’t conclude that its current incarnation is close to being the remedy to our collective education woes (that mistake is being made with Khan Academy right now, but I digress). It isn’t–at least not yet.