Udacity and Coursera are educational organizations that have revolutionized the field of online education (in computing primarily) by providing high quality courses. These courses are up to par with those typically found at good universities, but are offered free for anyone. The more popular courses Udacity offers include but are not limited to Artificial Intelligence and Programming Languages. Though many brick and mortar colleges don’t even offer these difficult courses. Udacity and other related organizations have found innovative ways to automate courses of such difficulty, allowing a potentially unlimited amount of people to take them for free. Both Udacity and Coursera have roots from Stanford and offered only computing courses but have now spread out into a variety of other subjects. The question is, can this new era of online computing education be used in the K-12 (more specifically, high school) classroom?
To address that question, I will focus more heavily on Udacity, since it’s the organization I’m most familiar with To begin, the classes are taught by people who are actually superstars in their field. For example, Artificial Intelligence: Building a Robotic Car (CS373) is taught by Sebastian Thrun, a Stanford professor/researcher, world-renown robotics expert, and a founder of Google X Lab and Google’s Driverless Car project. This isn’t the only example though, there are plenty more. Web Development (CS253) is taught by a co-founder of Reddit. Design of Computer Programs (CS212) is taught by the VP of Research at Google. Not only are the teachers renowned in their respective fields, but the lectures are also nearly flawless, having a very high production quality. Each course has a standard CS focus (for example AI), but within this larger topic, have a sub-focus on something fascinating (building a robotic car). This works very well in maintaining student interest, they can become familiar the general theoretical concepts while learning a real world application. This becomes evident in even the very first course (CS101), which is of interest to the high school discussion. This course focuses on building a search engine. Students start off learning the basics of Computer Science — adding numbers, manipulating strings, and then moving on to tougher topics — methods, while loops, and objects. The final project, a search engine, demonstrates everything the student learned to date in the course. From my own experience, I found this to be more interesting than the traditional approach of learning generic programming concepts with Java, and not doing anything particularly exciting with them/not showing how everything is applicable
The paper “A Model for High School Computer Science Education: The Four Key Elements that Make It!” presented four key components that were essential for a successful high school CS program. These were based on analysis of the Israeli high school CS program. Here are the components:
1. A well-defined curriculum (including written course text books and teaching guides).
2. A requirement of a mandatory formal CS teaching license.
3. Teacher preparation programs (including at least a Bachelors degree in CS and a CS teaching certificate study program).
4. Research in CS education.
From my experience, the Udacity CS101 course satisfies all four components. The curriculum is very well defined; it traverses through all of the core introductory CS topics and incorporates a final project to illustrate knowledge gained. The information is well enough documented and accessible in printed format that there is no need for a textbook. One easily overqualified teacher and one TA teach every course. . Because Udacity has put incredible effort into revolutionizing the way people learn CS, it easily passes the research in CS education component.
I have discussed many positives aspects; however, there are still many reasons why online education still can’t fully replace the classroom experience. Student-teacher interaction is very limited — occasionally the professor or TA post an “Office Hours” video responding to the most frequently asked questions. There is no peer-to-peer interaction other than forum posts, which aren’t very personal. All the problems and tests are graded automatically; they are either multiple-choice, exact answer, or coding (for which there are testing scripts) problems. These limitations make the online learning experience very impersonal. But the biggest caveat to the online system is that it’s too easy to cheat. Students can easily share solutions with each other, and Udacity doesn’t have the capability to check for cheating with thousands of students going at their own pace. The most Udacity does to prevent cheating is they disallow posting solutions in their forums.
Though we’re not yet at a stage where online CS courses could be used in high school, I feel that they can be used in conjunction with classroom learning. The teacher can have students watch online lectures and assign problems from online courses as in class activities. Tests will have to be in person and teachers can check for cheating in assignments. Though online computing education presents so many exciting possibilities, unless the problems addressed above are resolved, they will be unable to replace high school CS classes.