First, the facts. Based on a survey by the Computer Science Teachers Association, I extrapolate that roughly 1 million high school students took a computer science course in 2009. Given that that there are 16.5 million high school students nation-wide, this is a paltry 6%. Foreign languages, on the other hand, had more than 7 million students- or 46% of the high school population - enrolled during the same period.
This imbalance is the result of many factors. First, foreign languages are easy to teach, relatively. The material is stable; languages change over the years as new words and colloquialism are introduced but the overall fundamentals are the same. Programming languages, on the other hand, change rapidly. A core language can quickly be replaced; just look at the evolution from COBOL to the Cs to Ruby. As a result, it is difficult to find competent instructors, because those with skills are gainfully employed and doing what they love to do: code. Also, computer science courses require a larger budget; up-to-date hardware and software is required, whereas textbook and flashcards go a long way in foreign language instruction.
No Child Left Behind is also a factor. NCLB does not consider computer science a core course, so schools marginalize CS courses and instead invest time, energy and money into general math and reading.
Creating an army
Our nation needs to produce an army of students than can write more than “Hello World.” Just like in the past few decades, the next innovations will be created line-by-line of code. And though every student cannot be the next Wozniak, Gates, Brin or Zuckerberg, understanding basic architecture and programming leads to better employment opportunities. To prove this, I went to Monster.com and typed in “French Language,” “German Language” and “English Literature” into the skills keyword search. French returned 174 jobs, followed by German at 127 and English Literature at 7....yes, seven. I did the same for Java, C++, .Net and Python. Every search returned “1000+” jobs.
Creating this army will require a non-traditional pedagogy. As previously mentioned, it is difficult to find competent teachers knowledgeable about the ever-changing landscape of computer science. Thus, the old “one-one-thirty” model (1 teacher, 1 classroom, 30 students) will not work effectively on a large scale. Educational software platforms and alternative distribution methods, therefore, are the answer.
There are four basic approaches that companies are using to teach software development:
- Online Interactive (no instructor) - This is the newest space and the key example is Codecademy. Codecademy launched about three months ago. I’m 86% done with the “Getting Started with Programming” course. Overall, I love the product because it dives into coding immediately. There are no downloads or set-ups. Also, the company is enabling courses to be user-created, which will allow them to scale quickly and stay abreast of new technologies. But Codecademy is all about coding and therefore does not give its students the full picture of how you create and maintain an application.
- Online Interactive (instructor led) - This is traditional online learning where an instructor delivers lectures, hosts discussions groups, and grades assignments. CodeLesson is an example of this category. With so many touch points, this is an effective method but it is expensive. A course for setting up and running your own web server, for example, costs $225. These courses face competition from the abundance of free material out there. Here is a youtube video on setting up a webserver. And here are step-by-step instructions that I found on a blog.
- Video Series - Treehouse is an example of a video-focused solution. Treehouse is solely focused on the developer space, whereas others video-based educational companies like Udemy.com offer an array of courses on such things as photography and entrepreneurship. Treehouse also offers the start-to-finish view of development, so students learn coding as well as the architecture of building and launching an application. In terms of pricing, Treehouse has chosen a monthly fee model, as opposed to the per-lesson approach of CodeLesson. Treehouse can underprice CodeLesson -- it charges $25-$49 per month -- because it does not support instructors. Of course, it faces competition from the abundance of free videos.
- Game-based learning (Corp/University developed) - There are also a few games, created by large corporations and universities, which are available for free. Major examples include Alice, for teaching object-oriented programming (it was developed by Carnegie Mellon and supported by Oracle and EA), and Greenfoot, which teaches Java (created by University of Kent and supported by Oracle). I have used Alice, and while the program is good at teaching coding concepts it fails to explain the architecture of actually creating an application. Also, these tools are not priorities for the companies and universities that developed them, so transformational innovations are unlikely.
One challenge, however, will be integrating an in-person instructor. School districts will be uncomfortable giving students course credit based on an instructor sitting in a remote location outside of the District’s payroll and policies and procedures. Ideally, in-person teachers will play the role of moderator and supporter; in other words they will not teach complex coding but rather ensure that students are progressing and getting the answers they need. To achieve this, vendors will need to develop a back-end system for teachers to track and assist students.
In summary, this is an enormous opportunity for the nation to advance scholastically and economically, as well as for education technology companies to prosper. Success will be predicated on companies developing solutions that are flexible enough to change with the technology landscape, pedagogically effective, and designed to meet the stringent standards of school administrations. Lastly, success depends on politicians and school administrators accepting non-traditional teaching solutions. Given the stakes, they should find the will.